public std::array< Vertex< T, N >, 3 >
using const_reverse_iterator = typename base_type::const_reverse_iterator
using reverse_iterator = typename base_type::reverse_iterator
using difference_type = typename base_type::difference_type
using size_type = typename base_type::size_type
using const_iterator = typename base_type::const_iterator
using iterator = typename base_type::iterator
using const_reference = typename base_type::const_reference
using reference = typename base_type::reference
using const_pointer = typename base_type::const_pointer
using pointer = typename base_type::pointer
using value_type = typename base_type::value_type
using scalar_type = T
public true_type
template <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) -> T
template <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) -> T
Signed volume of a tetrahedron with the origin .
template <class T, int N>
area(const Triangle< T, N > & t) -> T