![]() |
Polyhedral-net Splines
|
Abstract base class for patch constructors. More...
#include <PatchConstructor.hpp>
Public Member Functions | |
| virtual bool | isSamePatchType (const VertexHandle &, MeshType &a_Mesh, bool check_marked=false) |
| Given a vertex, checks wither the vertex and the neighborhood arund the vertex of this patch type. | |
| virtual bool | isSamePatchType (const FaceHandle &, MeshType &a_Mesh, bool check_marked=false) |
| Given a face, checks wither the face and the neighborhood arund the face of this patch type. | |
| virtual PatchBuilder | getPatchBuilder (const VertexHandle &, MeshType &a_Mesh, bool mark_gathered=false) |
| Constructs a PatchBuilder for the patch type at the given vertex. | |
| virtual PatchBuilder | getPatchBuilder (const FaceHandle &, MeshType &a_Mesh, bool mark_gathered=false) |
| Constructs a PatchBuilder for the patch type at the given face. | |
| virtual std::string | getGroupName () const =0 |
| Returns the name of the patch group this constructor handles. | |
Abstract base class for patch constructors.
Patch constructors are responsible for identifying PnS patch types and creating PatchBuilders. PatchBuilder is returned instead of a Patch directly so that updated patches can be easily if the underlying mesh changes without needing re-traverse the entire mesh to dentify the patch type and gather the vertices again. Essentially, this class indentifies PnS patch types and collects information required to build associated Bézier patches.
|
pure virtual |
Returns the name of the patch group this constructor handles.
This method must be implemented in derived classes to return the specific patch group name.
Implemented in ExtraordinaryPatchConstructor, NGonPatchConstructor, PolarPatchConstructor, RegularPatchConstructor, T0PatchConstructor, T1PatchConstructor, T2PatchConstructor, and TwoTrianglesTwoQuadsPatchConstructor.
|
inlinevirtual |
Constructs a PatchBuilder for the patch type at the given face.
| a_Mesh | The mesh to which the face belongs. |
| mark_gathered | If true, all vertices gathered for the patch will be marked. See Helper::mark_face_verts. |
| std::runtime_error | if not implemented in derived class. |
Reimplemented in NGonPatchConstructor, T0PatchConstructor, T1PatchConstructor, and T2PatchConstructor.
|
inlinevirtual |
Constructs a PatchBuilder for the patch type at the given vertex.
| a_Mesh | The mesh to which the vertex belongs. |
| mark_gathered | If true, all vertices gathered for the patch will be marked. See Helper::mark_vert. |
| std::runtime_error | if not implemented in derived class. |
Reimplemented in ExtraordinaryPatchConstructor, PolarPatchConstructor, RegularPatchConstructor, and TwoTrianglesTwoQuadsPatchConstructor.
|
inlinevirtual |
Given a face, checks wither the face and the neighborhood arund the face of this patch type.
| a_Mesh | The mesh to which the face belongs. |
| check_marked | If true, the function will return false if any vertex of the face is marked. See Helper::is_marked. |
Reimplemented in NGonPatchConstructor, T0PatchConstructor, T1PatchConstructor, and T2PatchConstructor.
|
inlinevirtual |
Given a vertex, checks wither the vertex and the neighborhood arund the vertex of this patch type.
| a_Mesh | The mesh to which the vertex belongs. |
| check_marked | If true, the function will return false if the vertex is marked. See Helper::is_marked. |
Reimplemented in ExtraordinaryPatchConstructor, PolarPatchConstructor, RegularPatchConstructor, and TwoTrianglesTwoQuadsPatchConstructor.