Computational geometry.
using bstream = ::vtb::base::bstream
enum Plane_position: unsigned char
enum Segments
template <class T, int N = 3, Segments seg = Segments::Chord_length>
class vtb::geometry::Linear_interpolation
template <class Figure>
border_contains(const Figure & figure, const typename Figure::value_type & vertex, const typename Figure::scalar_type eps) -> bool
template <class T>
clockwise(const Vertex< T, 2 > & origin, const Vertex< T, 2 > & a, const Vertex< T, 2 > & b) -> bool
template <class T, int N>
compare(const Plane< T, N > plane, const Line_segment< T, N > & s, T eps) -> Vertex< Plane_position, 2 >
template <class Figure>
contains(const Figure & figure, const typename Figure::value_type & vertex, const typename Figure::scalar_type eps) -> bool
template <class T, int N>
cuboid(const Vertex< T, N > & a, const Vertex< T, N > & b) -> Polyhedron< T >
template <class T>
cylinder(T radius, T height, int resolution_u, int resolution_v) -> Polyhedron< T >
template <class T>
det(const Vertex< T, 3 > & a, const Vertex< T, 3 > & b, const Vertex< T, 3 > & c) -> T
template <class T>
det(const Vertex< T, 2 > & origin, const Vertex< T, 2 > & a, const Vertex< T, 2 > & b) -> T
template <class T, int N>
from(const Rotation_matrix< T, N > & rot, const Vertex< T, N > & v) -> Vertex< T, N >
template <class T>
from(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T, int N>
from(const Coordinate_system< T, N > & cs, const Vertex< T, N > & v) -> Vertex< T, N >
template <class Figure>
interior_contains(const Figure & figure, const typename Figure::value_type & vertex) -> bool
template <class T, int N>
intersection(const Ray< T, N > & ray, const Plane< T, N > & plane) -> Vertex< T, N >
ray
and plane
. Edge cases are ignored.
template <int dim, class T, int N>
intersection_point(const Line_segment< T, N > & segment, T level) -> Vertex< T, N >
template <class T, int N>
intersection_point(const Plane< T, N > & plane, const Line_segment< T, N > & segment) -> Vertex< T, N >
template <class T>
line_normal(const Vertex< T, 2 > & v0, const Vertex< T, 2 > & v1) -> Vertex< T, 2 >
template <class T>
make_coordinate_system(const Quaternion< T > & q, const Quaternion< T > & q_conj, const Vertex< T, 3 > & origin) -> Quaternion_coordinate_system< T >
template <class T>
make_coordinate_system(const Quaternion< T > & q, const Vertex< T, 3 > & origin) -> Quaternion_coordinate_system< T >
template <class T, int N>
make_coordinate_system(const Rotation_matrix< T, N > & rot, const Vertex< T, N > & origin) -> Coordinate_system< T, N >
template <class T, int N>
make_coordinate_system(const Basis< T, N > & basis, const Basis< T, N > & ibasis, const Vertex< T, N > & origin) -> Coordinate_system< T, N >
template <class T, int N>
make_coordinate_system(const Basis< T, N > & basis, const Vertex< T, N > & origin) -> Coordinate_system< T, N >
template <class T, int N>
make_rotation(const Basis< T, N > & basis, const Basis< T, N > & ibasis) -> Rotation_matrix< T, N >
angles
in order.
template <class T, int N>
near(const Line_segment< T, N > & lhs, const Line_segment< T, N > & rhs, T eps) -> bool
template <class T, int N>
operator!=(const Line_segment< T, N > & lhs, const Line_segment< T, N > & rhs) -> bool
template <class T>
operator*(const Vertex< T, 3 > & a, const Quaternion< T > & b) -> Quaternion< T >
template <class T>
operator*(const Quaternion< T > & a, const Vertex< T, 3 > & b) -> Quaternion< T >
template <class T>
operator*(const Quaternion< T > & a, const Quaternion< T > & b) -> Quaternion< T >
template <class T, int N>
operator+(const Polyhedron< T, N > & lhs, const Polyhedron< T, N > & rhs) -> Polyhedron< T, N >
template <class T, int N>
operator<(const Line_segment< T, N > & lhs, const Line_segment< T, N > & rhs) -> bool
template <class T, int N>
operator<<(bstream & out, const Rotation_matrix< T, N > & rhs) -> bstream &
template <class T, int N>
operator<<(vtb::core::bstream & out, const Polyhedron< T, N > & rhs) -> vtb::core::bstream &
operator<<(std::ostream & out, Plane_position rhs) -> std::ostream &
template <class T, int N>
operator<<(std::ostream & out, const Plane< T, N > & rhs) -> std::ostream &
template <class Figure>
operator<<(std::ostream & out, const Figure & figure) -> std::enable_if< is_figure< Figure >::value, std::ostream & >::type
template <int N>
operator<<(vtb::core::bstream & out, const Face< N > & rhs) -> vtb::core::bstream &
template <class T, int N>
operator<<(bstream & out, const Coordinate_system< T, N > & rhs) -> bstream &
template <class T, int N>
operator==(const Line_segment< T, N > & lhs, const Line_segment< T, N > & rhs) -> bool
template <class T, int N>
operator>>(vtb::core::bstream & in, Polyhedron< T, N > & rhs) -> vtb::core::bstream &
operator|(Plane_position a, Plane_position b) -> constexpr Plane_position
template <class T>
orientation(const Vertex< T, 2 > & origin, const Vertex< T, 2 > & a, const Vertex< T, 2 > & b) -> Vertex< T, 1 >
template <int dimension, int degrees, class T, int N>
rotate(const Vertex< T, N > & v) -> Vertex< T, N >
angles
.
template <class T>
surface_normal(const Vertex< T, 3 > & v0, const Vertex< T, 3 > & v1, const Vertex< T, 3 > & v2) -> Vertex< T, 3 >
template <class T, int N>
to(const Rotation_matrix< T, N > & rot, const Vertex< T, N > & v) -> Vertex< T, N >
template <class T>
to(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T, int N>
to(const Coordinate_system< T, N > & cs, const Vertex< T, N > & v) -> Vertex< T, N >
to_string(Plane_position rhs) -> const char *
template <class T>
vector_from(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T, int N>
vector_from(const Coordinate_system< T, N > & cs, const Vertex< T, N > & v) -> Vertex< T, N >
template <class T, int N>
vector_to(const Rotation_matrix< T, N > & r, const Vertex< T, N > & v) -> Vertex< T, N >
template <class T>
vector_to(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T, int N>
vector_to(const Coordinate_system< T, N > & cs, const Vertex< T, N > & v) -> Vertex< T, N >
template <class T, int N>
winding_number(const Polyhedron< T, N > & geometry, const Vertex< T, N > & origin) -> T
template <class Container, class T>
winding_number(const Container & vertices, const Vertex< T, 2 > & origin) -> int