OpenMesh::Smoother::SmootherT< Mesh > Class Template Reference

#include <SmootherT.hh>

Inheritance diagram for OpenMesh::Smoother::SmootherT< Mesh >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  Component { Tangential, Normal, Tangential_and_Normal }
enum  Continuity { C0, C1, C2 }
typedef Mesh::EdgeHandle EdgeHandle
typedef Mesh::Normal NormalType
typedef Mesh::Point Point
typedef Mesh::Scalar Scalar
typedef Mesh::VertexHandle VertexHandle

Public Member Functions

void initialize (Component _comp, Continuity _cont)
void set_active_vertices ()
 Find active vertices. Resets tagged status !
void skip_features (bool _state)
 enable or disable feature handling
virtual void smooth (unsigned int _n)
 Do _n smoothing iterations.
 SmootherT (Mesh &_mesh)
 constructor & destructor
virtual ~SmootherT ()

void disable_local_error_check ()
void set_absolute_local_error (Scalar _err)
void set_relative_local_error (Scalar _err)
 Set local error.

Protected Member Functions

Component component () const
virtual void compute_new_positions_C0 ()=0
virtual void compute_new_positions_C1 ()=0
Continuity continuity () const
bool is_active (VertexHandle _vh) const
const Pointnew_position (VertexHandle _vh) const
const NormalTypeorig_normal (VertexHandle _vh) const
const Pointorig_position (VertexHandle _vh) const
void set_new_position (VertexHandle _vh, const Point &_p)

Protected Attributes

Mesh & mesh_
bool skip_features_

Private Member Functions

void compute_new_positions ()
void local_error_check ()
void move_points ()
void project_to_tangent_plane ()

Private Attributes

Component component_
Continuity continuity_
OpenMesh::VPropHandleT< bool > is_active_
OpenMesh::VPropHandleT< Pointnew_positions_
Scalar normal_deviation_
OpenMesh::VPropHandleT
< NormalType
original_normals_
OpenMesh::VPropHandleT< Pointoriginal_positions_
Scalar tolerance_

Detailed Description

template<class Mesh>
class OpenMesh::Smoother::SmootherT< Mesh >

Base class for smoothing algorithms.

Definition at line 74 of file SmootherT.hh.


Member Typedef Documentation

template<class Mesh>
typedef Mesh::EdgeHandle OpenMesh::Smoother::SmootherT< Mesh >::EdgeHandle

Reimplemented in OpenMesh::Smoother::LaplaceSmootherT< Mesh >.

Definition at line 82 of file SmootherT.hh.

template<class Mesh>
typedef Mesh::Normal OpenMesh::Smoother::SmootherT< Mesh >::NormalType

Definition at line 80 of file SmootherT.hh.

template<class Mesh>
typedef Mesh::Point OpenMesh::Smoother::SmootherT< Mesh >::Point

Definition at line 79 of file SmootherT.hh.

template<class Mesh>
typedef Mesh::Scalar OpenMesh::Smoother::SmootherT< Mesh >::Scalar

Reimplemented in OpenMesh::Smoother::LaplaceSmootherT< Mesh >.

Definition at line 78 of file SmootherT.hh.

template<class Mesh>
typedef Mesh::VertexHandle OpenMesh::Smoother::SmootherT< Mesh >::VertexHandle

Reimplemented in OpenMesh::Smoother::LaplaceSmootherT< Mesh >.

Definition at line 81 of file SmootherT.hh.


Member Enumeration Documentation

template<class Mesh>
enum OpenMesh::Smoother::SmootherT::Component
Enumerator:
Tangential 

Smooth tangential direction.

Normal 

Smooth normal direction.

Tangential_and_Normal 

Smooth tangential and normal direction.

Reimplemented in OpenMesh::Smoother::LaplaceSmootherT< Mesh >.

Definition at line 85 of file SmootherT.hh.

template<class Mesh>
enum OpenMesh::Smoother::SmootherT::Continuity
Enumerator:
C0 
C1 
C2 

Reimplemented in OpenMesh::Smoother::LaplaceSmootherT< Mesh >.

Definition at line 91 of file SmootherT.hh.


Constructor & Destructor Documentation

template<class Mesh >
OpenMesh::Smoother::SmootherT< Mesh >::SmootherT ( Mesh &  _mesh  )  [inline]

constructor & destructor

Parameters:
_mesh Reference to the mesh

Definition at line 71 of file SmootherT.cc.

template<class Mesh >
OpenMesh::Smoother::SmootherT< Mesh >::~SmootherT (  )  [inline, virtual]

Definition at line 99 of file SmootherT.cc.


Member Function Documentation

template<class Mesh>
Component OpenMesh::Smoother::SmootherT< Mesh >::component (  )  const [inline, protected]

