12 static const std::array<Eigen::Matrix<double, 3, 3>, 3>
14 static const std::array<Eigen::Matrix<double, 10, 12>, 3>
21 int triangle_ind(
const double& u,
const double& v,
const double& w)
const;
23 Eigen::Matrix<double, 10, 1>
24 monomial_basis_eval(
const double& u,
const double& v,
const double& w)
const;
26 Eigen::Matrix<double, 10, 10> lagrange_to_monomial_basis()
const;
28 Eigen::Matrix<double, 3, 1> CT_eval(
const double& u,
const double& v)
const;
30 std::array<Eigen::Matrix<double, 10, 3>, 3> get_coeffs()
const;
32 void set_lagrange_nodes(
33 const std::array<Eigen::Vector2d, 19>& planar_nodes,
34 const std::array<Eigen::Vector3d, 19>& lagrange_nodes);
37 double external_boundary_data_eval(
40 Eigen::Matrix<double, 12, 1>& external_boundary_data)
const;
50 size_t num_refinements,
51 std::array<Eigen::MatrixXd, 3>& V,
52 std::array<Eigen::MatrixXi, 3>& F)
const;
53 void triangulate_normalized(
54 size_t num_refinements,
55 std::array<Eigen::MatrixXd, 3>& V,
56 std::array<Eigen::MatrixXi, 3>& F)
const;
64 std::array<std::array<LineSegment, 3>, 3>& patch_boundaries)
const;
66 Eigen::Matrix<double, 3, 1> CT_eval_normalized(
int idx,
const double& u,
const double& v)
const;
72 std::array<TriangleCornerFunctionData, 3> m_corner_data;
73 std::array<TriangleMidpointFunctionData, 3> m_midpoint_data;
74 Eigen::Matrix<double, 12, 3> m_boundary_data;
76 std::array<Eigen::Matrix<double, 10, 3>, 3> m_CT_coeffs;
void parametrize_patch_boundaries(std::array< std::array< LineSegment, 3 >, 3 > &patch_boundaries) const
Get the boundaries of the three subtriangle patches.
Definition clough_tocher_patch.cpp:273
void triangulate(size_t num_refinements, std::array< Eigen::MatrixXd, 3 > &V, std::array< Eigen::MatrixXi, 3 > &F) const
Triangulate the patch.
Definition clough_tocher_patch.cpp:220