OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType > Class Template Reference

#include <CompositeT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >:
Inheritance graph
[legend]

List of all members.

Classes

struct  Coeff
 Abstract base class for coefficient functions. More...

Public Types

typedef MeshType mesh_t
typedef SubdividerT< mesh_t,
real_t
parent_t
typedef RealType real_t

Public Member Functions

 CompositeT (MeshType &_mesh)
 CompositeT (void)
virtual const char * name (void) const =0
 Return name of subdivision algorithm.
virtual ~CompositeT ()

Protected Types

typedef MeshType::EdgeHandle EdgeHandle
typedef MeshType::FaceHandle FaceHandle
typedef MeshType::HalfedgeHandle HalfedgeHandle
typedef MeshType::Scalar scalar_t
typedef MeshType::VertexHandle VertexHandle

Protected Member Functions

virtual void apply_rules (void)=0
bool cleanup (MeshType &_m)
 Cleanup mesh after usage, e.g. remove added properties.
void commit (MeshType &_m)
void corner_cutting (HalfedgeHandle _heh)
 Corner Cutting.
bool prepare (MeshType &_m)
 Prepare mesh, e.g. add properties.
VertexHandle split_edge (HalfedgeHandle _heh)
 Split Edge.
bool subdivide (MeshType &_m, size_t _n)
 Subdivide mesh _m _n times.
Uniform composite subdivision rules

void EdE ()
 Edge to edge averaging w/ flap rule.
void EdEc (scalar_t _c)
 Weighted edge to edge averaging w/ flap rule.
void EF ()
 Edge to face averaging.
void EV ()
 Edge to vertex averaging.
void EVc (scalar_t _c)
 Weighted edge to vertex averaging.
void EVc (Coeff &_coeff)
 Weighted edge to vertex averaging.
void FE ()
 Face to edge averaging.
void FF ()
 Face to face averaging.
void FFc (scalar_t _c)
 Weighted face to face averaging.
void FFc (Coeff &_coeff)
 Weighted face to face averaging.
void FV ()
 Face to vertex averaging.
void FVc (scalar_t _c)
 Weighted face to vertex Averaging with flaps.
void FVc (Coeff &_coeff)
 Weighted face to vertex Averaging with flaps.
void Tfv ()
 Split Face, using Face Information.
void Tvv3 ()
 Split Face, using Vertex information (1-3 split).
void Tvv4 ()
 Split Face, using Vertex information (1-4 split).
void VdE ()
 Vertex to edge averaging, using diamond of edges.
void VdEc (scalar_t _c)
 Weighted vertex to edge averaging, using diamond of edges.
void VdEg (scalar_t _gamma)
void VdEg (Coeff &_coeff)
void VE ()
 VE Step (Vertex to Edge Averaging).
void VF ()
 Vertex to Face Averaging.
void VFa (scalar_t _alpha)
 Vertex to Face Averaging, weighted.
void VFa (Coeff &_coeff)
 Vertex to Face Averaging, weighted.
void VV ()
 Vertex to vertex averaging.
void VVc (scalar_t _c)
 Vertex to vertex averaging, weighted.
void VVc (Coeff &_coeff)
 Vertex to vertex averaging, weighted.

Private Attributes

MeshType * p_mesh_

Detailed Description

template<typename MeshType, typename RealType = float>
class OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >

This class provides the composite subdivision rules for the uniform case.

To create a subdivider derive from this class and overload the functions name() and apply_rules(). In the latter one call the wanted rules.

For details on the composite scheme refer to

Note:
Not all rules are implemented!
See also:
class Adaptive::CompositeT

Definition at line 87 of file Uniform/Composite/CompositeT.hh.


Member Typedef Documentation

template<typename MeshType , typename RealType = float>
typedef MeshType::EdgeHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EdgeHandle [protected]

Definition at line 167 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
typedef MeshType::FaceHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FaceHandle [protected]

Definition at line 166 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
typedef MeshType::HalfedgeHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::HalfedgeHandle [protected]

Definition at line 168 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
typedef MeshType OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::mesh_t
template<typename MeshType , typename RealType = float>
typedef SubdividerT< mesh_t, real_t > OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::parent_t

Definition at line 93 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
typedef RealType OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::real_t
template<typename MeshType , typename RealType = float>
typedef MeshType::Scalar OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::scalar_t [protected]

Definition at line 164 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
typedef MeshType::VertexHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VertexHandle [protected]

Definition at line 165 of file Uniform/Composite/CompositeT.hh.


Constructor & Destructor Documentation

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::CompositeT ( void   )  [inline]

Definition at line 97 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::CompositeT ( MeshType &  _mesh  )  [inline]

Definition at line 98 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
virtual OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::~CompositeT (  )  [inline, virtual]

Definition at line 99 of file Uniform/Composite/CompositeT.hh.


