OpenMesh
Loading...
Searching...
No Matches
OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType > Class Template Reference

Uniform composite sqrt(3) subdivision algorithm. More...

#include <OpenMesh/Tools/Subdivider/Uniform/CompositeSqrt3T.hh>

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

Classes

struct  FVCoeff
 Helper class. More...

Public Types

typedef CompositeT< MeshType, RealType > Inherited
Public Types inherited from OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >
typedef double real_t
typedef MeshType mesh_t
typedef SubdividerT< mesh_t, real_t > parent_t
Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, double >
typedef MeshType mesh_t
typedef double real_t

Public Member Functions

 CompositeSqrt3T (MeshType &_mesh)
const char * name () const override
 Return name of subdivision algorithm.
Public Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, double >
 SubdividerT (void)
 Constructor to be used with interface 2.
virtual ~SubdividerT ()
 Destructor (calls detach())
bool operator() (MeshType &_m, size_t _n, const bool _update_points=true)
 Subdivide the mesh _m _n times.
bool attach (MeshType &_m)
 Attach mesh _m to self.
void detach (void)
 Detach an eventually attached mesh.

Protected Types

typedef Inherited::Coeff Coeff
Protected Types inherited from OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >
typedef MeshType::Scalar scalar_t
typedef MeshType::VertexHandle VertexHandle
typedef MeshType::FaceHandle FaceHandle
typedef MeshType::EdgeHandle EdgeHandle
typedef MeshType::HalfedgeHandle HalfedgeHandle

Protected Member Functions

void apply_rules (void) override
 Assemble here the rule sequence, by calling the constructor of the wanted rules.
Protected Member Functions inherited from OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >
bool prepare (MeshType &_m) override
 Prepare mesh, e.g.
bool subdivide (MeshType &_m, size_t _n, const bool _update_points=true) override
 Subdivide mesh _m _n times.
bool cleanup (MeshType &_m) override
 Cleanup mesh after usage, e.g. remove added properties.
void commit (MeshType &_m)
 Move vertices to new positions after the rules have been applied to the mesh (called by subdivide()).
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 FV ()
 Face to vertex averaging.
void FVc (Coeff &_coeff)
 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 VV ()
 Vertex to vertex averaging.
void VVc (Coeff &_coeff)
 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 EF ()
 Edge to face averaging.
void EV ()
 Edge to vertex averaging.
void EVc (Coeff &_coeff)
 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.
void corner_cutting (HalfedgeHandle _heh)
 Corner Cutting.
VertexHandle split_edge (HalfedgeHandle _heh)
 Split Edge.

Protected Attributes

OpenMesh::Subdivider::Uniform::CompositeSqrt3T::FVCoeff coeffs_

Detailed Description

template<typename MeshType, typename RealType = double>
class OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType >

Uniform composite sqrt(3) subdivision algorithm.

Member Function Documentation

◆ apply_rules()

template<typename MeshType, typename RealType = double>
void OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType >::apply_rules ( void )
inlineoverrideprotectedvirtual

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

Implements OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >.

◆ name()

template<typename MeshType, typename RealType = double>
const char * OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType >::name ( void ) const
inlineoverridevirtual

Return name of subdivision algorithm.

Implements OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >.


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

Project OpenMesh, ©  Visual Computing Institute, RWTH Aachen. Documentation generated using doxygen .