![]() |
Polyhedral-net Splines
|
From a control mesh to a PnS surface represented as Bézier patches. More...
Classes | |
| class | ExtraordinaryPatchConstructor |
| Patch constructor for extraordinary patches. See PatchConstructor. More... | |
| class | NGonPatchConstructor |
| Patch constructor for n-gon patches. See PatchConstructor. More... | |
| struct | Patch |
| A class representing a Bézier patch. More... | |
| class | PatchBuilder |
| A builder class for constructing Bézier patches from a mesh. More... | |
| class | PolarPatchConstructor |
| Patch constructor for polar patches. See PatchConstructor. More... | |
| class | RegularPatchConstructor |
| Patch constructor for regular patches. See PatchConstructor. More... | |
| class | T0PatchConstructor |
| Patch constructor for T0 patches. See PatchConstructor. More... | |
| class | T1PatchConstructor |
| Patch constructor for T1 patches. See PatchConstructor. More... | |
| class | T2PatchConstructor |
| Patch constructor for T2 patches. See PatchConstructor. More... | |
| class | TwoTrianglesTwoQuadsPatchConstructor |
| Patch constructor for patches consisting of two triangles and two quads. Designed for patch next to a polar patch. See PatchConstructor. More... | |
| class | PatchConstructorPool |
| Pool PnS patch types represented as PatchConstructor subclasses. Each subclass corresponds to a specific PnS patch type. There are two types of patch constructors: vertex-based and face-based. A vertex-based patch constructor checks if a vertex and its neighborhood matches a PnS patch type. A face-based patch constructor checks if a face and its neighborhood matches a PnS patch type. More... | |
Functions | |
| void | process_mesh (MeshType &a_Mesh, PatchConsumer *a_Consumer, const bool a_IsDegRaise) |
| Given an OpenMesh PolyMesh, process the mesh to generate the PnS surface in the form of Bézier patches. | |
| std::vector< PatchBuilder > | getPatchBuilders (MeshType &a_Mesh) |
| Given an OpenMesh PolyMesh, retrieve all PatchBuilders for the PnS patches in the mesh. | |
From a control mesh to a PnS surface represented as Bézier patches.
process_mesh is the end-to-end entry point: given a mesh, it produces a PnS surface as a set of Bézier patches written to a file. It follows the following pipeline:
Returning a builder (rather than a Patch) decouples discovery from building. If the underlying mesh changes, patches can be rebuilt efficiently from the saved builders without re-traversing the mesh or re-identifying patch types.
| std::vector< PatchBuilder > getPatchBuilders | ( | MeshType & | a_Mesh | ) |
Given an OpenMesh PolyMesh, retrieve all PatchBuilders for the PnS patches in the mesh.
The function traverses the mesh to identify PnS patches and build their corresponding PatchBuilders.
| a_Mesh | The mesh to be processed. |
| void process_mesh | ( | MeshType & | a_Mesh, |
| PatchConsumer * | a_Consumer, | ||
| const bool | a_IsDegRaise ) |
Given an OpenMesh PolyMesh, process the mesh to generate the PnS surface in the form of Bézier patches.
The bezier patches are written to file using the provided PatchConsumer.
The function traverses the mesh to identify PnS patches, build the Bézier patches, and write them to file.
| a_Mesh | The mesh to be processed. |
| a_Consumer | The PatchConsumer that will receive the extracted patches. |
| a_IsDegRaise | If true, raises the degree in direction upto 3 for each patch. If the degree is already 3 or higher in a direction, nothing happens in that direction. |