Developer Documentation
OpenMesh::Decimater::ModNormalDeviationT< MeshT > Class Template Reference

Use Normal deviation to control decimation. More...

#include <libs_required/OpenMesh/src/OpenMesh/Tools/Decimater/ModNormalDeviationT.hh>

Inheritance diagram for OpenMesh::Decimater::ModNormalDeviationT< MeshT >:
OpenMesh::Decimater::ModBaseT< MeshT >

Public Types

typedef Mesh::Scalar Scalar
 
typedef Mesh::Point Point
 
typedef Mesh::Normal Normal
 
typedef Mesh::VertexHandle VertexHandle
 
typedef Mesh::FaceHandle FaceHandle
 
typedef Mesh::EdgeHandle EdgeHandle
 
typedef NormalConeT< Scalar > NormalCone
 
- Public Types inherited from OpenMesh::Decimater::ModBaseT< MeshT >
enum  { ILLEGAL_COLLAPSE = -1, LEGAL_COLLAPSE = 0 }
 
typedef MeshT Mesh
 
typedef CollapseInfoT< MeshT > CollapseInfo
 

Public Member Functions

 DECIMATING_MODULE (ModNormalDeviationT, MeshT, NormalDeviation)
 
 ModNormalDeviationT (MeshT &_mesh, float _max_dev=180.0)
 Constructor.
 
 ~ModNormalDeviationT ()
 Destructor.
 
Scalar normal_deviation () const
 Get normal deviation ( 0 .. 360 )
 
void set_normal_deviation (Scalar _s)
 Set normal deviation ( 0 .. 360 )
 
void initialize ()
 Allocate and init normal cones.
 
float collapse_priority (const CollapseInfo &_ci)
 Control normals when Decimating. More...
 
void set_error_tolerance_factor (double _factor)
 set the percentage of normal deviation
 
void postprocess_collapse (const CollapseInfo &_ci)
 
- Public Member Functions inherited from OpenMesh::Decimater::ModBaseT< MeshT >
virtual ~ModBaseT ()
 Virtual desctructor.
 
 DECIMATER_MODNAME (ModBase)
 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 preprocess_collapse (const CollapseInfoT< MeshT > &)
 

Private Attributes

Mesh & mesh_
 
Scalar normal_deviation_
 
OpenMesh::FPropHandleT< NormalConenormal_cones_
 

Additional Inherited Members

- Protected Member Functions inherited from OpenMesh::Decimater::ModBaseT< MeshT >
 ModBaseT (MeshT &_mesh, bool _is_binary)
 
MeshT & mesh ()
 Access the mesh associated with the decimater.
 
- Protected Attributes inherited from OpenMesh::Decimater::ModBaseT< MeshT >
double error_tolerance_factor_
 

Detailed Description

template<class MeshT>
class OpenMesh::Decimater::ModNormalDeviationT< MeshT >

Use Normal deviation to control decimation.

The module tracks the normals while decimating a normal cone consisting of all normals of the faces collapsed together is computed and if a collapse would increase the size of the cone to a value greater than the given value the collapse will be illegal.

In binary and mode, the collapse is legal if:

  • The normal deviation after the collapse is lower than the given value

In continuous mode the maximal deviation is returned

Definition at line 94 of file ModNormalDeviationT.hh.

Member Function Documentation

template<class MeshT>
float OpenMesh::Decimater::ModNormalDeviationT< MeshT >::collapse_priority ( const CollapseInfo _ci)
inlinevirtual

Control normals when Decimating.

Binary and Cont. mode.

The module tracks the normals while decimating a normal cone consisting of all normals of the faces collapsed together is computed and if a collapse would increase the size of the cone to a value greater than the given value the collapse will be illegal.

Parameters
_ciCollapse info data
Returns
Half of the normal cones size (radius in radians)

Reimplemented from OpenMesh::Decimater::ModBaseT< MeshT >.

Definition at line 174 of file ModNormalDeviationT.hh.

template<class MeshT>
void OpenMesh::Decimater::ModNormalDeviationT< MeshT >::postprocess_collapse ( const CollapseInfo )
inlinevirtual

After _from_vh has been collapsed into _to_vh, this method will be called.

Reimplemented from OpenMesh::Decimater::ModBaseT< MeshT >.

Definition at line 224 of file ModNormalDeviationT.hh.


The documentation for this class was generated from the following file: