- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Class List
- Class Hierarchy
- Class Members

# 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 >:

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.
## Classes
struct | Coeff
| Abstract base class for coefficient functions. More...

## 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

- P. Oswald, P. Schroeder "Composite primal/dual sqrt(3)-subdivision schemes", CAGD 20, 3, 2003, 135--164

Note:
  Not all rules are implemented!

See also:
  class Adaptive::CompositeT

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

- Tools/Subdivider/Uniform/Composite/CompositeT.hh
- Tools/Subdivider/Uniform/Composite/CompositeT.cc