19 return ((p0 - p2).cross(p1 - p2));
Tuple switch_edge(const Tuple &tuple) const
bool is_ccw(const Tuple &tuple) const final override
TODO this needs dimension?
Tuple switch_vertex(const Tuple &tuple) const
A CachingAccessor that uses tuples for accessing attributes instead of indices.
ConstMapResult< D > const_vector_attribute(const ArgType &t) const
const std::vector< Simplex > & simplex_vector() const
Return const reference to the simplex vector.
static Simplex vertex(const Mesh &m, const Tuple &t)
Eigen::Vector3d compute_face_normal(const TriMesh &m, const attribute::Accessor< double > &pos, const Tuple &f)
compute the normalized face normal based on the vertex positions
Eigen::Vector3d compute_face_normal_area_weighted(const TriMesh &m, const attribute::Accessor< double > &pos, const Tuple &f)
compute area vector of face
Eigen::Vector3d compute_vertex_normal(const TriMesh &m, const attribute::Accessor< double > &pos, const Tuple &v)
compute the normalized vertex normal from the incident area weighted face normals
SimplexCollection closed_star(const Mesh &mesh, const Simplex &simplex, const bool sort_and_clean)
The closed star contains the input simplex, all its top dimension cofaces, and their faces.
Vector< double, 3 > Vector3d