Polyhedral-net Splines
Loading...
Searching...
No Matches
NGonPatchConstructor Class Reference

Patch constructor for n-gon patches. See PatchConstructor. More...

#include <NGonPatchConstructor.hpp>

Inheritance diagram for NGonPatchConstructor:
PatchConstructor

Public Member Functions

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.
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.
Public Member Functions inherited from PatchConstructor
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 PatchBuilder getPatchBuilder (const VertexHandle &, MeshType &a_Mesh, bool mark_gathered=false)
 Constructs a PatchBuilder for the patch type at the given vertex.

Private Member Functions

Mat48x12d getMaskSct3 ()
 Retrieves the mask for the n-gon patch with 3 sides.
Mat80x20d getMaskSct5 ()
 Retrieves the mask for the n-gon patch with 5 sides.
Mat384x24d getMaskSct6 ()
 Retrieves the mask for the n-gon patch with 6 sides.
Mat448x28d getMaskSct7 ()
 Retrieves the mask for the n-gon patch with 7 sides.
Mat512x32d getMaskSct8 ()
 Retrieves the mask for the n-gon patch with 8 sides.
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 with mask. ex for 3 sides:
std::string getGroupName () const
 Returns the name of the patch group this constructor handles.

Private Attributes

const Mat48x12d m_MaskSct3
 The mask for the n-gon patch with 3 sides.
const Mat80x20d m_MaskSct5
 The mask for the n-gon patch with 5 sides.
const Mat384x24d m_MaskSct6
 The mask for the n-gon patch with 6 sides.
const Mat448x28d m_MaskSct7
 The mask for the n-gon patch with 7 sides.
const Mat512x32d m_MaskSct8
 The mask for the n-gon patch with 8 sides.
int m_FaceValence

Detailed Description

Patch constructor for n-gon patches. See PatchConstructor.

Member Function Documentation

◆ getGroupName()

std::string NGonPatchConstructor::getGroupName ( ) const
privatevirtual

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.

Returns
The name of the patch group.

Implements PatchConstructor.

◆ getMaskSct3()

Mat48x12d NGonPatchConstructor::getMaskSct3 ( )
private

Retrieves the mask for the n-gon patch with 3 sides.

Returns
The mask as a Mat48x12d object.

◆ getMaskSct5()

Mat80x20d NGonPatchConstructor::getMaskSct5 ( )
private

Retrieves the mask for the n-gon patch with 5 sides.

Returns
The mask as a Mat80x20d object.

◆ getMaskSct6()

Mat384x24d NGonPatchConstructor::getMaskSct6 ( )
private

Retrieves the mask for the n-gon patch with 6 sides.

Returns
The mask as a Mat384x24d object.

◆ getMaskSct7()

Mat448x28d NGonPatchConstructor::getMaskSct7 ( )
private

Retrieves the mask for the n-gon patch with 7 sides.

Returns
The mask as a Mat448x28d object.

◆ getMaskSct8()

Mat512x32d NGonPatchConstructor::getMaskSct8 ( )
private

Retrieves the mask for the n-gon patch with 8 sides.

Returns
The mask as a Mat512x32d object.

◆ getPatchBuilder()

PatchBuilder NGonPatchConstructor::getPatchBuilder ( const FaceHandle & ,
MeshType & a_Mesh,
bool mark_gathered = false )
overridevirtual

Constructs a PatchBuilder for the patch type at the given face.

Parameters
a_MeshThe mesh to which the face belongs.
mark_gatheredIf true, all vertices gathered for the patch will be marked. See Helper::mark_face_verts.
Returns
A PatchBuilder configured for the patch type at the given face.
Exceptions
std::runtime_errorif not implemented in derived class.

Reimplemented from PatchConstructor.

◆ initNeighborVerts()

std::vector< VertexHandle > NGonPatchConstructor::initNeighborVerts ( const FaceHandle & a_FaceHandle,
MeshType & a_Mesh )
private

Gather the list of neighboring vertices around a given face in the expected order to be compatable with mask. ex for 3 sides:

8
/ \
9 - 11- 10
/ / \ \
2 - 3 - 7 - 5
| | | |
0 - 1 - 6 - 4
Parameters
a_FaceHandleThe face handle around for which to initialize neighbors.
a_MeshThe mesh to which the face belongs.
Returns
A vector of neighboring vertex handles.

◆ isSamePatchType()

bool NGonPatchConstructor::isSamePatchType ( const FaceHandle & ,
MeshType & a_Mesh,
bool check_marked = false )
overridevirtual

Given a face, checks wither the face and the neighborhood arund the face of this patch type.

Parameters
a_MeshThe mesh to which the face belongs.
check_markedIf true, the function will return false if any vertex of the face is marked. See Helper::is_marked.
Returns
true if the face and its neighborhood match this patch type.

Reimplemented from PatchConstructor.


The documentation for this class was generated from the following files: