OpenMesh
|
Base class for smoothing algorithms. More...
#include <OpenMesh/Tools/Smoother/SmootherT.hh>
Public Types | |
enum | Component { Tangential , Normal , Tangential_and_Normal } |
enum | Continuity { C0 , C1 , C2 } |
typedef Mesh::Scalar | Scalar |
typedef Mesh::Point | Point |
typedef Mesh::Normal | NormalType |
typedef Mesh::VertexHandle | VertexHandle |
typedef Mesh::EdgeHandle | EdgeHandle |
Public Member Functions | |
SmootherT (Mesh &_mesh) | |
constructor & destructor More... | |
Initialization and algorithm execution | |
void | initialize (Component _comp, Continuity _cont) |
Initialize smoother. More... | |
virtual void | smooth (unsigned int _n) |
Do _n smoothing iterations. More... | |
Error control functions | |
void | set_relative_local_error (Scalar _err) |
Set local error relative to bounding box. More... | |
void | set_absolute_local_error (Scalar _err) |
Set local error as an absolute value. More... | |
void | disable_local_error_check () |
Disable error control of the smoother. More... | |
void | skip_features (bool _state) |
enable or disable feature handling More... | |
Protected Member Functions | |
virtual void | compute_new_positions_C0 ()=0 |
virtual void | compute_new_positions_C1 ()=0 |
const Point & | orig_position (VertexHandle _vh) const |
const NormalType & | orig_normal (VertexHandle _vh) const |
const Point & | new_position (VertexHandle _vh) const |
void | set_new_position (VertexHandle _vh, const Point &_p) |
bool | is_active (VertexHandle _vh) const |
Component | component () const |
Continuity | continuity () const |
Protected Attributes | |
Mesh & | mesh_ |
bool | skip_features_ |
Base class for smoothing algorithms.
enum OpenMesh::Smoother::SmootherT::Component |
OpenMesh::Smoother::SmootherT< Mesh >::SmootherT | ( | Mesh & | _mesh | ) |
constructor & destructor
_mesh | Reference a triangle or poly mesh |
void OpenMesh::Smoother::SmootherT< Mesh >::disable_local_error_check |
Disable error control of the smoother.
This function disables the error control of the smoother.
void OpenMesh::Smoother::SmootherT< Mesh >::initialize | ( | Component | _comp, |
Continuity | _cont | ||
) |
Initialize smoother.
_comp | Determine component to smooth |
_cont | Determine Continuity |
void OpenMesh::Smoother::SmootherT< Mesh >::set_absolute_local_error | ( | Scalar | _err | ) |
Set local error as an absolute value.
Set the maximal error tolerance of the smoother to the given value.
_err | Maximal error |
void OpenMesh::Smoother::SmootherT< Mesh >::set_relative_local_error | ( | Scalar | _err | ) |
Set local error relative to bounding box.
This function sets a maximal error tolerance for the smoother as a fraction of the bounding box of the mesh. First the bounding box diagonal is computed. Then the error is set as the length of the diagonal multiplied with the given factor.
_err | Factor scaling the bounding box diagonal |
|
inline |
enable or disable feature handling
This function can be used to control if features on the mesh should be preserved. If enabled, the smoother will keep features and does not modify them. Features can be set via OpenMesh status flags (request status and set primitives as features). Feature flag can be set for vertices edges and faces.
_state | true : If features are selected on the mesh, they will be left unmodified false : Features will be ignored |
|
virtual |
Do _n smoothing iterations.
Reimplemented in OpenMesh::Smoother::JacobiLaplaceSmootherT< Mesh >.