#include <CompositeT.hh>

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_ |
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
Definition at line 87 of file Uniform/Composite/CompositeT.hh.
typedef MeshType::EdgeHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EdgeHandle [protected] |
Definition at line 167 of file Uniform/Composite/CompositeT.hh.
typedef MeshType::FaceHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FaceHandle [protected] |
Definition at line 166 of file Uniform/Composite/CompositeT.hh.
typedef MeshType::HalfedgeHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::HalfedgeHandle [protected] |
Definition at line 168 of file Uniform/Composite/CompositeT.hh.
| typedef MeshType OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::mesh_t |
Reimplemented from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.
Definition at line 92 of file Uniform/Composite/CompositeT.hh.
| typedef SubdividerT< mesh_t, real_t > OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::parent_t |
Definition at line 93 of file Uniform/Composite/CompositeT.hh.
| typedef RealType OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::real_t |
Reimplemented from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.
Definition at line 91 of file Uniform/Composite/CompositeT.hh.
typedef MeshType::Scalar OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::scalar_t [protected] |
Definition at line 164 of file Uniform/Composite/CompositeT.hh.
typedef MeshType::VertexHandle OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VertexHandle [protected] |
Definition at line 165 of file Uniform/Composite/CompositeT.hh.
| OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::CompositeT | ( | void | ) | [inline] |
Definition at line 97 of file Uniform/Composite/CompositeT.hh.
| OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::CompositeT | ( | MeshType & | _mesh | ) | [inline] |
Definition at line 98 of file Uniform/Composite/CompositeT.hh.
| virtual OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::~CompositeT | ( | ) | [inline, virtual] |
Definition at line 99 of file Uniform/Composite/CompositeT.hh.
| 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 >.
| 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.
| 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.
| 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.
| 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.
| 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.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EF | ( | ) | [inline, protected] |
Edge to face averaging.
Definition at line 936 of file Uniform/Composite/CompositeT.cc.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::EV | ( | ) | [inline, protected] |
Edge to vertex averaging.
Definition at line 842 of file Uniform/Composite/CompositeT.cc.
| 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.
| 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.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FE | ( | ) | [inline, protected] |
Face to edge averaging.
Definition at line 962 of file Uniform/Composite/CompositeT.cc.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FF | ( | ) | [inline, protected] |
Face to face averaging.
Definition at line 418 of file Uniform/Composite/CompositeT.cc.
| 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.
| 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.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::FV | ( | ) | [inline, protected] |
Face to vertex averaging.
Definition at line 533 of file Uniform/Composite/CompositeT.cc.
| 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.
| 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.
| virtual const char* OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::name | ( | void | ) | const [pure virtual] |
Return name of subdivision algorithm.
Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.
Implemented in OpenMesh::Subdivider::Uniform::CompositeLoopT< MeshType, RealType >, and OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VF | ( | ) | [inline, protected] |
Vertex to Face Averaging.
Definition at line 279 of file Uniform/Composite/CompositeT.cc.
| 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.
| 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.
| void OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::VV | ( | ) | [inline, protected] |
Vertex to vertex averaging.
Definition at line 1010 of file Uniform/Composite/CompositeT.cc.
| 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.
| 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.
MeshType* OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >::p_mesh_ [private] |
Definition at line 227 of file Uniform/Composite/CompositeT.hh.