Polyhedral-net Splines
Loading...
Searching...
No Matches
T1PatchConstructor.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 Mat128x18d;
10
15class T1PatchConstructor : public PatchConstructor
16{
17public:
18 T1PatchConstructor()
19 : m_Mask(getMask()) {};
20
21 bool isSamePatchType(const FaceHandle& a_FaceHandle, MeshType& a_Mesh, bool check_marked = false) override;
22 PatchBuilder getPatchBuilder(const FaceHandle& a_FaceHandle, MeshType& a_Mesh, bool mark_gathered = false) override;
23
24private:
28 const Mat128x18d m_Mask;
29
35 Mat128x18d getMask();
36 bool isPentagonTjunction(const FaceHandle& a_FaceHandle, MeshType& a_Mesh);
37
55 std::vector<VertexHandle> initNeighborVerts(const FaceHandle& a_FaceHandle, MeshType& a_Mesh);
56
57 std::string getGroupName() const;
58};
Definition Matrix.hpp:11
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
std::string getGroupName() const
Returns the name of the patch group this constructor handles.
Definition T1PatchConstructor.cpp:153
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 T1PatchConstructor.cpp:80
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 T1PatchConstructor.cpp:13
const Mat128x18d m_Mask
The mask for the T1 patch.
Definition T1PatchConstructor.hpp:28
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 T1PatchConstructor.cpp:104
Mat128x18d getMask()
Retrieves the mask for the T1 patch.
Definition T1PatchConstructor.cpp:7