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

#include <ModNormalFlippingT.hh>

Inheritance diagram for OpenMesh::Decimater::ModNormalFlippingT< DecimaterT >:

Inheritance graph
[legend]
Collaboration diagram for OpenMesh::Decimater::ModNormalFlippingT< DecimaterT >:

Collaboration graph
[legend]

Public Member Functions

 DECIMATING_MODULE (ModNormalFlippingT, DecimaterT, NormalFlipping)
 ModNormalFlippingT (DecimaterT &_dec)
 Constructor.
float collapse_priority (const CollapseInfo &_ci)
float max_normal_deviation () const
 get normal deviation
float normal_deviation () const
void set_max_normal_deviation (float _f)
void set_normal_deviation (float _f)

Detailed Description

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

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 orignal faces and normals of the faces after the collapse. The collapse will pass the test, if the deviation is below a given threshold.


Member Function Documentation

template<typename DecimaterT>
float OpenMesh::Decimater::ModNormalFlippingT< DecimaterT >::collapse_priority ( const CollapseInfo _ci  )  [inline]

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.

  1. Prevent the collapse, if the angle between the original and the new normal is below a given threshold.

Parameters:
_ci The collapse description
Returns:
LEGAL_COLLAPSE or ILLEGAL_COLLAPSE
See also:
set_max_normal_deviation()

template<typename DecimaterT>
float OpenMesh::Decimater::ModNormalFlippingT< DecimaterT >::normal_deviation (  )  const [inline]

template<typename DecimaterT>
void OpenMesh::Decimater::ModNormalFlippingT< DecimaterT >::set_max_normal_deviation ( float  _f  )  [inline]

Set normal deviation

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

template<typename DecimaterT>
void OpenMesh::Decimater::ModNormalFlippingT< DecimaterT >::set_normal_deviation ( float  _f  )  [inline]


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

Generated on Fri Jan 16 13:01:38 2009 by  doxygen 1.5.5