Wildmeshing Toolkit
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
CloughTocherPatch Class Reference

Public Member Functions

 CloughTocherPatch (Eigen::Matrix< double, 12, 3 > &boundary_data)
 
int triangle_ind (const double &u, const double &v, const double &w) const
 
Eigen::Matrix< double, 10, 1 > monomial_basis_eval (const double &u, const double &v, const double &w) const
 
Eigen::Matrix< double, 10, 10 > lagrange_to_monomial_basis () const
 
Eigen::Matrix< double, 3, 1 > CT_eval (const double &u, const double &v) const
 
std::array< Eigen::Matrix< double, 10, 3 >, 3 > get_coeffs () const
 
void set_lagrange_nodes (const std::array< Eigen::Vector2d, 19 > &planar_nodes, const std::array< Eigen::Vector3d, 19 > &lagrange_nodes)
 
double external_boundary_data_eval (const double &u, const double &v, Eigen::Matrix< double, 12, 1 > &external_boundary_data) const
 
void triangulate (size_t num_refinements, std::array< Eigen::MatrixXd, 3 > &V, std::array< Eigen::MatrixXi, 3 > &F) const
 Triangulate the patch.
 
void triangulate_normalized (size_t num_refinements, std::array< Eigen::MatrixXd, 3 > &V, std::array< Eigen::MatrixXi, 3 > &F) const
 
void parametrize_patch_boundaries (std::array< std::array< LineSegment, 3 >, 3 > &patch_boundaries) const
 Get the boundaries of the three subtriangle patches.
 
Eigen::Matrix< double, 3, 1 > CT_eval_normalized (int idx, const double &u, const double &v) const
 
void view () const
 

Public Attributes

std::array< TriangleCornerFunctionData, 3 > m_corner_data
 
std::array< TriangleMidpointFunctionData, 3 > m_midpoint_data
 
Eigen::Matrix< double, 12, 3 > m_boundary_data
 
std::array< Eigen::Matrix< double, 10, 3 >, 3 > m_CT_coeffs
 
int64_t m_patch_id
 

Static Public Attributes

static const std::array< Eigen::Matrix< double, 3, 3 >, 3 > m_CTtri_bounds
 
static const std::array< Eigen::Matrix< double, 10, 12 >, 3 > m_CT_matrices
 

Member Function Documentation

◆ parametrize_patch_boundaries()

void CloughTocherPatch::parametrize_patch_boundaries ( std::array< std::array< LineSegment, 3 >, 3 > &  patch_boundaries) const

Get the boundaries of the three subtriangle patches.

Parameters
patch_boundarieslist of 3 triangle line segments per subtriangle

◆ triangulate()

void CloughTocherPatch::triangulate ( size_t  num_refinements,
std::array< Eigen::MatrixXd, 3 > &  V,
std::array< Eigen::MatrixXi, 3 > &  F 
) const

Triangulate the patch.

Parameters
num_subdivisionsnumber of subdivisions for the mesh
Vpatch vertices
Fpatch faces

Member Data Documentation

◆ m_CT_matrices

const std::array< Eigen::Matrix< double, 10, 12 >, 3 > CloughTocherPatch::m_CT_matrices
static
Initial value:
=
CT_subtri_matrices()

◆ m_CTtri_bounds

const std::array< Eigen::Matrix< double, 3, 3 >, 3 > CloughTocherPatch::m_CTtri_bounds
static
Initial value:
=
CT_subtri_bound_matrices()

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