Developer Documentation

Public Member Functions | Private Member Functions | Private Attributes | List of all members
OpenMesh::Decimater::ModNormalFlippingT< MeshT > Class Template Reference

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

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

## Public Member Functions
| DECIMATING_MODULE (ModNormalFlippingT, MeshT, NormalFlipping)
| ModNormalFlippingT (MeshT &_mesh)
| Constructor.
float | collapse_priority (const CollapseInfo &_ci) override
void | set_error_tolerance_factor (double _factor) override
| 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.
virtual const std::string & | name () const
| Set module's name.
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 >
enum | { ILLEGAL_COLLAPSE = -1, LEGAL_COLLAPSE = 0 }
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 80 of file ModNormalFlippingT.hh.

## Member Function Documentation

## ◆ collapse_priority()

template<typename MeshT>

float OpenMesh::Decimater::ModNormalFlippingT< MeshT >::collapse_priority | ( | const CollapseInfo & | _ci | ) |
| inline override virtual

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.

Parameters

  _ci | The collapse description

Returns
  LEGAL_COLLAPSE or ILLEGAL_COLLAPSE

See also
  set_max_normal_deviation()

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

Definition at line 125 of file ModNormalFlippingT.hh.

## ◆ set_max_normal_deviation()

template<typename MeshT>

void OpenMesh::Decimater::ModNormalFlippingT< MeshT >::set_max_normal_deviation | ( | double | _d | ) |
| inline

Set normal deviation

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

Definition at line 179 of file ModNormalFlippingT.hh.

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

- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Decimater/ModNormalFlippingT.hh