![]() |
ImFusion SDK 4.3
|
#include <ImFusion/Base/SurfaceRegistration.h>
Surface registration using a distance volume. More...
Inheritance diagram for SurfaceRegistration:Surface registration using a distance volume.
Public Member Functions | |
| SurfaceRegistration (Mesh *referenceMesh=nullptr, PointCloud *templatePtCloud=nullptr, SharedImage *distVol=nullptr) | |
| Constructor. | |
| ~SurfaceRegistration () override | |
| Destructor. | |
| bool | loadReferenceMesh (const char *filename) |
| Loads the reference mesh from a file, returning true if successful. | |
| bool | setReferenceMesh (Mesh *mesh) |
| Sets the reference mesh. | |
| int | loadTemplateMesh (const char *filename, int ignoredLegacyParam=0) |
| Loads the template mesh from a file, returning number of points if successful. | |
| void | setTemplatePointCloud (PointCloud *templatePtCloud) |
| void | setTemplatePoints (int n, const double *points) |
| Directly set the template points. | |
| bool | hasInputReferenceMesh () const |
| bool | hasInputTemplatePointCloud () const |
| void | setResolution (const double resolution) |
| Sets the resolution. | |
| void | setInsideWeight (const double insideWeight) |
| Sets the inside weight. | |
| void | setInitialMatrix (const mat4 &matrix) |
| Optionally provide an initial alignment matrix. | |
| void | setOptimizer (std::shared_ptr< Optimizer > opt) |
| Set symmetric optimization boundaries. | |
| void | setMeshExpansion (double val) |
| Set the mesh expansion factor. | |
| void | setAngleAxis (bool flag) |
| Enable or disable angle-axis parameterization of the rotation. | |
| void | setCenterPose (bool flag) |
| Enable or disable centering of the transformation around the point cloud. | |
| void | addPriorityBox (const vec3 &minCorner, const vec3 &maxCorner, double weight) |
| Optionally defines rectangular regions with different weighting. | |
| double | execute (mat4 &matrixOut) |
| Executes registration and output the absolute registration matrix. | |
| Mesh * | referenceMesh () |
| Access the reference mesh. | |
| Mesh * | templateMesh () |
| Access the template mesh. | |
| const std::vector< vec3 > * | templatePoints () const |
| Access to the template points. | |
| std::vector< vec3 > * | templatePoints () |
| const TypedImage< float > * | distanceVolume (vec3 *offsetOut=0) const |
| Return read-only pointer to the distance volume. | |
| const mat4 * | matrix () const |
| Access the current transformation matrix. | |
| const mat4 & | initialMatrix () const |
| Return the initial matrix. | |
| bool | moveReference () const |
| Return if the reference mesh is transformed. | |
| void | setUseIcp (bool useIcp) |
| void | setIcpMode (int mode) |
| mat4 | groundTruthPose () const |
| OptimizationStudy * | randomStudyICP (double range, int runs, Progress *progress=0) |
| std::shared_ptr< Optimizer > | opt () |
| Access the optimizer. | |
| std::vector< std::string > | dataSets () const |
| Return list of data set identifiers. | |
| void | selectDataSet (int id) |
| Select data set based on index into list returned by dataSets() | |
| std::vector< double > | evaluateError (const mat4 &T, double *distOut=0) |
| void | fiducialPoints (std::vector< vec3 > &refPoints, std::vector< vec3 > &trackedPoints) |
| std::string | outputDistancesFilepath () const |
| void | pcWithDistances (const std::vector< size_t > *&verts, const std::vector< double > *&dist, int &displayMode) const |
| std::vector< int > | getClosestVerticesOnNormalizedMesh () |
Public Member Functions inherited from Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| virtual OwningDataList | takeOutput () |
| Return any new Data that was created by the Algorithm during the last call to compute(). | |
| virtual void | setProgress (Progress *progress) |
| Sets a Progress interface the algorithm can use to notify observers about its computing progress. | |
| Progress * | progress () const |
| Returns the progress interface if set. | |
| virtual int | status () const |
| Indicates the status of the last call to compute(). | |
| virtual bool | survivesDataDeletion (const Data *) const |
| Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list. | |
| const FactoryInfo & | factoryInfo () const |
| Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| void | setFactoryInfo (const FactoryInfo &value) |
| Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| Status | runAction (const std::string &id) |
Run the action with name id if it exists. | |
| const std::vector< Action > & | actions () |
| Get a mapping from Action id to Action as registered in this algorithm. | |
Public Member Functions inherited from Configurable | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Static Public Member Functions | |
| static bool | hasICP () |
Static Public Member Functions inherited from Algorithm | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
| Factory function to check algorithm compatibility with input data and optionally instantiate it. | |
Protected Member Functions | |
| bool | processReferenceMesh () |
| Processes the reference mesh and compute distance volume, returning true if successful. | |
| bool | transformReferenceMesh () |
| Apply transformation of the mesh from image to anatomical coordinates, if specified in config. | |
| bool | loadReferenceMesh (int numVertices, int numTriangles, const double *vertices, const int *triangles) |
| Loads the reference mesh directly from memory, returning true if successful. | |
| double | registerICP (bool printError=true) |
| void | loadConfig () |
Protected Member Functions inherited from Algorithm | |
| void | loadDefaults () |
| void | registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action) |
| Register an action to be run via runAction. | |
| template<typename D> | |
| void | registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void)) |
| Template version of runAction that can be used with a pointer to a member function. | |
| void | registerAction (const Action &action) |
| Register an action. | |
Algorithm interface | |
| void | compute () override |
| Execute the algorithm. | |
| void | configure (const Properties *p) override |
| Configure this object instance by de-serializing the given Properties. | |
| void | configuration (Properties *p) const override |
| Serialize the current object configuration into the given Properties object. | |
| static bool | createCompatible (const DataList &data, Algorithm **a=0) |
Additional Inherited Members | |
Public Types inherited from Algorithm | |
| enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
| Status codes. More... | |
Public Attributes inherited from Algorithm | |
| Signal | signalOutputChanged |
| Signal should be emitted by Algorithms when their output/result has changed. | |
| Signal | signalParametersChanged |
| Signal should be emitted by Algorithms when their parameter configuration has changed. | |
Public Attributes inherited from Configurable | |
| Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Protected Attributes inherited from Algorithm | |
| std::string | m_name |
| Algorithm name. | |
| Progress * | m_progress = nullptr |
| Non-owing pointer to a progress interface. May be a nullptr. | |
| FactoryInfo | m_factoryInfo = {} |
| Record describing how this algorithm was instantiated by the AlgorithmFactory. | |
| int | m_status = Status::Unknown |
| Algorithm status after last call to compute() | |
| std::vector< Action > | m_actions |
| Map of key given by the id of the action, of the available actions of this algorithm. | |
Protected Attributes inherited from Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
overridevirtual |
Execute the algorithm.
Implements Algorithm.
|
overridevirtual |
Configure this object instance by de-serializing the given Properties.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.
|
overridevirtual |
Serialize the current object configuration into the given Properties object.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.
|
inline |
Set symmetric optimization boundaries.
Set selection of parameters to optimize Set the optimizer instance