public std::array< Vertex< T, N >, 3 >using const_reverse_iterator = typename base_type::const_reverse_iteratorusing reverse_iterator = typename base_type::reverse_iteratorusing difference_type = typename base_type::difference_typeusing size_type = typename base_type::size_typeusing const_iterator = typename base_type::const_iteratorusing iterator = typename base_type::iteratorusing const_reference = typename base_type::const_referenceusing reference = typename base_type::referenceusing const_pointer = typename base_type::const_pointerusing pointer = typename base_type::pointerusing value_type = typename base_type::value_typeusing scalar_type = Tpublic true_typetemplate <class T, int N> intersect(const Ray< T, N > & ray, const Triangle< T, N > & triangle, T eps) -> bool
Check if ray intersects triangle.
Uses Moller—Trumbore algorithm.
template <class T> tetrahedron_signed_volume(const Triangle< T, 2 > & tr) -> Ttemplate <class T> surface_normal(const Triangle< T, 3 > & t) -> Vertex< T, 3 >template <class T, int N> centroid(const Triangle< T, N > & t) -> Vertex< T, N >template <class T> tetrahedron_signed_volume(const Triangle< T, 3 > & tr) -> TSigned volume of a tetrahedron with the origin .
template <class T, int N> area(const Triangle< T, N > & t) -> T