From b51c884df751c28ead445cfa6b1b397da8fea242 Mon Sep 17 00:00:00 2001 From: "Ioannis (Yiannis) Farmakis" Date: Sat, 21 Sep 2024 15:00:32 +0300 Subject: [PATCH] Add files via upload --- CMakeLists.txt | 14 + images/icon.png | Bin 0 -> 24909 bytes images/iconSwap.png | Bin 0 -> 450 bytes images/university_of_newcastle_icon.png | Bin 0 -> 222259 bytes include/CMakeLists.txt | 14 + include/qVoxFall.h | 55 ++ include/qVoxFallDialog.h | 82 +++ include/qVoxFallDisclaimerDialog.h | 47 ++ include/qVoxFallProcess.h | 52 ++ include/qVoxFallTools.h | 85 +++ info.json | 28 + qVoxFall.qrc | 8 + src/CMakeLists.txt | 9 + src/qVoxFall.cpp | 139 +++++ src/qVoxFallDialog.cpp | 223 +++++++ src/qVoxFallDisclaimerDialog.cpp | 51 ++ src/qVoxFallProcess.cpp | 747 ++++++++++++++++++++++++ src/qVoxFallTools.cpp | 150 +++++ ui/CMakeLists.txt | 6 + ui/disclaimerDlg.ui | 112 ++++ ui/qVoxFallDialog.ui | 254 ++++++++ 21 files changed, 2076 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 images/icon.png create mode 100644 images/iconSwap.png create mode 100644 images/university_of_newcastle_icon.png create mode 100644 include/CMakeLists.txt create mode 100644 include/qVoxFall.h create mode 100644 include/qVoxFallDialog.h create mode 100644 include/qVoxFallDisclaimerDialog.h create mode 100644 include/qVoxFallProcess.h create mode 100644 include/qVoxFallTools.h create mode 100644 info.json create mode 100644 qVoxFall.qrc create mode 100644 src/CMakeLists.txt create mode 100644 src/qVoxFall.cpp create mode 100644 src/qVoxFallDialog.cpp create mode 100644 src/qVoxFallDisclaimerDialog.cpp create mode 100644 src/qVoxFallProcess.cpp create mode 100644 src/qVoxFallTools.cpp create mode 100644 ui/CMakeLists.txt create mode 100644 ui/disclaimerDlg.ui create mode 100644 ui/qVoxFallDialog.ui diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7bd3754 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 3.18) + +option( PLUGIN_STANDARD_QVOXFALL "Install qVoxFall plugin" ON ) + +if ( PLUGIN_STANDARD_QVOXFALL ) + project( QVOXFALL_PLUGIN) + + AddPlugin( NAME ${PROJECT_NAME} ) + + add_subdirectory( include ) + add_subdirectory( src ) + add_subdirectory( ui ) + +endif() diff --git a/images/icon.png b/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5ddf2315a1a72f96627a35f2db151471ad0193 GIT binary patch literal 24909 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

c~=@YjKZG!S7BL}tY#CZ5X8$oS2= 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 Q$p8QV07*qoM6N<$f>;zX%m4rY literal 0 HcmV?d00001 diff --git a/images/iconSwap.png b/images/iconSwap.png new file mode 100644 index 0000000000000000000000000000000000000000..e815af0bc19dde01ac8af6cde98a87c64f91e393 GIT binary patch literal 450 zcmV;z0X_bSP)OIL3nZ zZQB;Y*~bj)pEV>CH{KfyS~o3!_%y`odj)>woc3&x)B^X?jl5S6i?0PbcOA&t+0p}F zMwoXBs^?Wq-=`qVoGCqCOu$*9pmb7#_u_#tD>YuAS_00v`zt6O7cqJsfiNpI#88ju znN>I{AZGA50MRp(qLn|)gU^|~P0$beAk3U`XHw*kl{?6xdEMj?gjr_HMnx+Q+5IdU zR}Bzmb(xw@`Ls+u{>4;_b_z&lF9X7?pysl6Q3Lh(m9wu4{)2k1pw&XbHWg6G5rSB) sa#o>QDAc((6;Nj>U_&JMg3X=g7v6%;L#K!sSpWb407*qoM6N<$f{u^DfB*mh literal 0 HcmV?d00001 diff --git a/images/university_of_newcastle_icon.png b/images/university_of_newcastle_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a9abcdf391acbb9d8d3d80c93a39ce6a5ed718 GIT binary patch literal 222259 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

