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

Patch constructor for polar patches. See PatchConstructor. More...

#include <PolarPatchConstructor.hpp>

Inheritance diagram for PolarPatchConstructor:
PatchConstructor

Public Member Functions

bool isSamePatchType (const VertexHandle &a_VertexHandle, MeshType &a_Mesh, bool check_marked=false) override
 Given a vertex, checks wither the vertex and the neighborhood arund the vertex of this patch type.
PatchBuilder getPatchBuilder (const VertexHandle &a_VertexHandle, MeshType &a_Mesh, bool mark_gathered=false) override
 Constructs a PatchBuilder for the patch type at the given vertex.
Public Member Functions inherited from PatchConstructor
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 FaceHandle &, MeshType &a_Mesh, bool mark_gathered=false)
 Constructs a PatchBuilder for the patch type at the given face.

Private Member Functions

Mat36x4d getMaskSct3 ()
 Retrieves the mask for the polar patch with valence = 3.
Mat48x5d getMaskSct4 ()
 Retrieves the mask for the polar patch with valence = 4.
Mat60x6d getMaskSct5 ()
 Retrieves the mask for the polar patch with valence = 5.
Mat72x7d getMaskSct6 ()
 Retrieves the mask for the polar patch with valence = 6.
Mat84x8d getMaskSct7 ()
 Retrieves the mask for the polar patch with valence = 7.
Mat96x9d getMaskSct8 ()
 Retrieves the mask for the polar patch with valence = 8.
std::vector< VertexHandle > initNeighborVerts (const VertexHandle &a_VertexHandle, MeshType &a_Mesh)
 Gather the list of neighboring vertices around a given vertex in the expected order to be compatable with mask. ex:
std::string getGroupName () const
 Returns the name of the patch group this constructor handles.

Private Attributes

const Mat36x4d m_MaskSct3
 The mask for the polar patch with valence = 3.
const Mat48x5d m_MaskSct4
 The mask for the polar patch with valence = 4.
const Mat60x6d m_MaskSct5
 The mask for the polar patch with valence = 5.
const Mat72x7d m_MaskSct6
 The mask for the polar patch with valence = 6.
const Mat84x8d m_MaskSct7
 The mask for the polar patch with valence = 7.
const Mat96x9d m_MaskSct8
 The mask for the polar patch with valence = 8.
int m_NumOfSct = 0
 The number of sections in the polar patch.

Detailed Description

Patch constructor for polar patches. See PatchConstructor.

Member Function Documentation

◆ getGroupName()

std::string PolarPatchConstructor::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()

Mat36x4d PolarPatchConstructor::getMaskSct3 ( )
private

Retrieves the mask for the polar patch with valence = 3.

Returns
The mask as a Mat36x4d object.

◆ getMaskSct4()

Mat48x5d PolarPatchConstructor::getMaskSct4 ( )
private

Retrieves the mask for the polar patch with valence = 4.

Returns
The mask as a Mat48x5d object.

◆ getMaskSct5()

Mat60x6d PolarPatchConstructor::getMaskSct5 ( )
private

Retrieves the mask for the polar patch with valence = 5.

Returns
The mask as a Mat60x6d object.

◆ getMaskSct6()

Mat72x7d PolarPatchConstructor::getMaskSct6 ( )
private

Retrieves the mask for the polar patch with valence = 6.

Returns
The mask as a Mat72x7d object.

◆ getMaskSct7()

Mat84x8d PolarPatchConstructor::getMaskSct7 ( )
private

Retrieves the mask for the polar patch with valence = 7.

Returns
The mask as a Mat84x8d object.

◆ getMaskSct8()

Mat96x9d PolarPatchConstructor::getMaskSct8 ( )
private

Retrieves the mask for the polar patch with valence = 8.

Returns
The mask as a Mat96x9d object.

◆ getPatchBuilder()

PatchBuilder PolarPatchConstructor::getPatchBuilder ( const VertexHandle & ,
MeshType & a_Mesh,
bool mark_gathered = false )
overridevirtual

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

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

Reimplemented from PatchConstructor.

◆ initNeighborVerts()

std::vector< VertexHandle > PolarPatchConstructor::initNeighborVerts ( const VertexHandle & a_VertexHandle,
MeshType & a_Mesh )
private

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

P1 ---- P4
| \ / |
| P0 |
| / \ |
P2 ---- P3
Parameters
a_VertexHandleThe vertex handle around for which to initialize neighbors.
a_MeshThe mesh to which the vertex belongs.
Returns
A vector of neighboring vertex handles.

◆ isSamePatchType()

bool PolarPatchConstructor::isSamePatchType ( const VertexHandle & ,
MeshType & a_Mesh,
bool check_marked = false )
overridevirtual

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

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

Reimplemented from PatchConstructor.


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