Developer Documentation

Classes | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType > Class Template Reference

`#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Subdivider/Uniform/Sqrt3T.hh>`

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

## Classes
struct | compute_weight

## Public Types
typedef RealType | real_t
typedef MeshType | mesh_t
typedef SubdividerT< mesh_t, real_t > | parent_t
typedef std::pair< real_t, real_t > | weight_t
typedef std::vector< std::pair< real_t, real_t > > | weights_t
Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
typedef MeshType | mesh_t
typedef RealType | real_t

## Public Member Functions
| Sqrt3T (MeshType &_m)
const char * | name () const override
| Return name of subdivision algorithm.
void | init_weights (size_t _max_valence=50)
| Pre-compute weights.
Public Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
virtual | ~SubdividerT ()
| Destructor (calls detach())
| SubdividerT (void)
| SubdividerT (MeshType &_m)
bool | operator() (MeshType &_m, size_t _n, const bool _update_points=true)
bool | attach (MeshType &_m)
bool | operator() (size_t _n, const bool _update_points=true)
void | detach (void)

## Protected Member Functions
bool | prepare (MeshType &_m) override
| Prepare mesh, e.g. add properties.
bool | cleanup (MeshType &_m) override
| Cleanup mesh after usage, e.g. remove added properties.
bool | subdivide (MeshType &_m, size_t _n, const bool _update_points=true) override
| Subdivide mesh `_m` `_n` times. More...
Overload theses methods

## Private Member Functions
void | compute_new_boundary_points (MeshType &_m, const typename MeshType::EdgeHandle &_eh)
void | boundary_split (MeshType &_m, const typename MeshType::FaceHandle &_fh)
void | boundary_split (MeshType &_m, const typename MeshType::HalfedgeHandle &_heh, const typename MeshType::VertexHandle &_vh)
void | boundary_split (MeshType &_m, const typename MeshType::HalfedgeHandle &_heh)

## Private Attributes
weights_t | weights_
OpenMesh::VPropHandleT< typename MeshType::Point > | vp_pos_
OpenMesh::EPropHandleT< std::pair< typename MeshType::VertexHandle, typename MeshType::VertexHandle > > | ep_nv_
OpenMesh::MPropHandleT< size_t > | mp_gen_
const real_t | _1over3
const real_t | _1over27

## Detailed Description

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

Uniform Sqrt3 subdivision algorithm

Implementation as described in

L. Kobbelt, "Sqrt(3) subdivision", Proceedings of SIGGRAPH 2000.

Definition at line 98 of file Sqrt3T.hh.

## Member Function Documentation

## ◆ subdivide()

template<typename MeshType, typename RealType = double>

bool OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::subdivide | ( | MeshType & | _m,
|  | size_t | _n,
|  | const bool | _update_points = `true`
| ) |  |
| inline override protected virtual

Subdivide mesh `_m` `_n` times.

TODO:Implement fixed positions

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

Definition at line 160 of file Sqrt3T.hh.

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

- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Subdivider/Uniform/Sqrt3T.hh