JK7NUi7B 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%0Acd&Ud%LGBuMO?yS`$Zf{ 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 a-s`)~T%&`fmr;>ez)x90Lmv9lBJ6*=a#scb literal 0 HcmV?d00001 diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt new file mode 100644 index 0000000..7c28107 --- /dev/null +++ b/include/CMakeLists.txt @@ -0,0 +1,14 @@ + +target_sources( ${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/qVoxFall.h + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallDialog.h + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallDisclaimerDialog.h + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallProcess.h + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallTools.h +) + +target_include_directories( ${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) diff --git a/include/qVoxFall.h b/include/qVoxFall.h new file mode 100644 index 0000000..c07ed86 --- /dev/null +++ b/include/qVoxFall.h @@ -0,0 +1,55 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#pragma once + +#ifndef Q_VOXFALL_PLUGIN_HEADER +#define Q_VOXFALL_PLUGIN_HEADER + +#include "ccStdPluginInterface.h" + + +//qCC_db +#include + + +class qVoxFall : public QObject, public ccStdPluginInterface +{ + Q_OBJECT + Q_INTERFACES( ccPluginInterface ccStdPluginInterface ) + Q_PLUGIN_METADATA( IID "cccorp.cloudcompare.plugin.qVoxFall" FILE "../info.json" ) + +public: + explicit qVoxFall( QObject *parent = nullptr ); + ~qVoxFall() override = default; + + // Inherited from ccStdPluginInterface + void onNewSelection( const ccHObject::Container &selectedEntities ) override; + QList getActions() override; + +private: + + void doAction(); + + //! Default action + QAction* m_action; + + //! Currently selected entities + ccHObject::Container m_selectedEntities; +}; + +#endif //Q_VOXFALL_PLUGIN_HEADER diff --git a/include/qVoxFallDialog.h b/include/qVoxFallDialog.h new file mode 100644 index 0000000..e9b545c --- /dev/null +++ b/include/qVoxFallDialog.h @@ -0,0 +1,82 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: XXX # +//# # +//########################################################################## + +#pragma once + +#ifndef Q_VOXFALL_DIALOG_HEADER +#define Q_VOXFALL_DIALOG_HEADER + +#include + +//Qt +#include + +class ccMainAppInterface; +class ccMesh; + +//! VOXFALL plugin's main dialog +class qVoxFallDialog : public QDialog, public Ui::VoxFallDialog +{ + Q_OBJECT + +public: + + //! Default constructor + qVoxFallDialog(ccMesh* mesh1, ccMesh* mesh2, ccMainAppInterface* app); + + //! Returns mesh #1 + ccMesh* getMesh1() const { return m_mesh1; } + //! Returns mesh #2 + ccMesh* getMesh2() const { return m_mesh2; } + + //! Returns voxel size + double getVoxelSize() const; + //! Returns slope azimuth + double getAzimuth() const; + //! Returns whether the blocks will be exported as meshes + bool getExportMeshesActivation() const; + //! Labels the blocks as loss or gain clusters + bool getLossGainActivation() const; + + //! Returns the max number of threads to use + int getMaxThreadCount() const; + + void qVoxFallDialog::loadParamsFromPersistentSettings(); + void qVoxFallDialog::loadParamsFrom(const QSettings& settings); + void qVoxFallDialog::saveParamsToPersistentSettings(); + void qVoxFallDialog::saveParamsTo(QSettings& settings); + +protected: + + void swapMeshes(); + void setMesh1Visibility(bool); + void setMesh2Visibility(bool); + +protected: //methods + + //! Sets meshes + void setMeshes(ccMesh* mesh1, ccMesh* mesh2); + +protected: //members + + ccMainAppInterface* m_app; + + ccMesh* m_mesh1; + ccMesh* m_mesh2; +}; + +#endif //Q_VOXFALL_DIALOG_HEADER diff --git a/include/qVoxFallDisclaimerDialog.h b/include/qVoxFallDisclaimerDialog.h new file mode 100644 index 0000000..787d5d2 --- /dev/null +++ b/include/qVoxFallDisclaimerDialog.h @@ -0,0 +1,47 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 or later of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#pragma once + +#ifndef VOXFALL_DISCLAIMER_DIALOG_HEADER +#define VOXFALL_DISCLAIMER_DIALOG_HEADER + +#include + +class ccMainAppInterface; + +namespace Ui { + class DisclaimerDialog; +} + +//! Dialog for displaying the VoxFall disclaimer +class DisclaimerDialog : public QDialog +{ +public: + DisclaimerDialog(QWidget* parent = nullptr); + ~DisclaimerDialog(); + + static bool show(ccMainAppInterface* app); + +private: + //whether disclaimer has already been displayed (and accepted) or not + static bool s_disclaimerAccepted; + + Ui::DisclaimerDialog* m_ui; +}; + +#endif //VOXFALL_DISCLAIMER_DIALOG_HEADER diff --git a/include/qVoxFallProcess.h b/include/qVoxFallProcess.h new file mode 100644 index 0000000..1995f1f --- /dev/null +++ b/include/qVoxFallProcess.h @@ -0,0 +1,52 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#pragma once + +#ifndef Q_VOXFALL_PROCESS_HEADER +#define Q_VOXFALL_PROCESS_HEADER + +//Local +#include "qVoxFallDialog.h" + +//qCC +#include "ccPointCloud.h" + + +class ccMainAppInterface; + +//! VoxFall process +/** See "VoxFall: Non-Parametric Volumetric Change Detection for Rockfalls", + Farmakis, I., Guccione, D.E., Thoeni, K. and Giacomini, A., 2024, + Computers and Geosciences +**/ +class qVoxFallProcess +{ +public: + + static bool Compute(const qVoxFallDialog& dlg, + QString& errorMessage, + bool allowDialogs, + QWidget* parentWidget = nullptr, + ccMainAppInterface* app = nullptr); + +}; + +#endif //Q_VOXFALL_PROCESS_HEADER + + + diff --git a/include/qVoxFallTools.h b/include/qVoxFallTools.h new file mode 100644 index 0000000..023b4c6 --- /dev/null +++ b/include/qVoxFallTools.h @@ -0,0 +1,85 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#pragma once + +#ifndef Q_VOXFALL_TOOLS_HEADER +#define Q_VOXFALL_TOOLS_HEADER + +//CCCoreLib +#include + +//local +#include "qVoxFallDialog.h" + +//qCC_db +#include +#include +#include +#include + +#include + + +class qVoxFallTransform +{ + double az; + float zRot; + +public: + ccGLMatrix* matrix; + ccGLMatrix* inverse; + qVoxFallTransform(double azimuth) + { + az = azimuth; + zRot = GetRotationAngle(azimuth); + + const Vector3Tpl X(std::cos(zRot), std::sin(zRot), 0); + const Vector3Tpl Y(-std::sin(zRot), std::cos(zRot), 0); + const Vector3Tpl Z(0, 0, 1); + const Vector3Tpl Tr(0, 0, 0); + matrix = &ccGLMatrix::ccGLMatrix(X, Y, Z, Tr); + + const Vector3Tpl rX(std::cos(-zRot), std::sin(-zRot), 0); + const Vector3Tpl rY(-std::sin(-zRot), std::cos(-zRot), 0); + const Vector3Tpl rZ(0, 0, 1); + const Vector3Tpl rTr(0, 0, 0); + inverse = &ccGLMatrix::ccGLMatrix(rX, rY, rZ, rTr); + } + + static ccBox* CreateVoxelMesh(CCVector3 V, float voxelSize, int voxelIdx); + +private: + static float GetRotationAngle(double azimuth); + +}; + + +class qVoxFallTools +{ +public: + + static std::vector FindAdjacents(Tuple3i V, CCVector3 steps, bool facetsOnly); + + static int Grid2Index(Tuple3i n, CCVector3 steps); + + static Tuple3i Index2Grid(unsigned index, CCVector3 steps); + +}; + + +#endif //Q_VOXFALL_PROCESS_HEADER diff --git a/info.json b/info.json new file mode 100644 index 0000000..2d4abfc --- /dev/null +++ b/info.json @@ -0,0 +1,28 @@ +{ + "type" : "Standard", + "core" : true, + "name" : "VOXFALL", + "icon" : ":/CC/plugin/qVoxFall/images/icon.png", + "description": "Voxelized rockFall (VoxFall).", + "authors" : [ + { + "name" : "Ioannis Farmakis", + "email" : "i.farmakis@icloud.com" + } + ], + "maintainers" : [ + { + "name" : "Ioannis Farmakis", + "email" : "i.farmakis@icloud.com" + } + ], + "references" : [ + { + "text" : "VoxFall: Non-parametric volumetric change detection for rockfalls", + "url" : "to be published by Engineering Geology" + }, + { + "text" : "The idea behind the development of this plug in was generated during my post-doc spell at the University of Newcastle, Australia." + } + ] +} diff --git a/qVoxFall.qrc b/qVoxFall.qrc new file mode 100644 index 0000000..3bc69f0 --- /dev/null +++ b/qVoxFall.qrc @@ -0,0 +1,8 @@ + + + images/university_of_newcastle_icon.png + images/icon.png + images/iconSwap.png + info.json + + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..a13a38f --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,9 @@ + +target_sources( ${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/qVoxFall.cpp + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallDialog.cpp + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallDisclaimerDialog.cpp + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallProcess.cpp + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallTools.cpp +) diff --git a/src/qVoxFall.cpp b/src/qVoxFall.cpp new file mode 100644 index 0000000..2e528f7 --- /dev/null +++ b/src/qVoxFall.cpp @@ -0,0 +1,139 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + + +#include "qVoxFall.h" + +//Qt +#include + +//local +#include "qVoxFallDialog.h" +#include "qVoxFallDisclaimerDialog.h" +#include "qVoxFallProcess.h" + +//qCC_db +#include + + + +qVoxFall::qVoxFall( QObject *parent ) + : QObject( parent ) + , ccStdPluginInterface( ":/CC/plugin/qVoxFall/info.json" ) + , m_action( nullptr ) +{ +} + +void qVoxFall::onNewSelection( const ccHObject::Container &selectedEntities ) +{ + if ( m_action ) + { + m_action->setEnabled( selectedEntities.size() == 2 + && selectedEntities[0]->isA(CC_TYPES::MESH) + && selectedEntities[1]->isA(CC_TYPES::MESH) ); + } + + m_selectedEntities = selectedEntities; +} + +QList qVoxFall::getActions() +{ + if ( !m_action ) + { + m_action = new QAction( getName(), this ); + m_action->setToolTip( getDescription() ); + m_action->setIcon( getIcon() ); + + // Connect signal + connect( m_action, &QAction::triggered, this, &qVoxFall::doAction ); + } + + return { m_action }; +} + + +void qVoxFall::doAction() +{ + //disclaimer accepted? + if (!DisclaimerDialog::show(m_app)) + return; + + //m_app should have already been initialized by CC when plugin is loaded! + assert(m_app); + if (!m_app) + return; + + if (m_selectedEntities.size() != 2 + || !m_selectedEntities[0]->isA(CC_TYPES::MESH) + || !m_selectedEntities[1]->isA(CC_TYPES::MESH)) + { + m_app->dispToConsole("Select two meshes !", ccMainAppInterface::ERR_CONSOLE_MESSAGE); + return; + } + + ccMesh* mesh1 = ccHObjectCaster::ToMesh(m_selectedEntities[0]); + ccMesh* mesh2 = ccHObjectCaster::ToMesh(m_selectedEntities[1]); + + + m_app->dispToConsole("[VoxFall] Meshes loaded successfully", ccMainAppInterface::STD_CONSOLE_MESSAGE); + + //display dialog + qVoxFallDialog dlg(mesh1, mesh2, m_app); + if (!dlg.exec()) + { + //process cancelled by the user + return; + } + + ////display the voxel size in console + m_app->dispToConsole(QString("[VoxFall] Voxel size: %1 m").arg(dlg.getVoxelSize()), ccMainAppInterface::STD_CONSOLE_MESSAGE); + + QString errorMessage; + if (!qVoxFallProcess::Compute(dlg, errorMessage, true, m_app->getMainWindow(), m_app)) + { + if (!errorMessage.isEmpty()) + { + m_app->dispToConsole(errorMessage, ccMainAppInterface::WRN_CONSOLE_MESSAGE); + } + else + { + mesh1->setEnabled(false); + m_app->dispToConsole("[VoxFall] Completed!", ccMainAppInterface::STD_CONSOLE_MESSAGE); + } + } + + //'Compute' may change some parameters of the dialog + dlg.saveParamsToPersistentSettings(); +} + + + + + + + + + + + + + + + + + + diff --git a/src/qVoxFallDialog.cpp b/src/qVoxFallDialog.cpp new file mode 100644 index 0000000..092a66d --- /dev/null +++ b/src/qVoxFallDialog.cpp @@ -0,0 +1,223 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#include "qVoxFallDialog.h" + +//CCPluginAPI +#include +#include + +//qCC_db +#include + +//Qt +#include +#include + + +/*** HELPERS ***/ +static QString GetEntityName(ccHObject* obj) +{ + if (!obj) + { + assert(false); + return QString(); + } + + QString name = obj->getName(); + if (name.isEmpty()) + name = "unnamed"; + name += QString(" [ID %1]").arg(obj->getUniqueID()); + + return name; +} + +static ccMesh* GetMeshFromCombo(QComboBox* comboBox, ccHObject* dbRoot) +{ + assert(comboBox && dbRoot); + if (!comboBox || !dbRoot) + { + assert(false); + return nullptr; + } + + //return the mesh currently selected in the combox box + int index = comboBox->currentIndex(); + if (index < 0) + { + assert(false); + return nullptr; + } + assert(comboBox->itemData(index).isValid()); + unsigned uniqueID = comboBox->itemData(index).toUInt(); + ccHObject* item = dbRoot->find(uniqueID); + if (!item || !item->isA(CC_TYPES::MESH)) + { + assert(false); + return nullptr; + } + return static_cast(item); +} + +/*** HELPERS (END) ***/ + +qVoxFallDialog::qVoxFallDialog(ccMesh* mesh1, ccMesh* mesh2, ccMainAppInterface* app) + : QDialog(app ? app->getMainWindow() : nullptr) + , Ui::VoxFallDialog() + , m_app(app) + , m_mesh1(nullptr) + , m_mesh2(nullptr) +{ + setupUi(this); + + connect(showMesh1CheckBox, &QAbstractButton::toggled, this, &qVoxFallDialog::setMesh1Visibility); + connect(showMesh2CheckBox, &QAbstractButton::toggled, this, &qVoxFallDialog::setMesh2Visibility); + + connect(swapMeshesToolButton, &QAbstractButton::clicked, this, &qVoxFallDialog::swapMeshes); + + setMeshes(mesh1, mesh2); + + loadParamsFromPersistentSettings(); +} + +void qVoxFallDialog::swapMeshes() +{ + setMeshes(m_mesh2, m_mesh1); +} + +void qVoxFallDialog::setMeshes(ccMesh* mesh1, ccMesh* mesh2) +{ + if (!mesh1 || !mesh2) + { + assert(false); + return; + } + + m_mesh1 = mesh1; + m_mesh2 = mesh2; + + //mesh #1 + mesh1LineEdit->setText(GetEntityName(mesh1)); + showMesh1CheckBox->blockSignals(true); + showMesh1CheckBox->setChecked(mesh1->isVisible()); + showMesh1CheckBox->blockSignals(false); + + //mesh #2 + mesh2LineEdit->setText(GetEntityName(mesh2)); + showMesh2CheckBox->blockSignals(true); + showMesh2CheckBox->setChecked(mesh2->isVisible()); + showMesh2CheckBox->blockSignals(false); +} + +void qVoxFallDialog::setMesh1Visibility(bool state) +{ + if (m_mesh1) + { + m_mesh1->setVisible(state); + m_mesh1->prepareDisplayForRefresh(); + } + if (m_app) + { + m_app->refreshAll(); + m_app->updateUI(); + } +} + +void qVoxFallDialog::setMesh2Visibility(bool state) +{ + if (m_mesh2) + { + m_mesh2->setVisible(state); + m_mesh2->prepareDisplayForRefresh(); + } + if (m_app) + { + m_app->refreshAll(); + m_app->updateUI(); + } +} + +double qVoxFallDialog::getVoxelSize() const +{ + double voxelSize = voxelSizeDoubleSpinBox->value(); + return voxelSize; +} + +double qVoxFallDialog::getAzimuth() const +{ + double azimuth = azDoubleSpinBox->value(); + return azimuth; +} + +bool qVoxFallDialog::getExportMeshesActivation() const +{ + return exportCheckBox->isChecked(); +} + +bool qVoxFallDialog::getLossGainActivation() const +{ + return lossCheckBox->isChecked(); +} + +int qVoxFallDialog::getMaxThreadCount() const +{ + return QThread::idealThreadCount(); +} + +void qVoxFallDialog::loadParamsFromPersistentSettings() +{ + QSettings settings("qVoxFall"); + loadParamsFrom(settings); +} + +void qVoxFallDialog::loadParamsFrom(const QSettings& settings) +{ + //read parameters + double voxelSize = settings.value("VoxelSize", voxelSizeDoubleSpinBox->value()).toDouble(); + double azimuth = settings.value("Azimuth", azDoubleSpinBox->value()).toDouble(); + bool exportMeshesEnabled = settings.value("ExportMeshesEnabled", exportCheckBox->isChecked()).toBool(); + bool lossGainEnabled = settings.value("LossGainEnabled", lossCheckBox->isChecked()).toBool(); + + //apply parameters + voxelSizeDoubleSpinBox->setValue(voxelSize); + azDoubleSpinBox->setValue(azimuth); + exportCheckBox->setChecked(exportMeshesEnabled); + lossCheckBox->setChecked(lossGainEnabled); +} + +void qVoxFallDialog::saveParamsToPersistentSettings() +{ + QSettings settings("qVoxFall"); + saveParamsTo(settings); +} + +void qVoxFallDialog::saveParamsTo(QSettings& settings) +{ + //save parameters + settings.setValue("VoxelSize", voxelSizeDoubleSpinBox->value()); + settings.setValue("Azimuth", azDoubleSpinBox->value()); + settings.setValue("ExportMeshesEnabled", exportCheckBox->isChecked()); + settings.setValue("LossGainEnabled", lossCheckBox->isChecked()); +} + + + + + + + + diff --git a/src/qVoxFallDisclaimerDialog.cpp b/src/qVoxFallDisclaimerDialog.cpp new file mode 100644 index 0000000..dfa36ac --- /dev/null +++ b/src/qVoxFallDisclaimerDialog.cpp @@ -0,0 +1,51 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#include "qVoxFallDisclaimerDialog.h" +#include "ui_disclaimerDlg.h" + +//qCC_plugins +#include + +//Qt +#include + +bool DisclaimerDialog::s_disclaimerAccepted = false; + + +DisclaimerDialog::DisclaimerDialog(QWidget *parent) + : QDialog(parent) + , m_ui( new Ui::DisclaimerDialog ) +{ + m_ui->setupUi( this ); +} + +DisclaimerDialog::~DisclaimerDialog() +{ + delete m_ui; +} + +bool DisclaimerDialog::show(ccMainAppInterface *app) +{ + if ( !s_disclaimerAccepted ) + { + //if the user "cancels" it, then he refuses the disclaimer + s_disclaimerAccepted = DisclaimerDialog(app ? app->getMainWindow() : 0).exec(); + } + + return s_disclaimerAccepted; +} diff --git a/src/qVoxFallProcess.cpp b/src/qVoxFallProcess.cpp new file mode 100644 index 0000000..e7afc9a --- /dev/null +++ b/src/qVoxFallProcess.cpp @@ -0,0 +1,747 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + +#include "qVoxFallProcess.h" + +//system +#include + +//local +#include "qVoxFallDialog.h" +#include "qVoxFallTools.h" + +//CCCoreLib +#include +#include "Grid3D.h" + +//qCC_plugins +#include +#include + +//qCC_db +#include +#include +#include +#include +#include +#include +#include +#include + +//Qt +#include +#include +#include +#include +#include +#include + +#if defined(_OPENMP) +//OpenMP +#include +#endif +using namespace CCCoreLib; + + +//! Default name for VoxFall scalar fields +static const char OCCUPANCY_SF_NAME[] = "Occupancy"; +static const char CLUSTER_SF_NAME[] = "Cluster ID"; +static const char CHANGE_TYPE_SF_NAME[] = "Loss/gain"; +static const char VOLUME_SF_NAME[] = "Volume (m3)"; +static const char UNCERTAINTY_SF_NAME[] = "Uncertainty (%)"; + + +// Structure for parallel call +struct VoxFallParams +{ + //main options + float voxelSize = 0; + int clusterLabel = 0; + int currentLabel; + int changeType; + bool exportBlocksAsMeshes = false; + bool exportLossGain = false; + CCVector3 minBound, maxBound, extent, steps; + + //helpers + std::vector> nbs; + std::vector isEmpty; + std::vector isEmptyBefore; + std::vector nonEmptyVoxelsVisited; + std::vector clusters; + int emptyVoxelCount = 0; + CCVector3 centroid; + CCVector3 bbDims; + std::vector volumes; + std::vector clusterIndices; + int clusterOutterVoxelCount; + + //export + ccPointCloud* voxfall = nullptr; + + //scalar fields + ccScalarField* clusterSF = nullptr; //cluster ID + ccScalarField* changeTypeSF = nullptr; //loss or gain + ccScalarField* volumeSF = nullptr; //block volume + ccScalarField* uncertaintySF = nullptr; //volume uncertainty + + //progress notification + CCCoreLib::NormalizedProgress* nProgress = nullptr; + bool processCanceled = false; + bool processFailed = false; +}; +static VoxFallParams s_VoxFallParams; + + +bool InitializeOutputCloud(int voxelCount, GenericProgressCallback* progressCb = nullptr) +{ + //progress notification + NormalizedProgress nProgress(progressCb, voxelCount); + if (progressCb) + { + if (progressCb->textCanBeEdited()) + { + progressCb->setInfo("Initialization"); + progressCb->setMethodTitle("VoxFall Detection"); + } + progressCb->update(0); + progressCb->start(); + } + + float voxelSize = s_VoxFallParams.voxelSize; + CCVector3 minBound = s_VoxFallParams.minBound; + + for (int index = 0; index < voxelCount; ++index) + { + Tuple3i V = qVoxFallTools::Index2Grid(index, s_VoxFallParams.steps); + CCVector3 P(static_cast(V.x * voxelSize + minBound.x), + static_cast(V.y * voxelSize + minBound.y), + static_cast(V.z * voxelSize + minBound.z)); + s_VoxFallParams.voxfall->addPoint(P); + + //progress bar + if (progressCb && !nProgress.oneStep()) + { + return false; + } + } + + return true; +} + + +void GetVoxelOccupancy(const Tuple3i& cellPos, unsigned n) +{ + int index = qVoxFallTools::Grid2Index(cellPos, s_VoxFallParams.steps); + s_VoxFallParams.isEmpty[index] = false; +} + + +void GetVoxelOccupancyBefore(const Tuple3i& cellPos, unsigned n) +{ + int index = qVoxFallTools::Grid2Index(cellPos, s_VoxFallParams.steps); + s_VoxFallParams.isEmptyBefore[index] = false; +} + + +bool ClusterEmptySpace(int maxThreads, int voxelCount, GenericProgressCallback* progressCb = nullptr) +{ + //progress notification + NormalizedProgress nProgress(progressCb, voxelCount); + if (progressCb) + { + if (progressCb->textCanBeEdited()) + { + char buffer[64]; + snprintf(buffer, 64, "Clustering empty space \n Voxels: %u", voxelCount); + progressCb->setInfo(buffer); + progressCb->setMethodTitle("VoxFall Detection"); + } + progressCb->update(0); + progressCb->start(); + } + + auto steps = s_VoxFallParams.steps; + s_VoxFallParams.nbs.resize(voxelCount); +#if defined(_OPENMP) +#pragma omp parallel for schedule(static) \ + num_threads(maxThreads) +#endif + for (int index = 0; index < voxelCount; ++index) { + auto V = qVoxFallTools::Index2Grid(index, steps); + auto NN = qVoxFallTools::FindAdjacents(V, steps, false); + for (auto const& n : NN) + { + int nIdx = qVoxFallTools::Grid2Index(n, steps); + s_VoxFallParams.nbs[index].push_back(nIdx); + } +#if defined(_OPENMP) +#pragma omp critical(ClusterEmptySpace) + { nProgress.oneStep(); } +#endif + } + for (int index = 0; index < voxelCount; ++index) + { + // Check if voxel is empty. + if (!s_VoxFallParams.isEmpty[index]) + continue; + + // Label is not undefined. + if (s_VoxFallParams.clusterSF->getValue(index) != -1) + { + continue; + } + + // Check density. + int nCount = 0; + for (auto const& n : s_VoxFallParams.nbs[index]) + { + if (s_VoxFallParams.isEmpty[n]) + { + nCount++; + } + } + + std::unordered_set nbs_next(s_VoxFallParams.nbs[index].begin(), s_VoxFallParams.nbs[index].end()); + std::unordered_set visited; + visited.insert(index); + + s_VoxFallParams.clusterSF->setValue(index, static_cast(s_VoxFallParams.clusterLabel)); + if (s_VoxFallParams.clusterLabel > 0) // keep track of the total voxels included in volumes + { + s_VoxFallParams.emptyVoxelCount++; + } + if (progressCb && !nProgress.oneStep()) //progress bar + { + return false; + } + while (!nbs_next.empty()) + { + unsigned nb = *nbs_next.begin(); + nbs_next.erase(nbs_next.begin()); + // Check empty neighbor. + if (!s_VoxFallParams.isEmpty[nb]) + { + continue; + } + visited.insert(nb); + + // Not undefined label. + if (s_VoxFallParams.clusterSF->getValue(nb) != -1) + { + continue; + } + s_VoxFallParams.clusterSF->setValue(nb, static_cast(s_VoxFallParams.clusterLabel)); + if (s_VoxFallParams.clusterLabel > 0) // keep track of the total voxels included in volumes + { + s_VoxFallParams.emptyVoxelCount++; + } + if (progressCb && !nProgress.oneStep()) //progress bar + { + return false; + } + + // Get neighbor's density. + int nCount = 0; + for (auto const& n : s_VoxFallParams.nbs[nb]) + { + if (s_VoxFallParams.isEmpty[n]) + { + nCount++; + } + } + if (nCount >= 1) + { + for (int qnb : s_VoxFallParams.nbs[nb]) + { + if (s_VoxFallParams.isEmpty[qnb]) + { + if (visited.count(qnb) == 0) + { + nbs_next.insert(qnb); + } + } + } + } + } + s_VoxFallParams.clusterLabel++; + } + return true; +} + + +bool ComputeClusterVolume(int maxThreads, int clusterCount, ccHObject* clusterGroup = nullptr) +{ + + bool error = false; + CCVector3 minBound = s_VoxFallParams.maxBound; + CCVector3 maxBound = s_VoxFallParams.minBound; + int count = 0; + + if (s_VoxFallParams.processCanceled) + return error; + +#if defined(_OPENMP) +#pragma omp parallel for schedule(static) \ + num_threads(maxThreads) +#endif + for (int i = 0; i < clusterCount; i++) + { + int index = s_VoxFallParams.clusterIndices[i]; + + std::unordered_set nbs_next(s_VoxFallParams.nbs[index].begin(), s_VoxFallParams.nbs[index].end()); + while (!nbs_next.empty()) + { + unsigned nb = *nbs_next.begin(); + nbs_next.erase(nbs_next.begin()); + + // Check non empty neighbor. + if (s_VoxFallParams.isEmpty[nb]) + { + continue; + } + if (s_VoxFallParams.nonEmptyVoxelsVisited[nb] == false) + { + s_VoxFallParams.clusterOutterVoxelCount++; + s_VoxFallParams.nonEmptyVoxelsVisited[nb] = true; + + if (s_VoxFallParams.exportLossGain) + { + Tuple3i V = qVoxFallTools::Index2Grid(nb, s_VoxFallParams.steps); + CCVector3 voxel(static_cast(V.x * s_VoxFallParams.voxelSize + s_VoxFallParams.minBound.x), + static_cast(V.y * s_VoxFallParams.voxelSize + s_VoxFallParams.minBound.y), + static_cast(V.z * s_VoxFallParams.voxelSize + s_VoxFallParams.minBound.z)); + + if (voxel.x > maxBound.x) maxBound.x = static_cast(voxel.x); + if (voxel.y > maxBound.y) maxBound.y = static_cast(voxel.y); + if (voxel.z > maxBound.z) maxBound.z = static_cast(voxel.z); + + if (voxel.x < minBound.x) minBound.x = static_cast(voxel.x); + if (voxel.y < minBound.y) minBound.y = static_cast(voxel.y); + if (voxel.z < minBound.z) minBound.z = static_cast(voxel.z); + } + + } + if (s_VoxFallParams.exportBlocksAsMeshes) + { + s_VoxFallParams.clusters[nb] = s_VoxFallParams.currentLabel; + } + } + + //progress bar + if (!s_VoxFallParams.nProgress->oneStep()) + { + error = true; + break; + } + if (error) break; + } + + if (s_VoxFallParams.exportLossGain) + { + float ymin = minBound.y; + float ymax = maxBound.y; + CCVector3 extent = maxBound - minBound; + CCVector3 center = minBound + extent / 2; + minBound += extent / 2 * 0.9; + maxBound -= extent / 2 * 0.9; + maxBound.y = ymax + (ymax - ymin) / 2.0; + + s_VoxFallParams.centroid = minBound + (maxBound - minBound) / 1.5; + s_VoxFallParams.bbDims = (maxBound - minBound) / 2; + } + + if (error) return !error; + return !error; +} + + +bool qVoxFallProcess::Compute(const qVoxFallDialog& dlg, QString& errorMessage, bool allowDialogs, QWidget* parentWidget/*=nullptr*/, ccMainAppInterface* app/*=nullptr*/) +{ + errorMessage.clear(); + + //get the input meshes in the right order + ccMesh* mesh1 = dlg.getMesh1(); + ccMesh* mesh2 = dlg.getMesh2(); + + if (!mesh1 || !mesh2) + { + assert(false); + return false; + } + + //get parameters from dialog + double azimuth = dlg.getAzimuth(); + + //max thread count + int maxThreadCount = dlg.getMaxThreadCount(); + + if (app) + app->dispToConsole( QString("[VoxFall] Will use %1 threads").arg(maxThreadCount == 0 ? "the max number of" : QString::number(maxThreadCount)), + ccMainAppInterface::STD_CONSOLE_MESSAGE ); + + //progress dialog + ccProgressDialog pDlg(parentWidget); + + //Duration: initialization + QElapsedTimer initTimer; + initTimer.start(); + + auto mesh = mesh1->cloneMesh(); + mesh->merge(mesh2, false); + + auto transform = qVoxFallTransform(azimuth); + mesh->applyGLTransformation_recursive(transform.matrix); + mesh1->applyGLTransformation_recursive(transform.matrix); + + mesh1->setEnabled(false); + + //parameters are stored in 's_VoxFallParams' for parallel call + s_VoxFallParams = VoxFallParams(); + s_VoxFallParams.voxelSize = dlg.getVoxelSize(); + s_VoxFallParams.minBound = mesh->getOwnBB().minCorner(); + s_VoxFallParams.maxBound = mesh->getOwnBB().maxCorner(); + s_VoxFallParams.extent = s_VoxFallParams.maxBound - s_VoxFallParams.minBound; + s_VoxFallParams.steps = (s_VoxFallParams.extent / s_VoxFallParams.voxelSize) + Vector3Tpl(1, 1, 1); + s_VoxFallParams.exportBlocksAsMeshes = dlg.getExportMeshesActivation(); + s_VoxFallParams.exportLossGain = dlg.getLossGainActivation(); + s_VoxFallParams.voxfall = new ccPointCloud(mesh1->getName() + "_to_" + mesh2->getName() + QString(" [VoxFall grid] (voxel %1 m)").arg(s_VoxFallParams.voxelSize)); + + //Initialize voxel grid + auto voxelGrid = CCCoreLib::Grid3D(); + if (!voxelGrid.init( int(s_VoxFallParams.steps.x), + int(s_VoxFallParams.steps.y), + int(s_VoxFallParams.steps.z), + 0 )) //margin + { + errorMessage = "Failed to initialize voxel grid!"; + return false; + } + + // Initialize heplpers + s_VoxFallParams.voxfall->reserve(voxelGrid.innerCellCount()); + s_VoxFallParams.nbs.resize(voxelGrid.innerCellCount()); + s_VoxFallParams.isEmpty.resize(voxelGrid.innerCellCount(), true); + s_VoxFallParams.isEmptyBefore.resize(voxelGrid.innerCellCount(), true); + if (s_VoxFallParams.exportBlocksAsMeshes) + { + s_VoxFallParams.clusters.resize(voxelGrid.innerCellCount(), NULL); + } + + //allocate cluster ID SF + s_VoxFallParams.clusterSF = new ccScalarField(CLUSTER_SF_NAME); + s_VoxFallParams.clusterSF->link(); + if (!s_VoxFallParams.clusterSF->resizeSafe(voxelGrid.innerCellCount(), true, static_cast(-1.0))) + { + errorMessage = "Failed to allocate memory for cluster ID values!"; + return false; + } + + if (s_VoxFallParams.exportLossGain) + { + //allocate change type SF + s_VoxFallParams.changeTypeSF = new ccScalarField(CHANGE_TYPE_SF_NAME); + s_VoxFallParams.changeTypeSF->link(); + if (!s_VoxFallParams.changeTypeSF->resizeSafe(voxelGrid.innerCellCount(), true, CCCoreLib::NAN_VALUE)) + { + errorMessage = "Failed to allocate memory for change type values!"; + return false; + } + } + //allocate volume SF + s_VoxFallParams.volumeSF = new ccScalarField(VOLUME_SF_NAME); + s_VoxFallParams.volumeSF->link(); + if (!s_VoxFallParams.volumeSF->resizeSafe(voxelGrid.innerCellCount(), true, CCCoreLib::NAN_VALUE)) + { + errorMessage = "Failed to allocate memory for volume values!"; + return false; + } + //allocate volume uncertainty SF + s_VoxFallParams.uncertaintySF = new ccScalarField(UNCERTAINTY_SF_NAME); + s_VoxFallParams.uncertaintySF->link(); + if (!s_VoxFallParams.uncertaintySF->resizeSafe(voxelGrid.innerCellCount(), true, CCCoreLib::NAN_VALUE)) + { + errorMessage = "Failed to allocate memory for volume uncertainty values!"; + return false; + } + + // Initialize output cloud + if (!InitializeOutputCloud(voxelGrid.innerCellCount(), &pDlg)) + { + errorMessage = "Failed to initialize output data!"; + return false; + } + + qint64 initTime_ms = initTimer.elapsed(); + //we display init. timing only if no error occurred! + if (app) + app->dispToConsole( QString("[VoxFall] Initialization: %1 s").arg(initTime_ms / 1000.0, 0, 'f', 3), + ccMainAppInterface::STD_CONSOLE_MESSAGE ); + + +// BLOCK DETECTION +//======================================================================================================================= + + //Duration: Detection + QElapsedTimer detectTimer; + detectTimer.start(); + + if (!voxelGrid.intersectWith( mesh, + s_VoxFallParams.voxelSize, + s_VoxFallParams.minBound, + GetVoxelOccupancy, + &pDlg )) + { + errorMessage = "Failed to compute grid occupancy!"; + return false; + } + + + if (s_VoxFallParams.exportLossGain) + { + if (!voxelGrid.intersectWith(mesh1, + s_VoxFallParams.voxelSize, + s_VoxFallParams.minBound, + GetVoxelOccupancyBefore, + &pDlg)) + { + errorMessage = "Failed to compute grid occupancy!"; + return false; + } + } + + //cluster DBSCAN + if (!ClusterEmptySpace( maxThreadCount, + voxelGrid.innerCellCount(), + &pDlg )) + { + errorMessage = "Failed to compute grid occupancy!"; + return false; + } + + qint64 detectTime_ms = detectTimer.elapsed(); + //we display block extraction timing only if no error occurred! + if (app) + app->dispToConsole(QString("[VoxFall] Block detection: %1 s").arg(detectTime_ms / 1000.0, 0, 'f', 3), + ccMainAppInterface::STD_CONSOLE_MESSAGE); + app->dispToConsole( QString("[VoxFall] Blocks found: %1").arg(s_VoxFallParams.clusterLabel - 1), + ccMainAppInterface::STD_CONSOLE_MESSAGE ); + +// COMPUTE VOLUMES +//======================================================================================================================= + + //Duration: volume computation + QElapsedTimer volumeTimer; + volumeTimer.start(); + + //progress notification + pDlg.reset(); + NormalizedProgress nProgress(&pDlg, s_VoxFallParams.emptyVoxelCount); + char buffer[64]; + snprintf(buffer, 64, "VoxFall clusters: %u \n Empty voxels: %u", s_VoxFallParams.clusterLabel - 1, s_VoxFallParams.emptyVoxelCount); + pDlg.setInfo(buffer); + pDlg.setMethodTitle(QObject::tr("Compute Volumes")); + pDlg.update(0); + pDlg.start(); + s_VoxFallParams.nProgress = &nProgress; + + + s_VoxFallParams.volumes.reserve(s_VoxFallParams.clusterLabel); + s_VoxFallParams.nonEmptyVoxelsVisited.resize(voxelGrid.innerCellCount(), false); + for (unsigned label = 1; label < s_VoxFallParams.clusterLabel; ++label) + { + auto it = std::find(s_VoxFallParams.clusterSF->begin(), s_VoxFallParams.clusterSF->end(), label); + while (it != s_VoxFallParams.clusterSF->end()) + { + s_VoxFallParams.clusterIndices.push_back(it - s_VoxFallParams.clusterSF->begin()); + it = std::find(it + 1, s_VoxFallParams.clusterSF->end(), label); + } + + s_VoxFallParams.currentLabel = label; + s_VoxFallParams.clusterOutterVoxelCount = 0; + + + if (!ComputeClusterVolume( maxThreadCount, s_VoxFallParams.clusterIndices.size() )) + { + errorMessage = "Failed to compute cluster volume!"; + return false; + } + + if (s_VoxFallParams.exportLossGain) + { + int count = 0; + mesh1->placeIteratorAtBeginning(); + for (unsigned n = 0; n < mesh1->size(); n++) + { + //get the positions (in the grid) of each vertex + const GenericTriangle* T = mesh1->_getNextTriangle(); + + //current triangle vertices + const CCVector3* triPoints[3]{ T->_getA(), T->_getB(), T->_getC() }; + + if (CCMiscTools::TriBoxOverlap(s_VoxFallParams.centroid, s_VoxFallParams.bbDims, triPoints)) + { + count++; + } + } + if (count > 0) + { + s_VoxFallParams.changeType = -1; + } + else + { + s_VoxFallParams.changeType = 1; + } + } + ScalarType changeType = static_cast(s_VoxFallParams.changeType); + ScalarType uncertainty = static_cast(pow(s_VoxFallParams.voxelSize, 3) * s_VoxFallParams.clusterOutterVoxelCount / 2); + ScalarType volume = static_cast(pow(s_VoxFallParams.voxelSize, 3) * s_VoxFallParams.clusterIndices.size() + uncertainty); + s_VoxFallParams.volumes[label - 1] = static_cast(volume); + + for (unsigned i = 0; i < s_VoxFallParams.clusterIndices.size(); i++) + { + if (s_VoxFallParams.exportLossGain) + { + s_VoxFallParams.changeTypeSF->setValue(s_VoxFallParams.clusterIndices[i], changeType); + } + s_VoxFallParams.volumeSF->setValue(s_VoxFallParams.clusterIndices[i], volume); + s_VoxFallParams.uncertaintySF->setValue(s_VoxFallParams.clusterIndices[i], volume/uncertainty/100); + } + s_VoxFallParams.clusterIndices.clear(); + } + + qint64 volumeTime_ms = volumeTimer.elapsed(); + //we display block volume computation timing only if no error occurred! + if (app) + app->dispToConsole(QString("[VoxFall] Volume computation: %1 s").arg(volumeTime_ms / 1000.0, 0, 'f', 3), + ccMainAppInterface::STD_CONSOLE_MESSAGE); + + +// EXPORT BLOCKS AS VOXEL MESH MODELS (IF SELECTED) +//======================================================================================================================= + + if (s_VoxFallParams.exportBlocksAsMeshes) + { + //Duration: block meshing + QElapsedTimer meshTimer; + meshTimer.start(); + + //progress notification + pDlg.reset(); + NormalizedProgress nProgress(&pDlg, s_VoxFallParams.emptyVoxelCount); + char buffer[64]; + snprintf(buffer, 64, "Blocks: %u", s_VoxFallParams.clusterLabel - 1); + pDlg.setInfo(buffer); + pDlg.setMethodTitle(QObject::tr("Exporting blocks as meshes")); + pDlg.update(0); + pDlg.start(); + + //we create a new group to store all output meshes as 'VoxFall clusters' + ccHObject* ccGroup = new ccHObject(mesh1->getName() + "_to_" + mesh2->getName() + QString(" [VoxFall clusters] (voxel %1 m)").arg(s_VoxFallParams.voxelSize)); + + for (unsigned label = 1; label < s_VoxFallParams.clusterLabel; ++label) + { + std::vector indices; + auto it = std::find(s_VoxFallParams.clusters.begin(), s_VoxFallParams.clusters.end(), label); + while (it != s_VoxFallParams.clusters.end()) + { + indices.push_back(it - s_VoxFallParams.clusters.begin()); + it = std::find(it + 1, s_VoxFallParams.clusters.end(), label); + } + + ccHObject* clusterGroup = new ccHObject(QString("Cluster#%1 - (v: %2 m3)").arg(label).arg(s_VoxFallParams.volumes[label - 1])); + clusterGroup->setVisible(true); + ccGroup->addChild(clusterGroup); + for (int i = 0; i < indices.size(); i++) + { + CCVector3 V; + s_VoxFallParams.voxfall->getPoint(indices[i], V); + auto voxel = qVoxFallTransform::CreateVoxelMesh(V, s_VoxFallParams.voxelSize, indices[i]); + clusterGroup->addChild(voxel); + + //progress bar + if (!nProgress.oneStep()) + { + return false; + } + } + indices.clear(); + } + ccGroup->applyGLTransformation_recursive(transform.inverse); + ccGroup->setVisible(true); + app->addToDB(ccGroup); + + qint64 meshTime_ms = meshTimer.elapsed(); + //we display block as mesh export timing only if no error occurred! + if (app) + app->dispToConsole(QString("[VoxFall] Block as mesh export: %1 s").arg(meshTime_ms / 1000.0, 0, 'f', 3), + ccMainAppInterface::STD_CONSOLE_MESSAGE); + } + + +// OUTPUT FORMATION +//======================================================================================================================= + + //associate cluster ID scalar fields to the voxel grid + int sfIdx = -1; + if (s_VoxFallParams.clusterSF) + { + //add cluster ID SF to voxel grid + s_VoxFallParams.clusterSF->computeMinAndMax(); + sfIdx = s_VoxFallParams.voxfall->addScalarField(s_VoxFallParams.clusterSF); + } + if (s_VoxFallParams.exportLossGain) + { + //associate change type scalar fields to the voxel grid + if (s_VoxFallParams.changeTypeSF) + { + //add cluster ID SF to voxel grid + s_VoxFallParams.changeTypeSF->computeMinAndMax(); + sfIdx = s_VoxFallParams.voxfall->addScalarField(s_VoxFallParams.changeTypeSF); + } + } + //associate volume scalar field to the voxel grid + if (s_VoxFallParams.volumeSF) + { + //add volume SF to voxel grid + s_VoxFallParams.volumeSF->computeMinAndMax(); + sfIdx = s_VoxFallParams.voxfall->addScalarField(s_VoxFallParams.volumeSF); + } + //associate volume uncertainty scalar field to the voxel grid + if (s_VoxFallParams.uncertaintySF) + { + //add volume uncertainty SF to voxel grid + s_VoxFallParams.uncertaintySF->computeMinAndMax(); + sfIdx = s_VoxFallParams.voxfall->addScalarField(s_VoxFallParams.uncertaintySF); + } + + //prepare export cloud + mesh1->applyGLTransformation_recursive(transform.inverse); + s_VoxFallParams.voxfall->applyGLTransformation_recursive(transform.inverse); + sfIdx = s_VoxFallParams.voxfall->getScalarFieldIndexByName(CLUSTER_SF_NAME); + s_VoxFallParams.voxfall->setCurrentDisplayedScalarField(sfIdx);; + s_VoxFallParams.voxfall->showSF(true); + if (s_VoxFallParams.exportBlocksAsMeshes) + { + s_VoxFallParams.voxfall->setEnabled(false); + } + app->addToDB(s_VoxFallParams.voxfall); + + if (app) + app->refreshAll(); + +} diff --git a/src/qVoxFallTools.cpp b/src/qVoxFallTools.cpp new file mode 100644 index 0000000..49c3497 --- /dev/null +++ b/src/qVoxFallTools.cpp @@ -0,0 +1,150 @@ +//########################################################################## +//# # +//# CLOUDCOMPARE PLUGIN: qVoxFall # +//# # +//# This program is free software; you can redistribute it and/or modify # +//# it under the terms of the GNU General Public License as published by # +//# the Free Software Foundation; version 2 of the License. # +//# # +//# This program is distributed in the hope that it will be useful, # +//# but WITHOUT ANY WARRANTY; without even the implied warranty of # +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +//# GNU General Public License for more details. # +//# # +//# COPYRIGHT: THE UNIVERSITY OF NEWCASTLE # +//# # +//########################################################################## + + +#include "qVoxFallTools.h" + +//qCC_db +#include + +//qCC +#include +#include + +//local +#include "qVoxFallDialog.h" + +//Qt +#include +#include +#include +#include +#include + + + +float qVoxFallTransform::GetRotationAngle(double azimuth) +{ + double azimuthRadians = azimuth * 3.14159 / 180; + + std::vector direction = { sin(azimuthRadians), cos(azimuthRadians) }; + std::vector xyView = { 0, 1 }; + + // compute dot product of unit vectors + double dotProduct = 0; + for (int i = 0; i < direction.size(); i++) + { + direction[i] = direction[i] / sqrt(direction[0] * direction[0] + direction[1] * direction[1]); + xyView[i] = xyView[i] / sqrt(xyView[0] * xyView[0] + xyView[1] * xyView[1]); + dotProduct += direction[i] * xyView[i]; + } + + float zRot = acos(std::max(-1.0, std::min(dotProduct, 1.0))); + + return zRot; +} + + +ccBox* qVoxFallTransform::CreateVoxelMesh(CCVector3 V, float voxelSize, int voxelIdx) +{ + CCVector3 dims = { voxelSize, voxelSize, voxelSize }; + QString name = QString("voxel#%1").arg(voxelIdx); + + const Vector3Tpl X(1, 0, 0); + const Vector3Tpl Y(0, 1, 0); + const Vector3Tpl Z(0, 0, 1); + ccGLMatrix* matrix = &ccGLMatrix::ccGLMatrix(X, Y, Z, V); + + ccBox* voxel = new ccBox(dims, matrix, name); + voxel->computePerTriangleNormals(); + return voxel; +} + + + +std::vector qVoxFallTools::FindAdjacents(Tuple3i V, CCVector3 steps, bool facetsOnly=false) +{ + std::vector set; + std::vector> adjacencyMatrix; + + if (!facetsOnly) + { + adjacencyMatrix = { + {1, 0, 0}, {-1, 0, 0}, {0, 1, 0}, + {0, -1, 0}, {0, 0, 1}, {0, 0, -1}, + {1, 1, 0}, {-1, 1, 0}, {1, -1, 0}, + {-1, -1, 0}, {0, 1, 1}, {0, 1, -1}, + {0, -1, 1}, {0, -1, -1}, {1, 0, 1}, + {1, 0, -1}, {-1, 0, 1}, {-1, 0, -1}, + {1, 1, 1}, {-1, -1, -1}, {1, 1, -1}, + {1, -1, 1}, {-1, 1, 1}, {1, -1, -1}, + {-1, -1, 1}, {-1, 1, -1} + }; + } + else + { + adjacencyMatrix = { + {1, 0, 0}, {-1, 0, 0}, {0, 1, 0}, + {0, -1, 0}, {0, 0, 1}, {0, 0, -1}, + }; + } + + for (unsigned n = 0; n < adjacencyMatrix.size(); n++) + { + + int x = int(V.x) + adjacencyMatrix[n][0]; + int y = int(V.y) + adjacencyMatrix[n][1]; + int z = int(V.z) + adjacencyMatrix[n][2]; + + if (x < 0 || y < 0 || z < 0 || x >= int(steps.x) || y >= int(steps.y) || z >= int(steps.z)) + { + continue; + } + + set.push_back({ x, y, z }); + } + + return set; +} + + +int qVoxFallTools::Grid2Index(Tuple3i n, CCVector3 steps) +{ + int i = n.x; + int j = n.y; + int k = n.z; + + int index = (i)+(j * int(steps.x)) + (k * int(steps.x) * int(steps.y)); + return index; +} + + +Tuple3i qVoxFallTools::Index2Grid(unsigned index, CCVector3 steps) +{ + int k = std::floor(index / (int(steps.y) * int(steps.x))); + int remain = index - (int(steps.y) * int(steps.x) * k); + int j = std::floor(remain / int(steps.x)); + int i = remain - (int(steps.x) * j); + + Tuple3i V( static_cast(i), + static_cast(j), + static_cast(k) ); + return V; +} + + + diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt new file mode 100644 index 0000000..68cc0b3 --- /dev/null +++ b/ui/CMakeLists.txt @@ -0,0 +1,6 @@ + +target_sources( ${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/disclaimerDlg.ui + ${CMAKE_CURRENT_LIST_DIR}/qVoxFallDialog.ui +) diff --git a/ui/disclaimerDlg.ui b/ui/disclaimerDlg.ui new file mode 100644 index 0000000..3ec5daf --- /dev/null +++ b/ui/disclaimerDlg.ui @@ -0,0 +1,112 @@ + + + DisclaimerDialog + + + + 0 + 0 + 540 + 250 + + + + qVoxFall (disclaimer) + + + + :/CC/plugin/qVoxFall/images/icon.png:/CC/plugin/qVoxFall/images/icon.png + + + + + + + + + 150 + 174 + + + + + + + :/CC/plugin/qVoxFall/images/university_of_newcastle_icon.png + + + true + + + + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'Calibri,sans-serif'; font-size:10pt; font-weight:600; color:#1f497d;">Voxelized rockfall (VoxFall) detection</span></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'Calibri,sans-serif'; font-size:10pt; font-style:italic; color:#1f497d;">Farmakis et al., VoxFall: Non-parametric volumetric change detection for rockfalls, Engineering Geology, 2024</span></p> +<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Calibri,sans-serif'; font-size:10pt; font-style:italic; color:#1f497d; background-color:#ffffff;"><br /></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'MS Shell Dlg 2,serif'; font-size:8pt; color:#aa007f; background-color:#ffffff;">© The University of Newcastle 2024. This program is free software and can be redistributed and/or modified under the terms of version 3 of the GNU General Public License (GPLv3). This program is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License v3 for more details.</span></p> +<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'arial,sans-serif'; font-size:10pt; font-style:italic; color:#222222; background-color:#ffffff;"><br /></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'Calibri,sans-serif'; font-size:10pt; color:#1f497d; background-color:#ffffff;">Research funded by the Australian Coal Association Research Program (ACARP) and the Australian Research Council (ARC).</span></p></body></html> + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + buttonBox + accepted() + DisclaimerDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + DisclaimerDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/ui/qVoxFallDialog.ui b/ui/qVoxFallDialog.ui new file mode 100644 index 0000000..a60434d --- /dev/null +++ b/ui/qVoxFallDialog.ui @@ -0,0 +1,254 @@ + + + VoxFallDialog + + + + 0 + 0 + 500 + 220 + + + + VoxFall Detection + + + + :/CC/plugin/qVoxFall/images/icon.png:/CC/plugin/qVoxFall/images/icon.png + + + + + + + + + + Mesh #1 + + + true + + + + + + + + + + Mesh #2 + + + true + + + + + + + + + + + + + :/CC/plugin/qVoxFall/images/iconSwap.png:/CC/plugin/qVoxFall/images/iconSwap.png + + + + + + + + + + + Model properties + + + + + + + 0 + 0 + + + + Voxel size + + + + + + + 4 + + + 0.000100000000000 + + + 1000000000.000000000000000 + + + 0.10 + + + + + + + + 0 + 0 + + + + (Limit of Detection 95%) + + + + + + + + 0 + 0 + + + + Azimuth (deg) + + + + + + + 0 + + + 0.0 + + + 360.0 + + + 0.0 + + + + + + + + 0 + 0 + + + + (Slope's dip direction) + + + + + + + + + + Output options + + + + + + Export meshes + + + true + + + + + + + Loss/gain + + + false + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + showMesh1CheckBox + mesh1LineEdit + showMesh2CheckBox + mesh2LineEdit + swapMeshesToolButton + voxelSizeDoubleSpinBox + azDoubleSpinBox + exportCheckBox + lossCheckBox + buttonBox + + + + + + + buttonBox + accepted() + VoxFallDialog + accept() + + + 316 + 358 + + + 157 + 274 + + + + + buttonBox + rejected() + VoxFallDialog + reject() + + + 384 + 358 + + + 286 + 274 + + + + +