#include <DecimaterT.hh>
Classes | |
| class | HeapInterface |
| Heap interface. More... | |
Public Types | |
| typedef CollapseInfoT< MeshT > | CollapseInfo |
| typedef Utils::HeapT < VertexHandle, HeapInterface > | DeciHeap |
| typedef Mesh::HalfedgeHandle | HalfedgeHandle |
| typedef MeshT | Mesh |
| typedef ModBaseT< Self > | Module |
| typedef std::vector< Module * > | ModuleList |
| typedef ModuleList::iterator | ModuleListIterator |
| typedef DecimaterT< MeshT > | Self |
| typedef Mesh::VertexHandle | VertexHandle |
Public Member Functions | |
| template<typename _Module > | |
| bool | add (ModHandleT< _Module > &_mh) |
| add module to decimater | |
| size_t | decimate (size_t _n_collapses=0) |
| size_t | decimate_to (size_t _n_vertices) |
| Decimate to target complexity, returns number of collapses. | |
| DecimaterT (Mesh &_mesh) | |
| Constructor. | |
| void | info (std::ostream &_os) |
| Print information about modules to _os. | |
| bool | initialize () |
| bool | is_initialized () const |
| Returns whether decimater has been successfully initialized. | |
| Mesh & | mesh () |
| access mesh. used in modules. | |
| template<typename Module > | |
| Module & | module (ModHandleT< Module > &_mh) |
| get module referenced by handle _mh | |
| template<typename _Module > | |
| bool | remove (ModHandleT< _Module > &_mh) |
| remove module | |
| ~DecimaterT () | |
| Destructor. | |
Private Member Functions | |
| float | collapse_priority (const CollapseInfo &_ci) |
| Calculate priority of an halfedge collapse (using the modules). | |
| DecimaterT (const Self &) | |
| void | heap_vertex (VertexHandle _vh) |
| Insert vertex in heap. | |
| bool | is_collapse_legal (const CollapseInfo &_ci) |
| Self & | operator= (const Self &) |
| void | postprocess_collapse (CollapseInfo &_ci) |
| Post-process a collapse. | |
| void | set_uninitialized () |
| void | update_modules (CollapseInfo &_ci) |
Private Attributes | |
| ModuleList | all_modules_ |
| ModuleList | bmodules_ |
| Module * | cmodule_ |
| VPropHandleT< HalfedgeHandle > | collapse_target_ |
| std::auto_ptr< DeciHeap > | heap_ |
| VPropHandleT< int > | heap_position_ |
| bool | initialized_ |
| Mesh & | mesh_ |
| VPropHandleT< float > | priority_ |
Decimater framework.
Definition at line 78 of file DecimaterT.hh.
| typedef CollapseInfoT<MeshT> OpenMesh::Decimater::DecimaterT< MeshT >::CollapseInfo |
Definition at line 84 of file DecimaterT.hh.
| typedef Utils::HeapT<VertexHandle, HeapInterface> OpenMesh::Decimater::DecimaterT< MeshT >::DeciHeap |
Definition at line 231 of file DecimaterT.hh.
| typedef Mesh::HalfedgeHandle OpenMesh::Decimater::DecimaterT< MeshT >::HalfedgeHandle |
Definition at line 195 of file DecimaterT.hh.
| typedef MeshT OpenMesh::Decimater::DecimaterT< MeshT >::Mesh |
Definition at line 83 of file DecimaterT.hh.
| typedef ModBaseT<Self> OpenMesh::Decimater::DecimaterT< MeshT >::Module |
Definition at line 85 of file DecimaterT.hh.
| typedef std::vector< Module* > OpenMesh::Decimater::DecimaterT< MeshT >::ModuleList |
Definition at line 86 of file DecimaterT.hh.
| typedef ModuleList::iterator OpenMesh::Decimater::DecimaterT< MeshT >::ModuleListIterator |
Definition at line 87 of file DecimaterT.hh.
| typedef DecimaterT< MeshT > OpenMesh::Decimater::DecimaterT< MeshT >::Self |
Definition at line 82 of file DecimaterT.hh.
| typedef Mesh::VertexHandle OpenMesh::Decimater::DecimaterT< MeshT >::VertexHandle |
Definition at line 194 of file DecimaterT.hh.
| OpenMesh::Decimater::DecimaterT< Mesh >::DecimaterT | ( | Mesh & | _mesh | ) | [inline] |
Constructor.
Definition at line 67 of file DecimaterT.cc.
| OpenMesh::Decimater::DecimaterT< Mesh >::~DecimaterT | ( | ) | [inline] |
Destructor.
Definition at line 91 of file DecimaterT.cc.
| OpenMesh::Decimater::DecimaterT< MeshT >::DecimaterT | ( | const Self & | ) | [private] |
| bool OpenMesh::Decimater::DecimaterT< MeshT >::add | ( | ModHandleT< _Module > & | _mh | ) | [inline] |
add module to decimater
Definition at line 122 of file DecimaterT.hh.
| float OpenMesh::Decimater::DecimaterT< Mesh >::collapse_priority | ( | const CollapseInfo & | _ci | ) | [inline, private] |
Calculate priority of an halfedge collapse (using the modules).
Definition at line 322 of file DecimaterT.cc.
| size_t OpenMesh::Decimater::DecimaterT< Mesh >::decimate | ( | size_t | _n_collapses = 0 |
) | [inline] |
Decimate (perform _n_collapses collapses). Return number of performed collapses. If _n_collapses is not given reduce as much as possible
Definition at line 411 of file DecimaterT.cc.
| size_t OpenMesh::Decimater::DecimaterT< MeshT >::decimate_to | ( | size_t | _n_vertices | ) | [inline] |
Decimate to target complexity, returns number of collapses.
Definition at line 175 of file DecimaterT.hh.
| void OpenMesh::Decimater::DecimaterT< Mesh >::heap_vertex | ( | VertexHandle | _vh | ) | [inline, private] |
Insert vertex in heap.
Definition at line 340 of file DecimaterT.cc.
| void OpenMesh::Decimater::DecimaterT< Mesh >::info | ( | std::ostream & | _os | ) | [inline] |
Print information about modules to _os.
Definition at line 121 of file DecimaterT.cc.
| bool OpenMesh::Decimater::DecimaterT< Mesh >::initialize | ( | ) | [inline] |
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!
Definition at line 159 of file DecimaterT.cc.
| bool OpenMesh::Decimater::DecimaterT< Mesh >::is_collapse_legal | ( | const CollapseInfo & | _ci | ) | [inline, private] |
Is an edge collapse legal? Performs topological test only. The method evaluates the status bit Locked, Deleted, and Feature.
Definition at line 229 of file DecimaterT.cc.
| bool OpenMesh::Decimater::DecimaterT< MeshT >::is_initialized | ( | ) | const [inline] |
Returns whether decimater has been successfully initialized.
Definition at line 109 of file DecimaterT.hh.
| Mesh& OpenMesh::Decimater::DecimaterT< MeshT >::mesh | ( | ) | [inline] |
access mesh. used in modules.
Definition at line 118 of file DecimaterT.hh.
| Module& OpenMesh::Decimater::DecimaterT< MeshT >::module | ( | ModHandleT< Module > & | _mh | ) | [inline] |
get module referenced by handle _mh
Definition at line 161 of file DecimaterT.hh.
| Self& OpenMesh::Decimater::DecimaterT< MeshT >::operator= | ( | const Self & | ) | [private] |
| void OpenMesh::Decimater::DecimaterT< Mesh >::postprocess_collapse | ( | CollapseInfo & | _ci | ) | [inline, private] |
Post-process a collapse.
Definition at line 395 of file DecimaterT.cc.
| bool OpenMesh::Decimater::DecimaterT< MeshT >::remove | ( | ModHandleT< _Module > & | _mh | ) | [inline] |
remove module
Definition at line 138 of file DecimaterT.hh.
| void OpenMesh::Decimater::DecimaterT< MeshT >::set_uninitialized | ( | ) | [inline, private] |
Definition at line 252 of file DecimaterT.hh.
| void OpenMesh::Decimater::DecimaterT< MeshT >::update_modules | ( | CollapseInfo & | _ci | ) | [inline, private] |
Definition at line 184 of file DecimaterT.hh.
ModuleList OpenMesh::Decimater::DecimaterT< MeshT >::all_modules_ [private] |
Definition at line 275 of file DecimaterT.hh.
ModuleList OpenMesh::Decimater::DecimaterT< MeshT >::bmodules_ [private] |
Definition at line 269 of file DecimaterT.hh.
Module* OpenMesh::Decimater::DecimaterT< MeshT >::cmodule_ [private] |
Definition at line 272 of file DecimaterT.hh.
VPropHandleT<HalfedgeHandle> OpenMesh::Decimater::DecimaterT< MeshT >::collapse_target_ [private] |
Definition at line 281 of file DecimaterT.hh.
std::auto_ptr<DeciHeap> OpenMesh::Decimater::DecimaterT< MeshT >::heap_ [private] |
Definition at line 266 of file DecimaterT.hh.
VPropHandleT<int> OpenMesh::Decimater::DecimaterT< MeshT >::heap_position_ [private] |
Definition at line 283 of file DecimaterT.hh.
bool OpenMesh::Decimater::DecimaterT< MeshT >::initialized_ [private] |
Definition at line 277 of file DecimaterT.hh.
Mesh& OpenMesh::Decimater::DecimaterT< MeshT >::mesh_ [private] |
Definition at line 263 of file DecimaterT.hh.
VPropHandleT<float> OpenMesh::Decimater::DecimaterT< MeshT >::priority_ [private] |
Definition at line 282 of file DecimaterT.hh.