Polyhedral-net Splines
Loading...
Searching...
No Matches
NGonPatchConstructor.hpp
1/* copyright(c)Jorg Peters [jorg.peters@gmail.com] */
2
3#pragma once
4
5#include <OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh>
6#include "PatchConstructor.hpp"
7#include "../Helper/Helper.hpp"
8
9typedef Matrix Mat48x12d;
10typedef Matrix Mat80x20d;
11typedef Matrix Mat384x24d;
12typedef Matrix Mat448x28d;
13typedef Matrix Mat512x32d;
14
19class NGonPatchConstructor : public PatchConstructor
20{
21public:
22 NGonPatchConstructor()
28
29 bool isSamePatchType(const FaceHandle& a_FaceHandle, MeshType& a_Mesh, bool check_marked = false) override;
30 PatchBuilder getPatchBuilder(const FaceHandle& a_FaceHandle, MeshType& a_Mesh, bool mark_gathered = false) override;
31
32private:
36 const Mat48x12d m_MaskSct3;
40 const Mat80x20d m_MaskSct5;
44 const Mat384x24d m_MaskSct6;
48 const Mat448x28d m_MaskSct7;
52 const Mat512x32d m_MaskSct8;
53 int m_FaceValence;
54
60 Mat48x12d getMaskSct3();
66 Mat80x20d getMaskSct5();
72 Mat384x24d getMaskSct6();
78 Mat448x28d getMaskSct7();
84 Mat512x32d getMaskSct8();
85
103 std::vector<VertexHandle> initNeighborVerts(const FaceHandle& a_FaceHandle, MeshType& a_Mesh);
104 std::string getGroupName() const;
105};
Definition Matrix.hpp:11
bool isSamePatchType(const FaceHandle &a_FaceHandle, MeshType &a_Mesh, bool check_marked=false) override
Given a face, checks wither the face and the neighborhood arund the face of this patch type.
Definition NGonPatchConstructor.cpp:37
Mat80x20d getMaskSct5()
Retrieves the mask for the n-gon patch with 5 sides.
Definition NGonPatchConstructor.cpp:13
Mat384x24d getMaskSct6()
Retrieves the mask for the n-gon patch with 6 sides.
Definition NGonPatchConstructor.cpp:19
PatchBuilder getPatchBuilder(const FaceHandle &a_FaceHandle, MeshType &a_Mesh, bool mark_gathered=false) override
Constructs a PatchBuilder for the patch type at the given face.
Definition NGonPatchConstructor.cpp:73
const Mat384x24d m_MaskSct6
The mask for the n-gon patch with 6 sides.
Definition NGonPatchConstructor.hpp:44
std::vector< VertexHandle > initNeighborVerts(const FaceHandle &a_FaceHandle, MeshType &a_Mesh)
Gather the list of neighboring vertices around a given face in the expected order to be compatable wi...
Definition NGonPatchConstructor.cpp:130
const Mat80x20d m_MaskSct5
The mask for the n-gon patch with 5 sides.
Definition NGonPatchConstructor.hpp:40
const Mat512x32d m_MaskSct8
The mask for the n-gon patch with 8 sides.
Definition NGonPatchConstructor.hpp:52
Mat48x12d getMaskSct3()
Retrieves the mask for the n-gon patch with 3 sides.
Definition NGonPatchConstructor.cpp:7
const Mat448x28d m_MaskSct7
The mask for the n-gon patch with 7 sides.
Definition NGonPatchConstructor.hpp:48
Mat512x32d getMaskSct8()
Retrieves the mask for the n-gon patch with 8 sides.
Definition NGonPatchConstructor.cpp:31
Mat448x28d getMaskSct7()
Retrieves the mask for the n-gon patch with 7 sides.
Definition NGonPatchConstructor.cpp:25
const Mat48x12d m_MaskSct3
The mask for the n-gon patch with 3 sides.
Definition NGonPatchConstructor.hpp:36
std::string getGroupName() const
Returns the name of the patch group this constructor handles.
Definition NGonPatchConstructor.cpp:153
A builder class for constructing Bézier patches from a mesh.
Definition PatchBuilder.hpp:28
Abstract base class for patch constructors.
Definition PatchConstructor.hpp:66