Wildmeshing Toolkit
Loading...
Searching...
No Matches
c1_utils.hpp
1#pragma once
2
3#include <Eigen/Core>
4
5#include <wmtk/TetMesh.h>
6#include <wmtk/TriMesh.h>
7#include <wmtk/Types.hpp>
8
9namespace wmtk::components::c1_simplification {
10
11bool point_in_tri(
12 const Eigen::Vector2d& p,
13 const Eigen::Vector2d& a,
14 const Eigen::Vector2d& b,
15 const Eigen::Vector2d& c);
16Eigen::Vector2d barycentric_coord_in_tri(
17 const Eigen::Vector2d& p,
18 const Eigen::Vector2d& a,
19 const Eigen::Vector2d& b,
20 const Eigen::Vector2d& c);
21
25
26int triangle_ind(const double& u, const double& v, const double& w);
27Eigen::Matrix<double, 10, 1> monomial_basis_eval(const double& u, const double& v, const double& w);
28Eigen::Matrix<double, 10, 2> monomial_basis_grad(const double& u, const double& v);
29
30Eigen::Vector3d CT_eval(const double& u, const double& v, const Eigen::Matrix<double, 12, 3>& dofs);
31Eigen::Matrix<double, 3, 2>
32CT_grad(const double& u, const double& v, const Eigen::Matrix<double, 12, 3>& dofs);
33
34
35} // namespace wmtk::components::c1_simplification