Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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

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

#include <CompositeT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >:

OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType > OpenMesh::Utils::Noncopyable OpenMesh::Subdivider::Uniform::CompositeLoopT< MeshType, RealType > OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType > List of all members.

Public Member Functions

virtual const char * name (void) const=0
 Return name of subdivision algorithm.


Protected Member Functions

bool prepare (MeshType &_m)
 Prepare mesh, e.g. add properties.

bool subdivide (MeshType &_m, size_t _n)
 Subdivide mesh _m _n times.

bool cleanup (MeshType &_m)
 Cleanup mesh after usage, e.g. remove added properties.

virtual void apply_rules (void)=0
 Assemble here the rule sequence, by calling the constructor of the wanted rules.

void commit (MeshType &_m)
 Move vertices to new positions after the rules have been applied to the mesh (called by subdivide()).

void corner_cutting (HalfedgeHandle _heh)
 Corner Cutting.

VertexHandle split_edge (HalfedgeHandle _heh)
 Split Edge.

Uniform composite subdivision rules
void Tvv3 ()
 Split Face, using Vertex information (1-3 split).

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

void Tfv ()
 Split Face, using Face Information.

void FF ()
 Face to face averaging.

void FFc (Coeff &_coeff)
 Weighted face to face averaging.

void FFc (scalar_t _c)
 Weighted face to face averaging.

void FV ()
 Face to vertex averaging.

void FVc (Coeff &_coeff)
 Weighted face to vertex Averaging with flaps.

void FVc (scalar_t _c)
 Weighted face to vertex Averaging with flaps.

void FE ()
 Face to edge averaging.

void VF ()
 Vertex to Face Averaging.

void VFa (Coeff &_coeff)
 Vertex to Face Averaging, weighted.

void VFa (scalar_t _alpha)
 Vertex to Face Averaging, weighted.

void VV ()
 Vertex to vertex averaging.

void VVc (Coeff &_coeff)
 Vertex to vertex averaging, weighted.

void VVc (scalar_t _c)
 Vertex to vertex averaging, weighted.

void VE ()
 VE Step (Vertex to Edge Averaging).

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 (Coeff &_coeff)
 Weigthed vertex to edge averaging, using diamond of edges for irregular vertices.

void VdEg (scalar_t _gamma)
 Weigthed vertex to edge averaging, using diamond of edges for irregular vertices.

void EF ()
 Edge to face averaging.

void EV ()
 Edge to vertex averaging.

void EVc (Coeff &_coeff)
 Weighted edge to vertex averaging.

void EVc (scalar_t _c)
 Weighted edge to vertex averaging.

void EdE ()
 Edge to edge averaging w/ flap rule.

void EdEc (scalar_t _c)
 Weighted edge to edge averaging w/ flap rule.


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


The documentation for this class was generated from the following files:
acg pic Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .