Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
OpenMesh::Decimater::ModNormalFlippingT< MeshT > Class Template Reference

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

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

Public Member Functions

 DECIMATING_MODULE (ModNormalFlippingT, MeshT, NormalFlipping)
 ModNormalFlippingT (MeshT &_mesh)
float collapse_priority (const CollapseInfo &_ci)
void set_error_tolerance_factor (double _factor)
 set the percentage of maximum normal deviation
double max_normal_deviation () const
 get normal deviation
void set_max_normal_deviation (double _d)
- Public Member Functions inherited from OpenMesh::Decimater::ModBaseT< MeshT >
virtual ~ModBaseT ()
 Virtual desctructor.
 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 void preprocess_collapse (const CollapseInfoT< MeshT > &)
virtual void postprocess_collapse (const CollapseInfoT< MeshT > &)

Private Member Functions

void set_binary (bool _b)

Private Attributes

double max_deviation_
double min_cos_

Additional Inherited Members

- Public Types inherited from OpenMesh::Decimater::ModBaseT< MeshT >
typedef MeshT Mesh
typedef CollapseInfoT< MeshT > CollapseInfo
- 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<typename MeshT>
class OpenMesh::Decimater::ModNormalFlippingT< MeshT >

Decimating module to avoid flipping of faces.

This module can be used only as a binary module. The criterion of allowing/disallowing the collapse is the angular deviation between the face normal of the original faces and normals of the faces after the collapse. The collapse will pass the test, if the deviation is below a given threshold.

Definition at line 85 of file ModNormalFlippingT.hh.

Member Function Documentation

template<typename MeshT>
float OpenMesh::Decimater::ModNormalFlippingT< MeshT >::collapse_priority ( const CollapseInfo _ci)

Compute collapse priority due to angular deviation of face normals before and after a collapse.

  1. Compute for each adjacent face of _ci.v0 the face normal if the collpase would be executed.
  2. Prevent the collapse, if the cosine of the angle between the original and the new normal is below a given threshold.
_ciThe collapse description
See also

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

Definition at line 130 of file ModNormalFlippingT.hh.

template<typename MeshT>
void OpenMesh::Decimater::ModNormalFlippingT< MeshT >::set_max_normal_deviation ( double  _d)

Set normal deviation

Set the maximum angular deviation of the orignal normal and the new normal in degrees.

Definition at line 184 of file ModNormalFlippingT.hh.

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