#include <ModBaseT.hh>
Inheritance diagram for OpenMesh::Decimater::ModBaseT< DecimaterType >:
Public Types | |
enum | { ILLEGAL_COLLAPSE = -1, LEGAL_COLLAPSE = 0 } |
Public Member Functions | |
virtual | ~ModBaseT () |
Virtual desctructor. | |
virtual const std::string & | name () const |
Set module's name (using DECIMATER_MODNAME macro). | |
bool | is_binary (void) const |
Returns true if criteria returns a binary value. | |
void | set_binary (bool _b) |
Set whether module is binary or not. | |
virtual void | initialize () |
Initialize module-internal stuff. | |
virtual float | collapse_priority (const CollapseInfoT< Mesh > &_ci) |
Return collapse priority. | |
virtual void | preprocess_collapse (const CollapseInfoT< Mesh > &_ci) |
Immediately before the collapse _ci is executed, this method will be called. | |
virtual void | postprocess_collapse (const CollapseInfoT< Mesh > &_ci) |
After the collapse _ci has been executed, this method will be called. | |
Protected Member Functions | |
ModBaseT (DecimaterType &_dec, bool _is_binary) | |
Default constructor. | |
Mesh & | mesh () |
Access the mesh associated with the decimater. |
Each module has to implement this interface. To build your own module you have to
A module has two major working modes:
In the binary mode collapse_priority() checks a constraint and returns LEGAL_COLLAPSE or ILLEGAL_COLLAPSE.
In the non-binary mode the module computes a float error value in the range [0, inf) and returns it. In the case a constraint has been set, e.g. the error must be lower than a upper bound, and the constraint is violated, collapse_priority() must return ILLEGAL_COLLAPSE.
|
|
|
Default constructor.
|
|
Return collapse priority. In the binary mode collapse_priority() checks a constraint and returns LEGAL_COLLAPSE or ILLEGAL_COLLAPSE. In the non-binary mode the module computes a float error value in the range [0, inf) and returns it. In the case a constraint has been set, e.g. the error must be lower than a upper bound, and the constraint is violated, collapse_priority() must return ILLEGAL_COLLAPSE.
|