![]() |
ImFusion SDK 4.3
|
#include <ImFusion/Mesh/MeshProcessingAlgorithm.h>
Wraps different mesh processing functionality into a single algorithm. More...
Wraps different mesh processing functionality into a single algorithm.
See the Mesh::Processing namespace for direct access to the different processing options.
Public Types | |
enum | Mode { NONE = 0 , SMOOTH , DECIMATE , FILL_HOLES , COLOR , CROP , CLEAN , AUTO_ALIGN , REMOVE_EDGES , INVERT_NORMALS , MERGE_CLOSE_VERTICES } |
Computation mode. More... | |
enum class | SmoothMode { Laplacian = 0 , Taubin } |
enum class | StatusExt { FillHolesNotSupported , ColoringFailed , ComputationFailed } |
Enumeration listing possible errors during the computation. More... | |
![]() | |
enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
Status codes. More... | |
Public Member Functions | |
MeshProcessingAlgorithm (Mesh *mesh) | |
Constructor. | |
~MeshProcessingAlgorithm () override | |
Destructor. | |
Mesh * | mesh () const |
Get mesh. | |
void | compute () override |
Execute the algorithm. | |
OwningDataList | takeOutput () override |
Return any new Data that was created by the Algorithm during the last call to compute(). | |
void | setMode (const Mode &mode) |
Set computation mode. | |
Mode | mode () const |
Get computation mode. | |
void | setInPlace (bool inPlace) |
bool | inPlace () const |
void | setSmoothMode (SmoothMode mode) |
Set smoothing parameters. | |
SmoothMode | smoothMode () const |
Get smoothing parameters. | |
void | setSmoothParam (int iter) |
Set smoothing parameters. | |
int | smoothParam () const |
Get smoothing parameters. | |
void | setRemoveEdgesParam (int layers) |
Set parameters for removing the edges. | |
int | removeEgdesParam () const |
Get parameters for removing the edges. | |
void | setDecimationParam (double maxEdgeLength, double maxSurfaceError, bool preserveColors, const std::vector< int > &blockedVertices={}) |
Set decimation parameters (values <= 0 disable the criterion) | |
void | decimationParam (double &maxEdgeLength, double &maxSurfaceError, bool &preserveColors, std::vector< int > *blockedVertices=nullptr) const |
Get decimation parameters. | |
void | setDecimationParam (double maxEdgeLength, bool preserveColors, bool preserveCurvature, const std::vector< int > &blockedVertices={}) |
Set decimation parameters. | |
void | decimationParam (double &maxEdgeLength, bool &preserveColors, bool &preserveCurvature, std::vector< int > *blockedVertices=nullptr) const |
Get decimation parameters. | |
void | setColorParam (float brightness, float contrast, float gamma, bool useHSV, bool applySettingsToTexture) |
Set color parameters. | |
void | colorParam (float &brightness, float &contrast, float &gamma, bool &useHSV, bool &applySettingsToTexture) const |
Get color parameters. | |
void | setCropParam (const vec3 &boxCenter, const vec3 &boxExtent, bool discardPointsInside, const mat4 &T, bool capHole) |
Set cropping parameters. | |
void | cropParam (vec3 &boxCenter, vec3 &boxExtent, bool &discardPointsInside, mat4 &T, bool &capHole) const |
Get cropping parameters. | |
void | setCleanParam (float min, float max) |
Set cleaning parameters. | |
void | cleanParam (float &min, float &max) const |
Get cleaning parameters. | |
void | setAutoAlignParam (double minInlierRatio, double worstCaseConfidence, bool alignAnyway) |
Set auto-aligning parameters. | |
void | autoAlignParam (double &minInlierRatio, double &worstCaseConfidence, bool &alignAnyway) |
Get auto-aligning parameters. | |
void | setHoleFillParam (int depth) |
void | holeFillParam (int &depth) |
void | setVertexMergeParam (double threshold) |
void | vertexMergeParam (double &threshold) |
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. | |
![]() | |
Algorithm () | |
Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
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. | |
![]() | |
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 | createCompatible (const DataList &data, Algorithm **a=0) |
![]() | |
static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
Factory function to check algorithm compatibility with input data and optionally instantiate it. | |
Additional Inherited Members | |
![]() | |
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. | |
![]() | |
Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
std::vector< Param > | m_params |
List of all registered Parameter and SubProperty instances. | |
enum Mode |
Computation mode.
|
strong |
|
overridevirtual |
Execute the algorithm.
Implements Algorithm.
|
overridevirtual |
void setSmoothParam | ( | int | iter | ) |
Set smoothing parameters.
Allowed values are in [1,100]
void setDecimationParam | ( | double | maxEdgeLength, |
bool | preserveColors, | ||
bool | preserveCurvature, | ||
const std::vector< int > & | blockedVertices = {} ) |
Set decimation parameters.
void decimationParam | ( | double & | maxEdgeLength, |
bool & | preserveColors, | ||
bool & | preserveCurvature, | ||
std::vector< int > * | blockedVertices = nullptr ) const |
Get decimation parameters.
|
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.