Public Types | |
typedef BaseDecimaterT< MeshT > | Self |
typedef MeshT | Mesh |
typedef CollapseInfoT< MeshT > | CollapseInfo |
typedef ModBaseT< MeshT > | Module |
typedef std::vector< Module * > | ModuleList |
typedef ModuleList::iterator | ModuleListIterator |
Public Member Functions | |
BaseDecimaterT (Mesh &_mesh) | |
bool | initialize () |
Initialize decimater and decimating modules. | |
bool | is_initialized () const |
Returns whether decimater has been successfully initialized. | |
void | info (std::ostream &_os) |
Print information about modules to _os. | |
void | set_observer (Observer *_o) |
Add observer. | |
Observer * | observer () |
Get current observer of a decimater. | |
Mesh & | mesh () |
access mesh. used in modules. | |
template<typename _Module> | |
bool | add (ModHandleT< _Module > &_mh) |
add module to decimater | |
template<typename _Module> | |
bool | remove (ModHandleT< _Module > &_mh) |
remove module | |
template<typename Module> | |
Module & | module (ModHandleT< Module > &_mh) |
get module referenced by handle _mh |
Protected Member Functions | |
bool | notify_observer (size_t _n_collapses) |
returns false, if abort requested by observer | |
void | set_uninitialized () |
Reset the initialized flag, and clear the bmodules_ and cmodule_. | |
void | update_modules (CollapseInfo &_ci) |
bool | is_collapse_legal (const CollapseInfo &_ci) |
Is an edge collapse legal? | |
float | collapse_priority (const CollapseInfo &_ci) |
Calculate priority of an halfedge collapse (using the modules) | |
void | preprocess_collapse (CollapseInfo &_ci) |
Pre-process a collapse. | |
void | postprocess_collapse (CollapseInfo &_ci) |
Post-process a collapse. | |
void | set_error_tolerance_factor (double _factor) |
This provides a function that allows the setting of a percentage of the original constraint of the modules. | |
void | reset () |
Reset the status of this class. |
bool OpenMesh::Decimater::BaseDecimaterT< Mesh >::initialize | ( | ) |
Initialize decimater and decimating modules.
Return values: true ok false No ore more than one non-binary module exist. In that case the decimater is uninitialized!
|
protected |
Is an edge collapse legal?
Performs topological test only. The method evaluates the status bit Locked, Deleted, and Feature.
|
inlineprotected |
Reset the status of this class.
You have to call initialize again!!
|
protected |
This provides a function that allows the setting of a percentage of the original constraint of the modules.
Note that some modules might re-initialize in their set_error_tolerance_factor function as necessary
_factor | has to be in the closed interval between 0.0 and 1.0 |
|
inline |
Add observer.
You can set an observer which is used as a callback to check the decimators progress and to abort it if necessary.
_o | Observer to be used |