OpenMesh::Decimater::DecimaterT< MeshT > Class Template Reference

#include <DecimaterT.hh>

List of all members.

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< SelfModule
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.
Meshmesh ()
 access mesh. used in modules.
template<typename Module >
Modulemodule (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)
Selfoperator= (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_
Modulecmodule_
VPropHandleT< HalfedgeHandlecollapse_target_
std::auto_ptr< DeciHeapheap_
VPropHandleT< int > heap_position_
bool initialized_
Meshmesh_
VPropHandleT< float > priority_

Detailed Description

template<typename MeshT>
class OpenMesh::Decimater::DecimaterT< MeshT >

Decimater framework.

See also:
BaseModT, decimater_docu

Definition at line 78 of file DecimaterT.hh.


Member Typedef Documentation

template<typename MeshT >
typedef CollapseInfoT<MeshT> OpenMesh::Decimater::DecimaterT< MeshT >::CollapseInfo

Definition at line 84 of file DecimaterT.hh.

template<typename MeshT >
typedef Utils::HeapT<VertexHandle, HeapInterface> OpenMesh::Decimater::DecimaterT< MeshT >::DeciHeap

Definition at line 231 of file DecimaterT.hh.

template<typename MeshT >
typedef Mesh::HalfedgeHandle OpenMesh::Decimater::DecimaterT< MeshT >::HalfedgeHandle

Definition at line 195 of file DecimaterT.hh.

template<typename MeshT >
typedef MeshT OpenMesh::Decimater::DecimaterT< MeshT >::Mesh

Definition at line 83 of file DecimaterT.hh.

template<typename MeshT >
typedef ModBaseT<Self> OpenMesh::Decimater::DecimaterT< MeshT >::Module

Definition at line 85 of file DecimaterT.hh.

template<typename MeshT >
typedef std::vector< Module* > OpenMesh::Decimater::DecimaterT< MeshT >::ModuleList

Definition at line 86 of file DecimaterT.hh.

template<typename MeshT >
typedef ModuleList::iterator OpenMesh::Decimater::DecimaterT< MeshT >::ModuleListIterator

Definition at line 87 of file DecimaterT.hh.

template<typename MeshT >
typedef DecimaterT< MeshT > OpenMesh::Decimater::DecimaterT< MeshT >::Self

Definition at line 82 of file DecimaterT.hh.

template<typename MeshT >
typedef Mesh::VertexHandle OpenMesh::Decimater::DecimaterT< MeshT >::VertexHandle

Definition at line 194 of file DecimaterT.hh.


Constructor & Destructor Documentation

template<class Mesh >
OpenMesh::Decimater::DecimaterT< Mesh >::DecimaterT ( Mesh _mesh  )  [inline]

Constructor.

Definition at line 67 of file DecimaterT.cc.

template<class Mesh >
OpenMesh::Decimater::DecimaterT< Mesh >::~DecimaterT (  )  [inline]

Destructor.

Definition at line 91 of file DecimaterT.cc.

template<typename MeshT >
OpenMesh::Decimater::DecimaterT< MeshT >::DecimaterT ( const Self  )  [private]

Member Function Documentation

template<typename MeshT >
template<typename _Module >
bool OpenMesh::Decimater::DecimaterT< MeshT >::add ( ModHandleT< _Module > &  _mh  )  [inline]

add module to decimater

Definition at line 122 of file DecimaterT.hh.

template<class Mesh >
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.

template<class Mesh >
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.

template<typename MeshT >
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.

template<class Mesh >
void OpenMesh::Decimater::DecimaterT< Mesh >::heap_vertex ( VertexHandle  _vh  )  [inline, private]

Insert vertex in heap.

Definition at line 340 of file DecimaterT.cc.

template<class Mesh >
void OpenMesh::Decimater::DecimaterT< Mesh >::info ( std::ostream &  _os  )  [inline]

Print information about modules to _os.

Definition at line 121 of file DecimaterT.cc.

template<class Mesh >
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.

template<class Mesh >
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.

Attention:
The method temporarily sets the bit Tagged. After usage the bit will be disabled!

Definition at line 229 of file DecimaterT.cc.

template<typename MeshT >
bool OpenMesh::Decimater::DecimaterT< MeshT >::is_initialized (  )  const [inline]

Returns whether decimater has been successfully initialized.

Definition at line 109 of file DecimaterT.hh.

template<typename MeshT >
Mesh& OpenMesh::Decimater::DecimaterT< MeshT >::mesh (  )  [inline]

access mesh. used in modules.

Definition at line 118 of file DecimaterT.hh.

template<typename MeshT >
template<typename Module >
Module& OpenMesh::Decimater::DecimaterT< MeshT >::module ( ModHandleT< Module > &  _mh  )  [inline]

get module referenced by handle _mh

Definition at line 161 of file DecimaterT.hh.

template<typename MeshT >
Self& OpenMesh::Decimater::DecimaterT< MeshT >::operator= ( const Self  )  [private]
template<class Mesh >
void OpenMesh::Decimater::DecimaterT< Mesh >::postprocess_collapse ( CollapseInfo _ci  )  [inline, private]

Post-process a collapse.

Definition at line 395 of file DecimaterT.cc.

template<typename MeshT >
template<typename _Module >
bool OpenMesh::Decimater::DecimaterT< MeshT >::remove ( ModHandleT< _Module > &  _mh  )  [inline]

remove module

Definition at line 138 of file DecimaterT.hh.

template<typename MeshT >
void OpenMesh::Decimater::DecimaterT< MeshT >::set_uninitialized (  )  [inline, private]

Definition at line 252 of file DecimaterT.hh.

template<typename MeshT >
void OpenMesh::Decimater::DecimaterT< MeshT >::update_modules ( CollapseInfo _ci  )  [inline, private]

Definition at line 184 of file DecimaterT.hh.


Member Data Documentation

template<typename MeshT >
ModuleList OpenMesh::Decimater::DecimaterT< MeshT >::all_modules_ [private]

Definition at line 275 of file DecimaterT.hh.

template<typename MeshT >
ModuleList OpenMesh::Decimater::DecimaterT< MeshT >::bmodules_ [private]

Definition at line 269 of file DecimaterT.hh.

template<typename MeshT >
Module* OpenMesh::Decimater::DecimaterT< MeshT >::cmodule_ [private]

Definition at line 272 of file DecimaterT.hh.

template<typename MeshT >
VPropHandleT<HalfedgeHandle> OpenMesh::Decimater::DecimaterT< MeshT >::collapse_target_ [private]

Definition at line 281 of file DecimaterT.hh.

template<typename MeshT >
std::auto_ptr<DeciHeap> OpenMesh::Decimater::DecimaterT< MeshT >::heap_ [private]

Definition at line 266 of file DecimaterT.hh.

template<typename MeshT >
VPropHandleT<int> OpenMesh::Decimater::DecimaterT< MeshT >::heap_position_ [private]

Definition at line 283 of file DecimaterT.hh.

template<typename MeshT >
bool OpenMesh::Decimater::DecimaterT< MeshT >::initialized_ [private]

Definition at line 277 of file DecimaterT.hh.

template<typename MeshT >
Mesh& OpenMesh::Decimater::DecimaterT< MeshT >::mesh_ [private]

Definition at line 263 of file DecimaterT.hh.

template<typename MeshT >
VPropHandleT<float> OpenMesh::Decimater::DecimaterT< MeshT >::priority_ [private]

Definition at line 282 of file DecimaterT.hh.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:17 2013