Definition at line 176 of file SmootherT.hh.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::compute_new_positions (  )  [inline, private]

Definition at line 328 of file SmootherT.cc.

template<class Mesh>
virtual void OpenMesh::Smoother::SmootherT< Mesh >::compute_new_positions_C0 (  )  [protected, pure virtual]
template<class Mesh>
virtual void OpenMesh::Smoother::SmootherT< Mesh >::compute_new_positions_C1 (  )  [protected, pure virtual]
template<class Mesh>
Continuity OpenMesh::Smoother::SmootherT< Mesh >::continuity (  )  const [inline, protected]

Definition at line 177 of file SmootherT.hh.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::disable_local_error_check (  )  [inline]

Definition at line 289 of file SmootherT.cc.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::initialize ( Component  _comp,
Continuity  _cont 
) [inline]

Initialize smoother

Parameters:
_comp Determine component to smooth
_cont Determine Continuity

Reimplemented in OpenMesh::Smoother::LaplaceSmootherT< Mesh >.

Definition at line 120 of file SmootherT.cc.

template<class Mesh>
bool OpenMesh::Smoother::SmootherT< Mesh >::is_active ( VertexHandle  _vh  )  const [inline, protected]

Definition at line 173 of file SmootherT.hh.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::local_error_check (  )  [inline, private]

Definition at line 382 of file SmootherT.cc.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::move_points (  )  [inline, private]

Definition at line 416 of file SmootherT.cc.

template<class Mesh>
const Point& OpenMesh::Smoother::SmootherT< Mesh >::new_position ( VertexHandle  _vh  )  const [inline, protected]

Definition at line 167 of file SmootherT.hh.

template<class Mesh>
const NormalType& OpenMesh::Smoother::SmootherT< Mesh >::orig_normal ( VertexHandle  _vh  )  const [inline, protected]

Definition at line 164 of file SmootherT.hh.

template<class Mesh>
const Point& OpenMesh::Smoother::SmootherT< Mesh >::orig_position ( VertexHandle  _vh  )  const [inline, protected]

Definition at line 161 of file SmootherT.hh.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::project_to_tangent_plane (  )  [inline, private]

Definition at line 352 of file SmootherT.cc.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::set_absolute_local_error ( Scalar  _err  )  [inline]

Definition at line 277 of file SmootherT.cc.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::set_active_vertices (  )  [inline]

Find active vertices. Resets tagged status !

Definition at line 150 of file SmootherT.cc.

template<class Mesh>
void OpenMesh::Smoother::SmootherT< Mesh >::set_new_position ( VertexHandle  _vh,
const Point _p 
) [inline, protected]

Definition at line 170 of file SmootherT.hh.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::set_relative_local_error ( Scalar  _err  )  [inline]

Set local error.

Definition at line 247 of file SmootherT.cc.

template<class Mesh>
void OpenMesh::Smoother::SmootherT< Mesh >::skip_features ( bool  _state  )  [inline]

enable or disable feature handling

Parameters:
_state true : If features are selected on the mesh, they will be left unmodified
false : Features will be ignored

Definition at line 128 of file SmootherT.hh.

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::smooth ( unsigned int  _n  )  [inline, virtual]

Do _n smoothing iterations.

Reimplemented in OpenMesh::Smoother::JacobiLaplaceSmootherT< Mesh >.

Definition at line 301 of file SmootherT.cc.


Member Data Documentation

template<class Mesh>
Component OpenMesh::Smoother::SmootherT< Mesh >::component_ [private]

Definition at line 189 of file SmootherT.hh.

template<class Mesh>
Continuity OpenMesh::Smoother::SmootherT< Mesh >::continuity_ [private]

Definition at line 190 of file SmootherT.hh.

template<class Mesh>
OpenMesh::VPropHandleT<bool> OpenMesh::Smoother::SmootherT< Mesh >::is_active_ [private]

Definition at line 195 of file SmootherT.hh.

template<class Mesh>
Mesh& OpenMesh::Smoother::SmootherT< Mesh >::mesh_ [protected]

Definition at line 181 of file SmootherT.hh.

Definition at line 194 of file SmootherT.hh.

template<class Mesh>
Scalar OpenMesh::Smoother::SmootherT< Mesh >::normal_deviation_ [private]

Definition at line 188 of file SmootherT.hh.

Definition at line 193 of file SmootherT.hh.

Definition at line 192 of file SmootherT.hh.

template<class Mesh>
bool OpenMesh::Smoother::SmootherT< Mesh >::skip_features_ [protected]

Definition at line 182 of file SmootherT.hh.

template<class Mesh>
Scalar OpenMesh::Smoother::SmootherT< Mesh >::tolerance_ [private]

Definition at line 187 of file SmootherT.hh.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:19 2013