template <class T, int N>
class vtb::geometry::Triangle
Base classes
  • public std::array< Vertex< T, N >, 3 >
Types
  • 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
Fields
  • constexpr const int dimensions
Methods
  • gnuplot(std::ostream & out) const -> void
  • degenerate(scalar_type eps) const -> bool
  • polygon() const -> Polygon< T, N >
  • polyline() const -> Polyline< T, N >
  • plane() const -> Plane< T, N >
  • invert() -> void
  • reverse() -> void
  • flip() -> void
  • Triangle(const_reference p0, const_reference p1, const_reference p2)
template <class T, int N>
struct vtb::geometry::is_figure< Triangle< T, N > >
Base classes
  • 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>
compare(const Plane< T, N > plane, const Triangle< T, N > & triangle, T eps) -> Vertex< Plane_position, 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>
intersect(const Plane< T, N > & plane, const Triangle< T, N > & triangle, const Vertex< Plane_position, 3 > & positions, Polygon< T, N > & front, Polygon< T, N > & back) -> void
template <class T, int N>
area(const Triangle< T, N > & t) -> T