Member Function Documentation

template<typename MeshType , typename RealType = float>
virtual void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::apply_rules ( void   )  [protected, pure virtual]

Assemble here the rule sequence, by calling the constructor of the wanted rules.

Implemented in OpenMesh::Subdivider::Uniform::CompositeLoopT< MeshType, RealType >, and OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType >.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::cleanup ( MeshType &  _m  )  [inline, protected, virtual]

Cleanup mesh after usage, e.g. remove added properties.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 125 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::commit ( MeshType &  _m  )  [inline, protected]

Move vertices to new positions after the rules have been applied to the mesh (called by subdivide()).

Definition at line 143 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::corner_cutting ( HalfedgeHandle  _heh  )  [inline, protected]

Corner Cutting.

Definition at line 1209 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EdE (  )  [inline, protected]

Edge to edge averaging w/ flap rule.

Definition at line 1121 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EdEc ( scalar_t  _c  )  [inline, protected]

Weighted edge to edge averaging w/ flap rule.

Definition at line 1164 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EF (  )  [inline, protected]

Edge to face averaging.

Definition at line 936 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EV (  )  [inline, protected]

Edge to vertex averaging.

Definition at line 842 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EVc ( scalar_t  _c  )  [inline, protected]

Weighted edge to vertex averaging.

Definition at line 906 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EVc ( Coeff _coeff  )  [inline, protected]

Weighted edge to vertex averaging.

Definition at line 870 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FE (  )  [inline, protected]

Face to edge averaging.

Definition at line 962 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FF (  )  [inline, protected]

Face to face averaging.

Definition at line 418 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FFc ( scalar_t  _c  )  [inline, protected]

Weighted face to face averaging.

Definition at line 496 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FFc ( Coeff _coeff  )  [inline, protected]

Weighted face to face averaging.

Definition at line 455 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FV (  )  [inline, protected]

Face to vertex averaging.

Definition at line 533 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FVc ( scalar_t  _c  )  [inline, protected]

Weighted face to vertex Averaging with flaps.

Definition at line 605 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FVc ( Coeff _coeff  )  [inline, protected]

Weighted face to vertex Averaging with flaps.

Definition at line 559 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType = float>
virtual const char* OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::name ( void   )  const [pure virtual]
template<typename MeshType , typename RealType >
bool OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::prepare ( MeshType &  _m  )  [inline, protected, virtual]

Prepare mesh, e.g. add properties.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 68 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
MeshType::VertexHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::split_edge ( HalfedgeHandle  _heh  )  [inline, protected]

Split Edge.

Definition at line 1258 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::subdivide ( MeshType &  _m,
size_t  _n 
) [inline, protected, virtual]

Subdivide mesh _m _n times.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 109 of file Uniform/Composite/CompositeT.hh.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::Tfv (  )  [inline, protected]

Split Face, using Face Information.

Definition at line 203 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::Tvv3 (  )  [inline, protected]

Split Face, using Vertex information (1-3 split).

Definition at line 84 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::Tvv4 (  )  [inline, protected]

Split Face, using Vertex information (1-4 split).

Definition at line 148 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VdE (  )  [inline, protected]

Vertex to edge averaging, using diamond of edges.

Definition at line 648 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VdEc ( scalar_t  _c  )  [inline, protected]

Weighted vertex to edge averaging, using diamond of edges.

Definition at line 686 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VdEg ( scalar_t  _gamma  )  [inline, protected]

Weigthed vertex to edge averaging, using diamond of edges for irregular vertices.

Definition at line 719 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VdEg ( Coeff _coeff  )  [inline, protected]

Weigthed vertex to edge averaging, using diamond of edges for irregular vertices.

Definition at line 779 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VE (  )  [inline, protected]

VE Step (Vertex to Edge Averaging).

Definition at line 992 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VF (  )  [inline, protected]

Vertex to Face Averaging.

Definition at line 279 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VFa ( scalar_t  _alpha  )  [inline, protected]

Vertex to Face Averaging, weighted.

Definition at line 363 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VFa ( Coeff _coeff  )  [inline, protected]

Vertex to Face Averaging, weighted.

Definition at line 305 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VV (  )  [inline, protected]

Vertex to vertex averaging.

Definition at line 1010 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VVc ( scalar_t  _c  )  [inline, protected]

Vertex to vertex averaging, weighted.

Definition at line 1083 of file Uniform/Composite/CompositeT.cc.

template<typename MeshType , typename RealType >
void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VVc ( Coeff _coeff  )  [inline, protected]

Vertex to vertex averaging, weighted.

Definition at line 1046 of file Uniform/Composite/CompositeT.cc.


Member Data Documentation

template<typename MeshType , typename RealType = float>
MeshType* OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::p_mesh_ [private]

Definition at line 227 of file Uniform/Composite/CompositeT.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:20 2013