wykobi.hpp File Reference
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <iterator>
#include <limits>
#include <vector>
#include "wykobi_math.hpp"
#include "wykobi.inl"
Include dependency graph for wykobi.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  wykobi::geometric_entity
 
class  wykobi::point2d< T >
 
class  wykobi::point3d< T >
 
class  wykobi::pointnd< T, D >
 
class  wykobi::define_point_type< T, Dimension >
 
class  wykobi::define_point_type< T, 2 >
 
class  wykobi::define_point_type< T, 3 >
 
class  wykobi::segment< T, Dimension >
 
class  wykobi::line< T, Dimension >
 
class  wykobi::triangle< T, Dimension >
 
class  wykobi::rectangle< T >
 
class  wykobi::quadix< T, Dimension >
 
class  wykobi::polygon< T, Dimension >
 
class  wykobi::circle< T >
 
class  wykobi::sphere< T >
 
class  wykobi::hypersphere< T, Dimension >
 
class  wykobi::circular_arc< T >
 
class  wykobi::quadratic_bezier< T, Dimension >
 
class  wykobi::cubic_bezier< T, Dimension >
 
class  wykobi::define_bezier_type< T, 2, eQuadraticBezier >
 
class  wykobi::define_bezier_type< T, 3, eQuadraticBezier >
 
class  wykobi::define_bezier_type< T, 2, eCubicBezier >
 
class  wykobi::define_bezier_type< T, 3, eCubicBezier >
 
struct  wykobi::bezier_coefficients< T, Dimension, Type >
 
class  wykobi::curve_point< T, Dimension >
 
class  wykobi::vector2d< T >
 
class  wykobi::vector3d< T >
 
class  wykobi::vectornd< T, D >
 
class  wykobi::define_vector_type< T, Dimension >
 
class  wykobi::define_vector_type< T, 2 >
 
class  wykobi::define_vector_type< T, 3 >
 
class  wykobi::ray< T, Dimension >
 
class  wykobi::plane< T, Dimension >
 
class  wykobi::box< T, Dimension >
 
class  wykobi::trig_luts< T >
 

Namespaces

 wykobi
 

Macros

#define WYKOBI
 

Typedefs

typedef segment< Float, 2 > wykobi::segment2d
 
typedef line< Float, 2 > wykobi::line2d
 
typedef triangle< Float, 2 > wykobi::triangle2d
 
typedef quadix< Float, 2 > wykobi::quadix2d
 
typedef segment< Float, 3 > wykobi::segment3d
 
typedef line< Float, 3 > wykobi::line3d
 
typedef triangle< Float, 3 > wykobi::triangle3d
 
typedef quadix< Float, 3 > wykobi::quadix3d
 

Enumerations

enum  wykobi::geometric_type {
  wykobi::ePoint2D , wykobi::ePoint3D , wykobi::eSegment2D , wykobi::eSegment3D ,
  wykobi::eRectangle , wykobi::eBox , wykobi::eLine2D , wykobi::eLine3D ,
  wykobi::eTriangle2D , wykobi::eTriangle3D , wykobi::eQuadix2D , wykobi::eQuadix3D ,
  wykobi::eRay2D , wykobi::eRay3D , wykobi::eCircle , wykobi::eSphere
}
 
enum  wykobi::BezierType { wykobi::eQuadraticBezier = 2 , wykobi::eCubicBezier = 3 }
 
enum  wykobi::eInclusion { wykobi::eFully , wykobi::ePartially , wykobi::eOutside , wykobi::eUnknown }
 
enum  wykobi::eTriangleType {
  wykobi::etEquilateral , wykobi::etIsosceles , wykobi::etRight , wykobi::etScalene ,
  wykobi::etObtuse , wykobi::etUnknown
}
 

Functions

template<typename T >
wykobi::epsilon ()
 
template<>
double wykobi::epsilon< double > ()
 
template<>
float wykobi::epsilon< float > ()
 
template<typename T >
int wykobi::orientation (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py)
 
template<typename T >
int wykobi::orientation (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &px, const T &py, const T &pz)
 
template<typename T >
int wykobi::robust_orientation (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py)
 
template<typename T >
int wykobi::robust_orientation (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &px, const T &py, const T &pz)
 
template<typename T >
int wykobi::orientation (const point2d< T > &point1, const point2d< T > &point2, const T &px, const T &py)
 
template<typename T >
int wykobi::orientation (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
int wykobi::orientation (const line< T, 2 > &line, const point2d< T > &point)
 
template<typename T >
int wykobi::orientation (const segment< T, 2 > &segment, const point2d< T > &point)
 
template<typename T >
int wykobi::orientation (const triangle< T, 2 > &triangle)
 
template<typename T >
int wykobi::orientation (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const T &px, const T &py, const T &pz)
 
template<typename T >
int wykobi::orientation (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4)
 
template<typename T >
int wykobi::orientation (const triangle< T, 3 > &triangle, const point3d< T > &point)
 
template<typename T >
bool wykobi::differing_orientation (const T &x1, const T &y1, const T &x2, const T &y2, const T &p1x, const T &p1y, const T &p2x, const T &p2y)
 
template<typename T >
bool wykobi::differing_orientation (const point2d< T > &p1, const point2d< T > &p2, const point2d< T > &q1, const point2d< T > &q2)
 
template<typename T >
int wykobi::in_circle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &px, const T &py)
 
template<typename T >
int wykobi::in_circle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
int wykobi::in_circle (const triangle< T, 2 > &triangle, const point2d< T > &point)
 
template<typename T >
int wykobi::in_sphere (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &px, const T &py, const T &pz)
 
template<typename T >
int wykobi::in_sphere (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const point2d< T > &point5)
 
template<typename T >
int wykobi::in_sphere (const quadix< T, 3 > &quadix, const point3d< T > &point)
 
template<typename T >
wykobi::signed_area (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py)
 
template<typename T >
wykobi::signed_area (const point2d< T > &point1, const point2d< T > &point2, const T &px, const T &py)
 
template<typename T >
wykobi::signed_area (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
wykobi::signed_area (const segment< T, 2 > &segment, const point2d< T > &point)
 
template<typename T >
wykobi::signed_volume (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &px, const T &py, const T &pz)
 
template<typename T >
wykobi::signed_volume (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const T &px, const T &py, const T &pz)
 
template<typename T >
wykobi::signed_volume (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4)
 
template<typename T >
wykobi::signed_volume (const triangle< T, 3 > &triangle, const point3d< T > &point)
 
template<typename T >
bool wykobi::collinear (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::collinear (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::collinear (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
bool wykobi::collinear (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
bool wykobi::robust_collinear (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_collinear (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_collinear (const line< T, 2 > &line, const point2d< T > &point, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_collinear (const line< T, 3 > &line, const point3d< T > &point, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_collinear (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_collinear (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::is_point_collinear (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, const bool robust=false)
 
template<typename T >
bool wykobi::is_point_collinear (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const bool robust=false)
 
template<typename T >
bool wykobi::is_point_collinear (const point2d< T > &point1, const point2d< T > &point2, const T &px, const T &py, const bool robust=false)
 
template<typename T >
bool wykobi::is_point_collinear (const segment< T, 2 > &segment, const point2d< T > &point, const bool robust=false)
 
template<typename T >
bool wykobi::is_point_collinear (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, const bool robust=false)
 
template<typename T >
bool wykobi::is_point_collinear (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const bool robust=false)
 
template<typename T >
bool wykobi::is_point_collinear (const segment< T, 3 > &segment, const point3d< T > &point, const bool robust=false)
 
template<typename T >
bool wykobi::robust_coplanar (const point3d< T > point1, const point3d< T > point2, const point3d< T > point3, const point3d< T > point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::coplanar (const ray< T, 3 > &ray1, const ray< T, 3 > &ray2)
 
template<typename T >
bool wykobi::coplanar (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2)
 
template<typename T >
bool wykobi::coplanar (const line< T, 3 > &line1, const line< T, 3 > &line2)
 
template<typename T >
bool wykobi::coplanar (const triangle< T, 3 > &triangle1, const triangle< T, 3 > &triangle2)
 
template<typename T >
bool wykobi::coplanar (const quadix< T, 3 > &quadix1, const quadix< T, 3 > &quadix2)
 
template<typename T >
bool wykobi::cocircular (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::cocircular (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::cocircular (const triangle< T, 2 > &triangle, const point2d< T > &point, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::cocircular (const circle< T > &circle, const point2d< T > &point, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::is_skinny_triangle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
bool wykobi::is_skinny_triangle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
bool wykobi::is_skinny_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::intersect (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::intersect (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, T &ix, T &iy)
 
template<typename T >
bool wykobi::intersect (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
bool wykobi::intersect (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, point2d< T > &int_point)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2, T &ix, T &iy)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2, point2d< T > &i_point)
 
template<typename T >
bool wykobi::intersect (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &fuzzy=T(0.0))
 
template<typename T >
bool wykobi::intersect (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const T &fuzzy=T(0.0))
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2, const T &fuzzy=T(0.0))
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const line< T, 2 > &line)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const circle< T > &circle)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const segment< T, 2 > &segment, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment, const line< T, 3 > &line, const T &fuzzy=T(0.0))
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment, const plane< T, 3 > &plane)
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment, const quadratic_bezier< T, 3 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const segment< T, 3 > &segment, const cubic_bezier< T, 3 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const line< T, 2 > &line, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::intersect (const line< T, 2 > &line, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::intersect (const line< T, 2 > &line1, const line< T, 2 > &line2)
 
template<typename T >
bool wykobi::intersect (const line< T, 2 > &line, const circle< T > &circle)
 
template<typename T >
bool wykobi::intersect (const line< T, 2 > &line, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const line< T, 2 > &line, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const line< T, 3 > &line, const triangle< T, 3 > &triangle)
 
template<typename T >
bool wykobi::intersect (const line< T, 3 > &line, const plane< T, 3 > &plane)
 
template<typename T >
bool wykobi::intersect (const line< T, 3 > &line, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::intersect (const line< T, 3 > &line, const quadratic_bezier< T, 3 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const line< T, 3 > &line, const cubic_bezier< T, 3 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const triangle< T, 2 > &triangle, const circle< T > &circle)
 
template<typename T >
bool wykobi::intersect (const triangle< T, 2 > &triangle, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::intersect (const triangle< T, 2 > &triangle, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const triangle< T, 2 > &triangle, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
bool wykobi::intersect (const triangle< T, 2 > &triangle1, const triangle< T, 2 > &triangle2)
 
template<typename T >
bool wykobi::intersect (const rectangle< T > &rectangle, const circle< T > &circle)
 
template<typename T >
bool wykobi::intersect (const rectangle< T > &rectangle, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const rectangle< T > &rectangle, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const quadix< T, 2 > &quadix, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const quadix< T, 2 > &quadix, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
bool wykobi::intersect (const circle< T > &circle, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const circle< T > &circle, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const box< T, 3 > &box, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::intersect (const sphere< T > &sphere1, const sphere< T > &sphere2)
 
template<typename T >
bool wykobi::intersect (const sphere< T > &sphere, const quadratic_bezier< T, 3 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const sphere< T > &sphere, const cubic_bezier< T, 3 > &bezier, const std::size_t &steps=1000)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray1, const ray< T, 2 > &ray2)
 
template<typename T >
bool wykobi::intersect (const ray< T, 3 > &ray1, const ray< T, 3 > &ray2)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray, const segment< T, 2 > &segment)
 
template<typename T >
bool wykobi::intersect (const ray< T, 3 > &ray, const segment< T, 3 > &segment)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::intersect (const ray< T, 3 > &ray, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::intersect (const ray< T, 3 > &ray, const triangle< T, 3 > &triangle)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray, const circle< T > &circle)
 
template<typename T >
bool wykobi::intersect (const ray< T, 3 > &ray, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::intersect (const ray< T, 3 > &ray, const plane< T, 3 > &plane)
 
template<typename T >
bool wykobi::intersect (const ray< T, 2 > &ray, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::intersect (const plane< T, 3 > &plane1, const plane< T, 3 > &plane2)
 
template<typename T >
bool wykobi::intersect (const plane< T, 3 > &plane, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::intersect (const plane< T, 3 > &plane, const line< T, 3 > &line)
 
template<typename T >
bool wykobi::simple_intersect (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::simple_intersect (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
bool wykobi::simple_intersect (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
bool wykobi::intersect_vertical_horizontal (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
bool wykobi::intersect_vertical_vertical (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
bool wykobi::intersect_horizontal_horizontal (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
void wykobi::intersection_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, T &ix, T &iy)
 
template<typename T >
void wykobi::intersection_point (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, T &ix, T &iy)
 
template<typename T >
point2d< T > wykobi::intersection_point (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
point2d< T > wykobi::intersection_point (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
void wykobi::intersection_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, T &ix, T &iy, T &iz, const T &fuzzy=T(0.0))
 
template<typename T >
void wykobi::intersection_point (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, T &ix, T &iy, T &iz, const T &fuzzy=T(0.0))
 
template<typename T >
point3d< T > wykobi::intersection_point (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const T &fuzzy=T(0.0))
 
template<typename T >
point3d< T > wykobi::intersection_point (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2, const T &fuzzy=T(0.0))
 
template<typename T >
point2d< T > wykobi::intersection_point (const segment< T, 2 > &segment, const line< T, 2 > &line)
 
template<typename T >
point3d< T > wykobi::intersection_point (const segment< T, 3 > &segment, const line< T, 3 > &line, const T &fuzzy=T(0.0))
 
template<typename T >
point3d< T > wykobi::intersection_point (const segment< T, 3 > &segment, const plane< T, 3 > &plane)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 2 > &segment, const quadratic_bezier< T, 2 > &bezier, OutputIterator out, const std::size_t &steps=1000)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 2 > &segment, const cubic_bezier< T, 2 > &bezier, OutputIterator out, const std::size_t &steps=1000)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 3 > &segment, const quadratic_bezier< T, 3 > &bezier, OutputIterator out, const std::size_t &steps=1000)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 3 > &segment, const cubic_bezier< T, 3 > &bezier, OutputIterator out, const std::size_t &steps=1000)
 
template<typename T >
point2d< T > wykobi::intersection_point (const line< T, 2 > &line1, const line< T, 2 > &line2)
 
template<typename T >
point3d< T > wykobi::intersection_point (const line< T, 3 > &line1, const line< T, 3 > &line2, const T &fuzzy=T(0.0))
 
template<typename T >
void wykobi::intersection_point (const circle< T > &circle1, const circle< T > &circle2, point2d< T > &point1, point2d< T > &point2)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 2 > &segment, const triangle< T, 2 > &triangle, OutputIterator out)
 
template<typename T >
void wykobi::intersection_point (const line< T, 3 > &line, const triangle< T, 3 > &triangle, point3d< T > &ipoint)
 
template<typename T >
point3d< T > wykobi::intersection_point (const line< T, 3 > &line, const plane< T, 3 > &plane)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &cx, const T &cy, const T &radius, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 2 > &segment, const circle< T > &circle, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const line< T, 2 > &line, const circle< T > &circle, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const segment< T, 3 > &segment, const sphere< T > &sphere, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const line< T, 3 > &line, const sphere< T > &sphere, OutputIterator out)
 
template<typename T >
point2d< T > wykobi::intersection_point (const ray< T, 2 > &ray1, const ray< T, 2 > &ray2)
 
template<typename T >
point3d< T > wykobi::intersection_point (const ray< T, 3 > &ray, const triangle< T, 3 > &triangle)
 
template<typename T >
point3d< T > wykobi::intersection_point (const ray< T, 3 > &ray, const plane< T, 3 > &plane)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const ray< T, 2 > &ray, const circle< T > &circle, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::intersection_point (const ray< T, 3 > &ray, const sphere< T > &sphere, OutputIterator out)
 
template<typename T >
void wykobi::intersection_point_line_to_line (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, T &Ix, T &Iy, T &Iz, const T &fuzzy=T(0.0))
 
template<typename T >
wykobi::normalize_angle (const T &angle)
 
template<typename T >
wykobi::vertical_mirror (const T &angle)
 
template<typename T >
wykobi::horizontal_mirror (const T &angle)
 
template<typename T >
unsigned int wykobi::quadrant (const T &angle)
 
template<typename T >
unsigned int wykobi::quadrant (const T &x, const T &y)
 
template<typename T >
unsigned int wykobi::quadrant (const point2d< T > &point)
 
template<typename T >
wykobi::vertex_angle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
wykobi::vertex_angle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
wykobi::vertex_angle (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
wykobi::vertex_angle (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
wykobi::oriented_vertex_angle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const int orient=Clockwise)
 
template<typename T >
wykobi::oriented_vertex_angle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const int orient=Clockwise)
 
template<typename T >
wykobi::cartesian_angle (const T &x, const T &y)
 
template<typename T >
wykobi::cartesian_angle (const point2d< T > &point)
 
template<typename T >
wykobi::robust_cartesian_angle (const T &x, const T &y)
 
template<typename T >
wykobi::robust_cartesian_angle (const point2d< T > &point)
 
template<typename T >
wykobi::cartesian_angle (const T &x, const T &y, const T &ox, const T &oy)
 
template<typename T >
wykobi::cartesian_angle (const point2d< T > &point, const point2d< T > &origin)
 
template<typename T >
wykobi::robust_cartesian_angle (const T &x, const T &y, const T &ox, const T &oy)
 
template<typename T >
wykobi::robust_cartesian_angle (const point2d< T > &point, const point2d< T > &origin)
 
template<typename T >
bool wykobi::parallel (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const line< T, 2 > &line1, const line< T, 2 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::parallel (const line< T, 3 > &line1, const line< T, 3 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const line< T, 2 > &line1, const line< T, 2 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const line< T, 2 > &line, const segment< T, 2 > &segment, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const line< T, 3 > &line1, const line< T, 3 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_parallel (const line< T, 3 > &line, const segment< T, 3 > &segment, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const line< T, 2 > &line1, const line< T, 2 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const line< T, 2 > &line, const segment< T, 2 > &segment, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::perpendicular (const line< T, 3 > &line1, const line< T, 3 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const line< T, 2 > &line1, const line< T, 2 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const line< T, 3 > &line1, const line< T, 3 > &line2, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::robust_perpendicular (const line< T, 2 > &line, const segment< T, 2 > &segment, const T &epsilon=T(Epsilon))
 
template<typename T >
bool wykobi::line_to_line_intersect (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::line_to_line_intersect (const line< T, 2 > &line1, const line< T, 2 > &line2)
 
template<typename T >
bool wykobi::rectangle_to_rectangle_intersect (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::rectangle_to_rectangle_intersect (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
bool wykobi::box_to_box_intersect (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
bool wykobi::box_to_box_intersect (const box< T, 3 > &box1, const box< T, 3 > &box2)
 
template<typename T , unsigned int Dimension, typename Simplex , typename Bezier >
bool wykobi::simplex_to_bezier_intersect (const Simplex &simplex, const Bezier &bezier, const std::size_t &steps)
 
template<typename T , unsigned int Dimension, typename Bezier , typename Iterator >
bool wykobi::simplex_to_bezier_intersect (const Iterator &begin, const Iterator &end, const Bezier &bezier, const std::size_t &steps)
 
template<typename T >
bool wykobi::rectangle_within_rectangle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::rectangle_within_rectangle (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
bool wykobi::box_within_box (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
bool wykobi::box_within_box (const box< T, 3 > &box1, const box< T, 3 > &box2)
 
template<typename T >
bool wykobi::circle_within_rectangle (const T &x, const T &y, const T &radius, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
bool wykobi::circle_within_rectangle (const circle< T > &circle, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::triangle_within_rectangle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &x5, const T &y5)
 
template<typename T >
bool wykobi::triangle_within_rectangle (const triangle< T, 2 > &triangle, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::segment_within_rectangle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::segment_within_rectangle (const segment< T, 2 > &segment, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::quadix_within_rectangle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &x5, const T &y5, const T &x6, const T &y6)
 
template<typename T >
bool wykobi::quadix_within_rectangle (const quadix< T, 2 > &quadix, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::polygon_within_rectangle (const polygon< T, 2 > &polygon, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::sphere_within_box (const T &x, const T &y, const T &z, const T &radius, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
bool wykobi::sphere_within_box (const sphere< T > &sphere, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::triangle_within_box (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &x5, const T &y5, const T &z5)
 
template<typename T >
bool wykobi::triangle_within_box (const triangle< T, 3 > &triangle, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::segment_within_box (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
bool wykobi::segment_within_box (const segment< T, 3 > &segment, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::quadix_within_box (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, const T &x5, const T &y5, const T &z5, const T &x6, const T &y6, const T &z6)
 
template<typename T >
bool wykobi::quadix_within_box (const quadix< T, 3 > &quadix, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::polygon_within_box (const polygon< T, 3 > &polygon, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::circle_in_circle (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
bool wykobi::is_tangent (const segment< T, 2 > &segment, const circle< T > &circle)
 
template<typename T >
bool wykobi::point_of_reflection (const T &sx1, const T &sy1, const T &sx2, const T &sy2, const T &p1x, const T &p1y, const T &p2x, const T &p2y, T &rpx, T &rpy)
 
template<typename T >
bool wykobi::point_of_reflection (const segment< T, 2 > &segment, const point2d< T > &point1, const point2d< T > &point2, point2d< T > &reflection_point)
 
template<typename T >
segment< T, 2 > wykobi::edge (const triangle< T, 2 > &triangle, const std::size_t &edge_index)
 
template<typename T >
segment< T, 3 > wykobi::edge (const triangle< T, 3 > &triangle, const std::size_t &edge_index)
 
template<typename T >
segment< T, 2 > wykobi::edge (const quadix< T, 2 > &quadix, const std::size_t &edge_index)
 
template<typename T >
segment< T, 3 > wykobi::edge (const quadix< T, 3 > &quadix, const std::size_t &edge_index)
 
template<typename T >
segment< T, 2 > wykobi::edge (const rectangle< T > &rectangle, const std::size_t &edge)
 
template<typename T >
segment< T, 2 > wykobi::edge (const polygon< T, 2 > &polygon, const std::size_t &edge)
 
template<typename T >
segment< T, 3 > wykobi::edge (const polygon< T, 3 > &polygon, const std::size_t &edge)
 
template<typename T >
segment< T, 2 > wykobi::opposing_edge (const triangle< T, 2 > &triangle, const std::size_t &corner)
 
template<typename T >
segment< T, 3 > wykobi::opposing_edge (const triangle< T, 3 > &triangle, const std::size_t &corner)
 
template<typename T >
segment< T, 2 > wykobi::reverse_segment (const segment< T, 2 > &segment)
 
template<typename T >
segment< T, 3 > wykobi::reverse_segment (const segment< T, 3 > &segment)
 
template<typename T >
point2d< T > wykobi::rectangle_corner (const rectangle< T > &rectangle, const std::size_t &corner_index)
 
template<typename T >
point3d< T > wykobi::box_corner (const box< T, 3 > &box, const std::size_t &corner_index)
 
template<typename T >
line< T, 2 > wykobi::triangle_bisector (const triangle< T, 2 > &triangle, const std::size_t &bisector)
 
template<typename T >
line< T, 3 > wykobi::triangle_bisector (const triangle< T, 3 > &triangle, const std::size_t &bisector)
 
template<typename T >
line< T, 2 > wykobi::triangle_external_bisector (const triangle< T, 2 > &triangle, const std::size_t &corner, const std::size_t &opposing_corner)
 
template<typename T >
line< T, 3 > wykobi::triangle_external_bisector (const triangle< T, 3 > &triangle, const std::size_t &corner, const std::size_t &opposing_corner)
 
template<typename T >
line< T, 2 > wykobi::triangle_median (const triangle< T, 2 > &triangle, const std::size_t &median)
 
template<typename T >
line< T, 3 > wykobi::triangle_median (const triangle< T, 3 > &triangle, const std::size_t &median)
 
template<typename T >
line< T, 2 > wykobi::triangle_symmedian (const triangle< T, 2 > &triangle, const std::size_t &symmedian)
 
template<typename T >
line< T, 3 > wykobi::triangle_symmedian (const triangle< T, 3 > &triangle, const std::size_t &symmedian)
 
template<typename T >
line< T, 2 > wykobi::euler_line (const triangle< T, 2 > &triangle)
 
template<typename T >
line< T, 3 > wykobi::euler_line (const triangle< T, 3 > &triangle)
 
template<typename T >
point2d< T > wykobi::exmedian_point (const triangle< T, 2 > &triangle, const std::size_t &corner)
 
template<typename T >
point3d< T > wykobi::exmedian_point (const triangle< T, 3 > &triangle, const std::size_t &corner)
 
template<typename T >
point2d< T > wykobi::feuerbach_point (const triangle< T, 2 > &triangle)
 
template<typename T >
line< T, 2 > wykobi::confined_triangle_median (const triangle< T, 2 > &triangle, const point2d< T > &point, const std::size_t &median)
 
template<typename T >
line< T, 3 > wykobi::confined_triangle_median (const triangle< T, 3 > &triangle, const point3d< T > &point, const std::size_t &median)
 
template<typename T >
line< T, 2 > wykobi::create_parallel_line_on_point (const line< T, 2 > &line, const point2d< T > &point)
 
template<typename T >
line< T, 3 > wykobi::create_parallel_line_on_point (const line< T, 3 > &line, const point3d< T > &point)
 
template<typename T >
segment< T, 2 > wykobi::create_parallel_segment_on_point (const line< T, 2 > &line, const point2d< T > &point)
 
template<typename T >
segment< T, 3 > wykobi::create_parallel_segment_on_point (const line< T, 3 > &line, const point3d< T > &point)
 
template<typename T >
bool wykobi::point_in_rectangle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
bool wykobi::point_in_rectangle (const point2d< T > &point, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
bool wykobi::point_in_rectangle (const T &px, const T &py, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::point_in_rectangle (const point2d< T > &point, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::point_in_rectangle (const point2d< T > &point, const point2d< T > &rect_point1, point2d< T > &rect_point2)
 
template<typename T >
bool wykobi::point_in_rectangle (const point2d< T > &point, const segment< T, 2 > &segment)
 
template<typename T >
bool wykobi::point_in_box (const T &px, const T &py, const T &pz, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
bool wykobi::point_in_box (const point3d< T > &point, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
bool wykobi::point_in_box (const T &px, const T &py, const T &pz, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::point_in_box (const point3d< T > &point, const box< T, 3 > &box)
 
template<typename T >
bool wykobi::point_in_box (const point3d< T > &point, const point3d< T > &box_point1, const point3d< T > &box_point2)
 
template<typename T >
bool wykobi::point_in_box (const point3d< T > &point, const segment< T, 3 > &segment)
 
template<typename T >
bool wykobi::point_in_triangle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
bool wykobi::point_in_triangle (const point2d< T > &point, const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
bool wykobi::point_in_triangle (const T &px, const T &py, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::point_in_triangle (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::point_in_quadix (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::point_in_quadix (const point2d< T > &point, const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
bool wykobi::point_in_quadix (const T &px, const T &py, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::point_in_quadix (const point2d< T > &point, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::point_in_circle (const T &px, const T &py, const T &cx, const T &cy, const T &radius)
 
template<typename T >
bool wykobi::point_in_circle (const T &px, const T &py, const circle< T > &circle)
 
template<typename T >
bool wykobi::point_in_circle (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
bool wykobi::point_in_sphere (const T &px, const T &py, const T &pz, const T &cx, const T &cy, const T &cz, const T &radius)
 
template<typename T >
bool wykobi::point_in_sphere (const T &px, const T &py, const T &pz, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::point_in_sphere (const point3d< T > &point, const sphere< T > &sphere)
 
template<typename T >
bool wykobi::point_in_three_point_circle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
bool wykobi::point_in_three_point_circle (const point2d< T > &point, const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
bool wykobi::point_in_three_point_circle (const point2d< T > &point, const triangle< T, 2 > triangle)
 
template<typename T >
bool wykobi::point_in_focus_area (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
bool wykobi::point_in_focus_area (const point2d< T > &point, const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
bool wykobi::point_on_segment (const point2d< T > &point, const segment< T, 2 > &segment)
 
template<typename T >
bool wykobi::point_on_segment (const point3d< T > &point, const segment< T, 3 > &segment)
 
template<typename T >
bool wykobi::point_on_ray (const T &px, const T &py, const T &ox, const T &oy, const T &dx, const T &dy)
 
template<typename T >
bool wykobi::point_on_ray (const T &px, const T &py, const T &pz, const T &ox, const T &oy, const T &oz, const T &dx, const T &dy, const T &dz)
 
template<typename T >
bool wykobi::point_on_ray (const point2d< T > &point, const ray< T, 2 > &ray)
 
template<typename T >
bool wykobi::point_on_ray (const point3d< T > &point, const ray< T, 3 > &ray)
 
template<typename T >
bool wykobi::point_on_rectangle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
bool wykobi::point_on_rectangle (const point2d< T > &point, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
bool wykobi::point_on_rectangle (const T &px, const T &py, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::point_on_rectangle (const point2d< T > &point, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::point_on_triangle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
bool wykobi::point_on_triangle (const point2d< T > &point, const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
bool wykobi::point_on_triangle (const T &px, const T &py, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::point_on_triangle (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::point_on_quadix (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
bool wykobi::point_on_quadix (const point2d< T > &point, const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
bool wykobi::point_on_quadix (const T &px, const T &py, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::point_on_quadix (const point2d< T > &point, const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::point_on_circle (const T &px, const T &py, const T &cx, const T &cy, const T &radius)
 
template<typename T >
bool wykobi::point_on_circle (const T &px, const T &py, const circle< T > &circle)
 
template<typename T >
bool wykobi::point_on_circle (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
bool wykobi::point_on_bezier (const point2d< T > &point, const quadratic_bezier< T, 2 > &bezier, const std::size_t &steps=1000, const T &fuzzy=T(Epsilon))
 
template<typename T >
bool wykobi::point_on_bezier (const point2d< T > &point, const cubic_bezier< T, 2 > &bezier, const std::size_t &steps=1000, const T &fuzzy=T(Epsilon))
 
template<typename T >
bool wykobi::point_on_bezier (const point3d< T > &point, const quadratic_bezier< T, 3 > &bezier, const std::size_t &steps=1000, const T &fuzzy=T(Epsilon))
 
template<typename T >
bool wykobi::point_on_bezier (const point3d< T > &point, const cubic_bezier< T, 3 > &bezier, const std::size_t &steps=1000, const T &fuzzy=T(Epsilon))
 
template<typename T >
point2d< T > wykobi::isogonal_conjugate (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::isogonal_conjugate (const point3d< T > &point, const triangle< T, 3 > &triangle)
 
template<typename T >
point2d< T > wykobi::cyclocevian_conjugate (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
point2d< T > wykobi::symmedian_point (const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::symmedian_point (const triangle< T, 3 > &triangle)
 
template<typename T >
void wykobi::create_equilateral_triangle (const T &x1, const T &y1, const T &x2, const T &y2, T &x3, T &y3)
 
template<typename T >
void wykobi::create_equilateral_triangle (const point2d< T > &point1, const point2d< T > &point2, point2d< T > &point3)
 
template<typename T >
triangle< T, 2 > wykobi::create_equilateral_triangle (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
triangle< T, 2 > wykobi::create_equilateral_triangle (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
triangle< T, 2 > wykobi::create_equilateral_triangle (const T &cx, const T &cy, const T &side_length)
 
template<typename T >
triangle< T, 2 > wykobi::create_equilateral_triangle (const point2d< T > &center_point, const T &side_length)
 
template<typename T >
triangle< T, 2 > wykobi::create_isosceles_triangle (const point2d< T > &point1, const point2d< T > &point2, const T &angle)
 
template<typename T >
triangle< T, 2 > wykobi::create_isosceles_triangle (const segment< T, 2 > &segment, const T &angle)
 
template<typename T >
triangle< T, 2 > wykobi::create_triangle (const point2d< T > &point1, const point2d< T > &point2, const T &angle1, const T &angle2)
 
template<typename T >
triangle< T, 2 > wykobi::create_triangle (const segment< T, 2 > &segment, const T &angle1, const T &angle2)
 
template<typename T >
triangle< T, 2 > wykobi::create_morley_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_cevian_triangle (const triangle< T, 2 > &triangle, const point2d< T > &point)
 
template<typename T >
triangle< T, 3 > wykobi::create_cevian_triangle (const triangle< T, 3 > &triangle, const point3d< T > &point)
 
template<typename T >
triangle< T, 2 > wykobi::create_anticevian_triangle (const triangle< T, 2 > &triangle, const point2d< T > &point)
 
template<typename T >
triangle< T, 3 > wykobi::create_anticevian_triangle (const triangle< T, 3 > &triangle, const point3d< T > &point)
 
template<typename T >
triangle< T, 2 > wykobi::create_anticomplementary_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_anticomplementary_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_inner_napoleon_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_outer_napoleon_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_inner_vecten_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_outer_vecten_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_medial_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_medial_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_contact_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_contact_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_symmedial_triangle (const triangle< T, 2 > &triangle, const point2d< T > &point)
 
template<typename T >
triangle< T, 2 > wykobi::create_orthic_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_orthic_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_pedal_triangle (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_pedal_triangle (const point3d< T > &point, const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_antipedal_triangle (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_excentral_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_excentral_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_incentral_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_incentral_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_intouch_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_extouch_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::create_extouch_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_feuerbach_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_circumcevian_triangle (const triangle< T, 2 > &triangle, const point2d< T > &point)
 
template<typename T >
triangle< T, 2 > wykobi::create_circummedial_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::create_first_brocard_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
void wykobi::create_right_triangle (const wykobi::point2d< T > &p1, const wykobi::point2d< T > &p2, wykobi::point2d< T > &c1, wykobi::point2d< T > &c2)
 
template<typename T >
void wykobi::create_equilateral_quadix (const T &x1, const T &y1, const T &x2, const T &y2, T &x3, T &y3, T &x4, T &y4)
 
template<typename T >
void wykobi::create_equilateral_quadix (const point2d< T > &point1, const point2d< T > &point2, point2d< T > &point3, point2d< T > &point4)
 
template<typename T >
quadix< T, 2 > wykobi::create_equilateral_quadix (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
quadix< T, 2 > wykobi::create_equilateral_quadix (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
quadix< T, 2 > wykobi::create_equilateral_quadix (const segment< T, 2 > &segment)
 
template<typename T >
quadix< T, 2 > wykobi::create_equilateral_quadix (const T &cx, const T &cy, const T &side_length)
 
template<typename T >
quadix< T, 2 > wykobi::create_equilateral_quadix (const point2d< T > &center_point, const T &side_length)
 
template<typename T >
void wykobi::torricelli_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, T &px, T &py)
 
template<typename T >
point2d< T > wykobi::torricelli_point (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
point2d< T > wykobi::torricelli_point (const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::trilateration (const T &c0x, const T &c0y, const T &c0r, const T &c1x, const T &c1y, const T &c1r, const T &c2x, const T &c2y, const T &c2r, T &px, T &py)
 
template<typename T >
point2d< T > wykobi::trilateration (const circle< T > &c0, const circle< T > &c1, const circle< T > &c2)
 
template<typename T >
void wykobi::incenter (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, T &px, T &py)
 
template<typename T >
void wykobi::incenter (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, T &px, T &py, T &pz)
 
template<typename T >
point2d< T > wykobi::incenter (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
point3d< T > wykobi::incenter (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
point2d< T > wykobi::incenter (const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::incenter (const triangle< T, 3 > &triangle)
 
template<typename T >
void wykobi::circumcenter (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, T &px, T &py)
 
template<typename T >
void wykobi::circumcenter (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, T &px, T &py, T &pz)
 
template<typename T >
point2d< T > wykobi::circumcenter (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
point3d< T > wykobi::circumcenter (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
point2d< T > wykobi::circumcenter (const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::circumcenter (const triangle< T, 3 > &triangle)
 
template<typename T >
circle< T > wykobi::circumcircle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
circle< T > wykobi::circumcircle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
circle< T > wykobi::circumcircle (const triangle< T, 2 > &triangle)
 
template<typename T >
sphere< T > wykobi::circumsphere (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
sphere< T > wykobi::circumsphere (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
sphere< T > wykobi::circumsphere (const triangle< T, 3 > &triangle)
 
template<typename T >
circle< T > wykobi::inscribed_circle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
circle< T > wykobi::inscribed_circle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
circle< T > wykobi::inscribed_circle (const triangle< T, 2 > &triangle)
 
template<typename T >
sphere< T > wykobi::inscribed_sphere (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
sphere< T > wykobi::inscribed_sphere (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
sphere< T > wykobi::inscribed_sphere (const triangle< T, 3 > &triangle)
 
template<typename T >
circle< T > wykobi::nine_point_circle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
circle< T > wykobi::nine_point_circle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
circle< T > wykobi::nine_point_circle (const triangle< T, 2 > &triangle)
 
template<typename T >
point2d< T > wykobi::orthocenter (const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::orthocenter (const triangle< T, 3 > &triangle)
 
template<typename T >
point2d< T > wykobi::excenter (const triangle< T, 2 > &triangle, const std::size_t &corner)
 
template<typename T >
point3d< T > wykobi::excenter (const triangle< T, 3 > &triangle, const std::size_t &corner)
 
template<typename T >
circle< T > wykobi::excircle (const triangle< T, 2 > &triangle, const std::size_t &i)
 
template<typename T >
circle< T > wykobi::mandart_circle (const triangle< T, 2 > &triangle)
 
template<typename T >
circle< T > wykobi::brocard_circle (const triangle< T, 2 > &triangle)
 
template<typename T >
circle< T > wykobi::invert_circle_across_circle (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
sphere< T > wykobi::invert_sphere_across_sphere (const sphere< T > &sphere1, const sphere< T > &sphere2)
 
template<typename T >
void wykobi::circle_tangent_points (const circle< T > &circle, const point2d< T > &point, point2d< T > &point1, point2d< T > &point2)
 
template<typename T >
void wykobi::circle_internal_tangent_lines (const circle< T > &circle0, const circle< T > &circle1, std::vector< line< T, 2 > > &lines)
 
template<typename T >
void wykobi::circle_internal_tangent_segments (const circle< T > &circle0, const circle< T > &circle1, std::vector< segment< T, 2 > > &segments)
 
template<typename T >
void wykobi::circle_outer_tangent_lines (const circle< T > &circle0, const circle< T > &circle1, std::vector< line< T, 2 > > &lines)
 
template<typename T >
void wykobi::circle_outer_tangent_segments (const circle< T > &circle0, const circle< T > &circle1, std::vector< segment< T, 2 > > &segments)
 
template<typename T >
line< T, 2 > wykobi::tangent_line (const circle< T > &circle, const point2d< T > &point)
 
template<typename T >
line< T, 2 > wykobi::create_line_from_bisector (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
segment< T, 2 > wykobi::create_segment_from_bisector (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
ray< T, 2 > wykobi::create_ray_from_bisector (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
line< T, 3 > wykobi::create_line_from_bisector (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
segment< T, 3 > wykobi::create_segment_from_bisector (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
ray< T, 3 > wykobi::create_ray_from_bisector (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
line< T, 2 > wykobi::create_line_from_bisector (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
segment< T, 2 > wykobi::create_segment_from_bisector (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
ray< T, 2 > wykobi::create_ray_from_bisector (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
line< T, 3 > wykobi::create_line_from_bisector (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
segment< T, 3 > wykobi::create_segment_from_bisector (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
ray< T, 3 > wykobi::create_ray_from_bisector (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
line< T, 2 > wykobi::create_perpendicular_bisector (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
line< T, 2 > wykobi::create_perpendicular_bisector (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
line< T, 2 > wykobi::create_perpendicular_bisector (const segment< T, 2 > &segment)
 
template<typename T >
line< T, 2 > wykobi::create_perpendicular_line_at_end_point (const line< T, 2 > &line)
 
template<typename T >
void wykobi::closest_point_on_segment_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
void wykobi::closest_point_on_segment_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::closest_point_on_line_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
void wykobi::closest_point_on_line_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::order_sensitive_closest_point_on_segment_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
void wykobi::order_sensitive_closest_point_on_segment_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::order_sensitive_closest_point_on_line_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
void wykobi::order_sensitive_closest_point_on_line_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::closest_point_on_ray_from_point (const T &ox, const T &oy, const T &dx, const T &dy, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
void wykobi::closest_point_on_ray_from_point (const T &ox, const T &oy, const T &oz, const T &dx, const T &dy, const T &dz, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
point2d< T > wykobi::closest_point_on_segment_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py)
 
template<typename T >
point3d< T > wykobi::closest_point_on_segment_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz)
 
template<typename T >
point2d< T > wykobi::closest_point_on_segment_from_point (const segment< T, 2 > &segment, const point2d< T > &point)
 
template<typename T >
point3d< T > wykobi::closest_point_on_segment_from_point (const segment< T, 3 > &segment, const point3d< T > &point)
 
template<typename T >
point2d< T > wykobi::closest_point_on_line_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py)
 
template<typename T >
point3d< T > wykobi::closest_point_on_line_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz)
 
template<typename T >
point2d< T > wykobi::closest_point_on_line_from_point (const line< T, 2 > &line, const point2d< T > &point)
 
template<typename T >
point3d< T > wykobi::closest_point_on_line_from_point (const line< T, 3 > &line, const point3d< T > &point)
 
template<typename T >
point2d< T > wykobi::closest_point_on_ray_from_point (const T &ox, const T &oy, const T &dx, const T &dy, const T &px, const T &py)
 
template<typename T >
point3d< T > wykobi::closest_point_on_ray_from_point (const T &ox, const T &oy, const T &oz, const T &dx, const T &dy, const T &dz, const T &px, const T &py, const T &pz)
 
template<typename T >
point2d< T > wykobi::closest_point_on_ray_from_point (const ray< T, 2 > &ray, const point2d< T > &point)
 
template<typename T >
point3d< T > wykobi::closest_point_on_ray_from_point (const ray< T, 3 > &ray, const point3d< T > &point)
 
template<typename T >
void wykobi::closest_point_on_triangle_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::closest_point_on_triangle_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &px, const T &py)
 
template<typename T >
point2d< T > wykobi::closest_point_on_triangle_from_point (const triangle< T, 2 > &triangle, const T &px, const T &py)
 
template<typename T >
point2d< T > wykobi::closest_point_on_triangle_from_point (const triangle< T, 2 > &triangle, const point2d< T > &point)
 
template<typename T >
void wykobi::closest_point_on_triangle_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
point3d< T > wykobi::closest_point_on_triangle_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &px, const T &py, const T &pz)
 
template<typename T >
point3d< T > wykobi::closest_point_on_triangle_from_point (const triangle< T, 3 > &triangle, const T &px, const T &py, const T &pz)
 
template<typename T >
point3d< T > wykobi::closest_point_on_triangle_from_point (const triangle< T, 3 > &triangle, const point3d< T > &point)
 
template<typename T >
void wykobi::closest_point_on_rectangle_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::closest_point_on_rectangle_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py)
 
template<typename T >
point2d< T > wykobi::closest_point_on_rectangle_from_point (const rectangle< T > &rectangle, const T &px, const T &py)
 
template<typename T >
point2d< T > wykobi::closest_point_on_rectangle_from_point (const rectangle< T > &rectangle, const point2d< T > &point)
 
template<typename T >
void wykobi::closest_point_on_box_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
 
template<typename T >
point3d< T > wykobi::closest_point_on_box_from_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz)
 
template<typename T >
point3d< T > wykobi::closest_point_on_box_from_point (const box< T, 3 > &box, const T &px, const T &py, const T &pz)
 
template<typename T >
point3d< T > wykobi::closest_point_on_box_from_point (const box< T, 3 > &box, const point3d< T > &point)
 
template<typename T >
void wykobi::closest_point_on_quadix_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &px, const T &py, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::closest_point_on_quadix_from_point (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &px, const T &py)
 
template<typename T >
point2d< T > wykobi::closest_point_on_quadix_from_point (const quadix< T, 2 > &quadix, const point2d< T > &point)
 
template<typename T >
point2d< T > wykobi::closest_point_on_circle_from_point (const circle< T > &circle, const point2d< T > &point)
 
template<typename T >
point3d< T > wykobi::closest_point_on_sphere_from_point (const sphere< T > &sphere, const point3d< T > &point)
 
template<typename T >
point2d< T > wykobi::closest_point_on_aabbb_from_point (const rectangle< T > &rectangle, const point2d< T > &point)
 
template<typename T >
point2d< T > wykobi::closest_point_on_circle_from_segment (const circle< T > &circle, const segment< T, 2 > &segment)
 
template<typename T >
point3d< T > wykobi::closest_point_on_sphere_from_segment (const sphere< T > &sphere, const segment< T, 3 > &segment)
 
template<typename T >
point3d< T > wykobi::closest_point_on_plane_from_point (const plane< T, 3 > &plane, const point3d< T > &point)
 
template<typename T >
point2d< T > wykobi::closest_point_on_bezier_from_point (const quadratic_bezier< T, 2 > &bezier, const point2d< T > &point, const std::size_t &steps=1000)
 
template<typename T >
point2d< T > wykobi::closest_point_on_bezier_from_point (const cubic_bezier< T, 2 > &bezier, const point2d< T > &point, const std::size_t &steps=1000)
 
template<typename T >
point3d< T > wykobi::closest_point_on_bezier_from_point (const quadratic_bezier< T, 3 > &bezier, const point3d< T > &point, const std::size_t &steps=1000)
 
template<typename T >
point3d< T > wykobi::closest_point_on_bezier_from_point (const cubic_bezier< T, 3 > &bezier, const point3d< T > &point, const std::size_t &steps=1000)
 
template<typename T >
point2d< T > wykobi::closest_point_on_circle_from_circle (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
point3d< T > wykobi::closest_point_on_sphere_from_sphere (const sphere< T > &sphere1, const sphere< T > &sphere2)
 
template<typename T >
point2d< T > wykobi::closest_point_on_polygon_from_point (const polygon< T, 2 > &polygon, const point2d< T > &point)
 
template<typename T >
wykobi::minimum_distance_from_point_to_segment (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::minimum_distance_from_point_to_segment (const T &px, const T &py, const T &pz, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::minimum_distance_from_point_to_segment (const point2d< T > &point, const segment< T, 2 > &segment)
 
template<typename T >
wykobi::minimum_distance_from_point_to_segment (const point3d< T > &point, const segment< T, 3 > &segment)
 
template<typename T >
wykobi::minimum_distance_from_point_to_line (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::minimum_distance_from_point_to_line (const T &px, const T &py, const T &pz, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::minimum_distance_from_point_to_line (const point2d< T > &point, const line< T, 2 > &line)
 
template<typename T >
wykobi::minimum_distance_from_point_to_line (const point3d< T > &point, const line< T, 3 > &line)
 
template<typename T >
wykobi::minimum_distance_from_point_to_triangle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
wykobi::minimum_distance_from_point_to_triangle (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::minimum_distance_from_point_to_rectangle (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::minimum_distance_from_point_to_rectangle (const point2d< T > &point, const rectangle< T > &rectangle)
 
template<typename T >
void wykobi::segment_mid_point (const T &x1, const T &y1, const T &x2, const T &y2, T &midx, T &midy)
 
template<typename T >
void wykobi::segment_mid_point (const segment< T, 2 > &segment, T &midx, T &midy)
 
template<typename T >
point2d< T > wykobi::segment_mid_point (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
point2d< T > wykobi::segment_mid_point (const segment< T, 2 > &segment)
 
template<typename T >
void wykobi::segment_mid_point (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, T &midx, T &midy, T &midz)
 
template<typename T >
void wykobi::segment_mid_point (const segment< T, 3 > &segment, T &midx, T &midy, T &midz)
 
template<typename T >
point3d< T > wykobi::segment_mid_point (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
point3d< T > wykobi::segment_mid_point (const segment< T, 3 > &segment)
 
template<typename T >
void wykobi::centroid (const T &x1, const T &y1, const T &x2, const T &y2, T &x, T &y)
 
template<typename T >
point2d< T > wykobi::centroid (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
point2d< T > wykobi::centroid (const segment< T, 2 > &segment)
 
template<typename T >
void wykobi::centroid (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, T &x, T &y)
 
template<typename T >
void wykobi::centroid (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, T &x, T &y, T &z)
 
template<typename T >
void wykobi::centroid (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, T &x, T &y)
 
template<typename T >
void wykobi::centroid (const triangle< T, 2 > &triangle, T &x, T &y)
 
template<typename T >
void wykobi::centroid (const triangle< T, 3 > &triangle, T &x, T &y, T &z)
 
template<typename T >
void wykobi::centroid (const quadix< T, 2 > &quadix, T &x, T &y)
 
template<typename T >
void wykobi::centroid (const rectangle< T > &rectangle, T &x, T &y)
 
template<typename T >
void wykobi::centroid (const box< T, 3 > &box, T &x, T &y, T &z)
 
template<typename T >
void wykobi::centroid (const polygon< T, 2 > &polygon, T &x, T &y)
 
template<typename T >
point2d< T > wykobi::centroid (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
point2d< T > wykobi::centroid (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
point2d< T > wykobi::centroid (const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::centroid (const triangle< T, 3 > &triangle)
 
template<typename T >
point2d< T > wykobi::centroid (const quadix< T, 2 > &quadix)
 
template<typename T >
point2d< T > wykobi::centroid (const rectangle< T > &rectangle)
 
template<typename T >
point3d< T > wykobi::centroid (const box< T, 3 > &box)
 
template<typename T >
point2d< T > wykobi::centroid (const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::common_center (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
bool wykobi::common_center (const sphere< T > &sphere1, const sphere< T > &circle2)
 
template<typename T >
bool wykobi::point_in_convex_polygon (const T &px, const T &py, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_in_convex_polygon (const point2d< T > &point, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_on_polygon_edge (const T &px, const T &py, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_on_polygon_edge (const point2d< T > &point, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_in_polygon (const T &px, const T &py, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_in_polygon (const point2d< T > &point, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_in_polygon_winding_number (const T &px, const T &py, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::point_in_polygon_winding_number (const point2d< T > &point, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::convex_quadix (const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::convex_quadix (const quadix< T, 3 > &quadix)
 
template<typename T >
bool wykobi::is_convex_polygon (const polygon< T, 2 > &polygon)
 
template<typename T >
polygon< T, 2 > wykobi::remove_consecutive_collinear_points (const polygon< T, 2 > &polygon)
 
template<typename T , typename InputIterator , typename OutputIterator >
void wykobi::remove_consecutive_collinear_points (const InputIterator begin, const InputIterator end, OutputIterator out)
 
template<typename T >
bool wykobi::convex_vertex (const std::size_t &index, const polygon< T, 2 > &polygon, const int &polygon_orientation=LeftHandSide)
 
template<typename T >
bool wykobi::collinear_vertex (const std::size_t &index, const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::vertex_is_ear (const std::size_t &index, const polygon< T, 2 > &polygon)
 
template<typename T >
triangle< T, 2 > wykobi::vertex_triangle (const std::size_t &index, const polygon< T, 2 > polygon)
 
template<typename T >
int wykobi::polygon_orientation (const polygon< T, 2 > &polygon)
 
template<typename T >
bool wykobi::is_equilateral_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::is_equilateral_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
bool wykobi::is_isosceles_triangle (const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::is_isosceles_triangle (const triangle< T, 3 > &triangle)
 
template<typename T >
bool wykobi::is_right_triangle (const wykobi::triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::is_right_triangle (const wykobi::triangle< T, 3 > &triangle)
 
template<typename T >
bool wykobi::are_perspective_triangles (const triangle< T, 2 > &triangle1, const triangle< T, 2 > &triangle2)
 
template<typename T >
bool wykobi::are_perspective_triangles (const triangle< T, 3 > &triangle1, const triangle< T, 3 > &triangle2)
 
template<typename T >
line< T, 2 > wykobi::perspectrix (const triangle< T, 2 > &triangle1, const triangle< T, 2 > &triangle2)
 
template<typename T >
line< T, 3 > wykobi::perspectrix (const triangle< T, 3 > &triangle1, const triangle< T, 3 > &triangle2)
 
template<typename T >
void wykobi::mirror (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, T &nx, T &ny)
 
template<typename T >
void wykobi::mirror (const T &px, const T &py, const T &pz, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, T &nx, T &ny, T &nz)
 
template<typename T >
point2d< T > wykobi::mirror (const point2d< T > &point, const line< T, 2 > &mirror_axis)
 
template<typename T >
segment< T, 2 > wykobi::mirror (const segment< T, 2 > &segment, const line< T, 2 > &mirror_axis)
 
template<typename T >
line< T, 2 > wykobi::mirror (const line< T, 2 > &line, const wykobi::line< T, 2 > &mirror_axis)
 
template<typename T >
rectangle< T > wykobi::mirror (const rectangle< T > &rectangle, const line< T, 2 > &mirror_axis)
 
template<typename T >
triangle< T, 2 > wykobi::mirror (const triangle< T, 2 > &triangle, const line< T, 2 > &mirror_axis)
 
template<typename T >
quadix< T, 2 > wykobi::mirror (const quadix< T, 2 > &quadix, const line< T, 2 > &mirror_axis)
 
template<typename T >
circle< T > wykobi::mirror (const circle< T > &circle, const line< T, 2 > &mirror_axis)
 
template<typename T >
polygon< T, 2 > wykobi::mirror (const polygon< T, 2 > &polygon, const line< T, 2 > &mirror_axis)
 
template<typename T >
point3d< T > wykobi::mirror (const point3d< T > &point, const line< T, 3 > &mirror_axis)
 
template<typename T >
segment< T, 3 > wykobi::mirror (const segment< T, 3 > &segment, const line< T, 3 > &mirror_axis)
 
template<typename T >
line< T, 3 > wykobi::mirror (const line< T, 3 > &line, const wykobi::line< T, 3 > &mirror_axis)
 
template<typename T >
box< T, 3 > wykobi::mirror (const box< T, 3 > &box, const line< T, 3 > &mirror_axis)
 
template<typename T >
triangle< T, 3 > wykobi::mirror (const triangle< T, 3 > &triangle, const line< T, 3 > &mirror_axis)
 
template<typename T >
quadix< T, 3 > wykobi::mirror (const quadix< T, 3 > &quadix, const line< T, 3 > &mirror_axis)
 
template<typename T >
sphere< T > wykobi::mirror (const sphere< T > &sphere, const line< T, 3 > &mirror_axis)
 
template<typename T >
polygon< T, 3 > wykobi::mirror (const polygon< T, 3 > &polygon, const line< T, 3 > &mirror_axis)
 
template<typename T >
point3d< T > wykobi::mirror (const point3d< T > &point, const plane< T, 3 > &mirror_plane)
 
template<typename T >
segment< T, 3 > wykobi::mirror (const segment< T, 3 > &segment, const plane< T, 3 > &mirror_plane)
 
template<typename T >
line< T, 3 > wykobi::mirror (const line< T, 3 > &line, const plane< T, 3 > &mirror_plane)
 
template<typename T >
box< T, 3 > wykobi::mirror (const box< T, 3 > &box, const plane< T, 3 > &mirror_plane)
 
template<typename T >
triangle< T, 3 > wykobi::mirror (const triangle< T, 3 > &triangle, const plane< T, 3 > &mirror_plane)
 
template<typename T >
quadix< T, 3 > wykobi::mirror (const quadix< T, 3 > &quadix, const plane< T, 3 > &mirror_plane)
 
template<typename T >
sphere< T > wykobi::mirror (const sphere< T > &sphere, const plane< T, 3 > &mirror_plane)
 
template<typename T >
polygon< T, 3 > wykobi::mirror (const polygon< T, 3 > &polygon, const plane< T, 3 > &mirror_plane)
 
template<typename T >
void wykobi::nonsymmetric_mirror (const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, const T &ratio, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::nonsymmetric_mirror (const point2d< T > &point, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
segment< T, 2 > wykobi::nonsymmetric_mirror (const segment< T, 2 > &segment, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
rectangle< T > wykobi::nonsymmetric_mirror (const rectangle< T > &rectangle, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
triangle< T, 2 > wykobi::nonsymmetric_mirror (const triangle< T, 2 > &triangle, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
quadix< T, 2 > wykobi::nonsymmetric_mirror (const quadix< T, 2 > &quadix, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
circle< T > wykobi::nonsymmetric_mirror (const circle< T > &circle, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
polygon< T, 2 > wykobi::nonsymmetric_mirror (const polygon< T, 2 > &polygon, const T &ratio, const line< T, 2 > &line)
 
template<typename T >
point3d< T > wykobi::nonsymmetric_mirror (const point3d< T > &point, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
segment< T, 3 > wykobi::nonsymmetric_mirror (const segment< T, 3 > &segment, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
box< T, 3 > wykobi::nonsymmetric_mirror (const box< T, 3 > &box, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
triangle< T, 3 > wykobi::nonsymmetric_mirror (const triangle< T, 3 > &triangle, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
quadix< T, 3 > wykobi::nonsymmetric_mirror (const quadix< T, 3 > &quadix, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
circle< T > wykobi::nonsymmetric_mirror (const sphere< T > &sphere, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
polygon< T, 3 > wykobi::nonsymmetric_mirror (const polygon< T, 3 > &polygon, const T &ratio, const plane< T, 3 > &plane)
 
template<typename T >
point2d< T > wykobi::invert_point (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
point3d< T > wykobi::invert_point (const point3d< T > &point, const sphere< T > &sphere)
 
template<typename T >
point2d< T > wykobi::antipodal_point (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
point3d< T > wykobi::antipodal_point (const point3d< T > &point, const sphere< T > &sphere)
 
template<typename T >
wykobi::distance (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::distance (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::distance (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
wykobi::distance (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
wykobi::distance (const curve_point< T, 2 > &point1, const curve_point< T, 2 > &point2)
 
template<typename T >
wykobi::distance (const curve_point< T, 3 > &point1, const curve_point< T, 3 > &point2)
 
template<typename T >
wykobi::distance (const point2d< T > &point, const segment< T, 2 > &segment)
 
template<typename T >
wykobi::distance (const point3d< T > &point, const segment< T, 3 > &segment)
 
template<typename T >
wykobi::distance (const point2d< T > &point, const rectangle< T > &rectangle)
 
template<typename T >
wykobi::distance (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::distance (const point2d< T > &point, const quadix< T, 2 > &quadix)
 
template<typename T >
wykobi::distance (const point2d< T > &point, const ray< T, 2 > &ray)
 
template<typename T >
wykobi::distance (const point3d< T > &point, const ray< T, 3 > &ray)
 
template<typename T >
wykobi::distance (const point3d< T > &point, const plane< T, 3 > &plane)
 
template<typename T >
wykobi::distance (const line< T, 2 > &line1, const line< T, 2 > &line2)
 
template<typename T >
wykobi::distance (const line< T, 3 > &line1, const line< T, 3 > &line2)
 
template<typename T >
wykobi::distance (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
wykobi::distance (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2)
 
template<typename T >
wykobi::distance (const segment< T, 2 > &segment)
 
template<typename T >
wykobi::distance (const segment< T, 3 > &segment)
 
template<typename T >
wykobi::distance (const segment< T, 2 > &segment, const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::distance (const segment< T, 3 > &segment, const triangle< T, 3 > &triangle)
 
template<typename T >
wykobi::distance (const segment< T, 2 > &segment, const rectangle< T > &rectangle)
 
template<typename T >
wykobi::distance (const segment< T, 2 > &segment, const circle< T > &circle)
 
template<typename T >
wykobi::distance (const triangle< T, 2 > &triangle1, const triangle< T, 2 > &triangle2)
 
template<typename T >
wykobi::distance (const triangle< T, 2 > &triangle, const rectangle< T > &rectangle)
 
template<typename T >
wykobi::distance (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
wykobi::distance (const triangle< T, 2 > &triangle, const circle< T > &circle)
 
template<typename T >
wykobi::distance (const rectangle< T > &rectangle, const circle< T > &circle)
 
template<typename T >
wykobi::distance (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
wykobi::distance (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
wykobi::distance (const sphere< T > &sphere1, const sphere< T > &sphere2)
 
template<typename T >
wykobi::lay_distance (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::lay_distance (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::lay_distance (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
wykobi::lay_distance (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
wykobi::lay_distance (const point2d< T > &point, const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::lay_distance (const point2d< T > &point, const quadix< T, 2 > &triangle)
 
template<typename T >
wykobi::lay_distance (const point2d< T > &point, const ray< T, 2 > &ray)
 
template<typename T >
wykobi::lay_distance (const point3d< T > &point, const ray< T, 3 > &ray)
 
template<typename T >
wykobi::lay_distance (const point3d< T > &point, const plane< T, 3 > &plane)
 
template<typename T >
wykobi::lay_distance (const segment< T, 2 > &segment1, const segment< T, 2 > &segment2)
 
template<typename T >
wykobi::lay_distance (const segment< T, 3 > &segment1, const segment< T, 3 > &segment2)
 
template<typename T >
wykobi::lay_distance (const line< T, 3 > &line1, const line< T, 3 > &line2)
 
template<typename T >
wykobi::lay_distance (const segment< T, 2 > &segment)
 
template<typename T >
wykobi::lay_distance (const segment< T, 3 > &segment)
 
template<typename T >
wykobi::lay_distance (const segment< T, 2 > &segment, const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::lay_distance (const segment< T, 3 > &segment, const triangle< T, 3 > &triangle)
 
template<typename T >
wykobi::manhattan_distance (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::manhattan_distance (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::manhattan_distance (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
wykobi::manhattan_distance (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
wykobi::manhattan_distance (const point2d< T > &point, const ray< T, 2 > &ray)
 
template<typename T >
wykobi::manhattan_distance (const point3d< T > &point, const ray< T, 3 > &ray)
 
template<typename T >
wykobi::manhattan_distance (const segment< T, 2 > &segment)
 
template<typename T >
wykobi::manhattan_distance (const segment< T, 3 > &segment)
 
template<typename T >
wykobi::manhattan_distance (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
wykobi::chebyshev_distance (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::chebyshev_distance (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::chebyshev_distance (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
wykobi::chebyshev_distance (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
wykobi::chebyshev_distance (const segment< T, 2 > &segment)
 
template<typename T >
wykobi::chebyshev_distance (const segment< T, 3 > &segment)
 
template<typename T >
wykobi::chebyshev_distance (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const segment< T, 2 > &segment)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const segment< T, 3 > &segment)
 
template<typename T >
wykobi::inverse_chebyshev_distance (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
point2d< T > wykobi::minkowski_sum (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const triangle< T, 2 > &triangle1, const triangle< T, 2 > &triangle2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const quadix< T, 2 > &quadix1, const quadix< T, 2 > &quadix2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const circle< T > &triangle, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const triangle< T, 2 > &triangle, const rectangle< T > &rectangle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const triangle< T, 2 > &triangle, const quadix< T, 2 > &quadix)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const triangle< T, 2 > &triangle, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const quadix< T, 2 > &quadix, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const quadix< T, 2 > &quadix, const rectangle< T > &rectangle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const rectangle< T > &rectangle, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_sum (const polygon< T, 2 > &polygon1, const polygon< T, 2 > &polygon2)
 
template<typename T >
point2d< T > wykobi::minkowski_difference (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const triangle< T, 2 > &triangle1, const triangle< T, 2 > &triangle2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const quadix< T, 2 > &quadix1, const quadix< T, 2 > &quadix2)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const circle< T > &triangle, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const triangle< T, 2 > &triangle, const rectangle< T > &rectangle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const triangle< T, 2 > &triangle, const quadix< T, 2 > &quadix)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const triangle< T, 2 > &triangle, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const quadix< T, 2 > &quadix, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const quadix< T, 2 > &quadix, const rectangle< T > &rectangle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const rectangle< T > &rectangle, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::minkowski_difference (const polygon< T, 2 > &polygon1, const polygon< T, 2 > &polygon2)
 
template<typename T >
wykobi::distance_segment_to_segment (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
wykobi::distance_segment_to_segment (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
wykobi::lay_distance_segment_to_segment (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
wykobi::lay_distance_segment_to_segment (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
wykobi::distance_line_to_line (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
wykobi::distance_line_to_line (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
wykobi::lay_distance_line_to_line (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
wykobi::lay_distance_line_to_line (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
wykobi::lay_distance_from_point_to_circle_center (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
wykobi::lay_distance_from_point_to_sphere_center (const point3d< T > &point, const sphere< T > &sphere)
 
template<typename T >
wykobi::distance_from_point_to_circle_center (const point2d< T > &point, const circle< T > &circle)
 
template<typename T >
wykobi::distance_from_point_to_sphere_center (const point3d< T > &point, const sphere< T > &sphere)
 
template<typename T >
wykobi::span_length (const rectangle< T > &rectangle)
 
template<typename T >
wykobi::span_length (const box< T, 3 > &box)
 
template<typename T >
void wykobi::project_point_t (const T &srcx, const T &srcy, const T &destx, const T &desty, const T &t, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point_t (const T &srcx, const T &srcy, const T &srcz, const T &destx, const T &desty, const T &destz, const T &t, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::project_point (const T &srcx, const T &srcy, const T &destx, const T &desty, const T &dist, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point (const T &srcx, const T &srcy, const T &srcz, const T &destx, const T &desty, const T &destz, const T &dist, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::project_point (const T &px, const T &py, const T &angle, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point0 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point45 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point90 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point135 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point180 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point225 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point270 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
void wykobi::project_point315 (const T &px, const T &py, const T &distance, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::project_point_t (const point2d< T > &source_point, const point2d< T > &destination_point, const T &t)
 
template<typename T >
point3d< T > wykobi::project_point_t (const point3d< T > &source_point, const point3d< T > &destination_point, const T &t)
 
template<typename T >
point2d< T > wykobi::project_point (const point2d< T > &source_point, const point2d< T > &destination_point, const T &distance)
 
template<typename T >
point3d< T > wykobi::project_point (const point3d< T > &source_point, const point3d< T > &destination_point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point (const point2d< T > &point, const T &angle, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point0 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point45 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point90 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point135 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point180 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point225 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point270 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_point315 (const point2d< T > &point, const T &distance)
 
template<typename T >
point2d< T > wykobi::project_object (const point2d< T > &point, const T &angle, const T &distance)
 
template<typename T >
segment< T, 2 > wykobi::project_object (const segment< T, 2 > &segment, const T &angle, const T &distance)
 
template<typename T >
triangle< T, 2 > wykobi::project_object (const triangle< T, 2 > &triangle, const T &angle, const T &distance)
 
template<typename T >
quadix< T, 2 > wykobi::project_object (const quadix< T, 2 > &quadix, const T &angle, const T &distance)
 
template<typename T >
circle< T > wykobi::project_object (const circle< T > &circle, const T &angle, const T &distance)
 
template<typename T >
polygon< T, 2 > wykobi::project_object (const polygon< T, 2 > &polygon, const T &angle, const T &distance)
 
template<typename T >
segment< T, 2 > wykobi::project_onto_axis (const point2d< T > &point, const line< T, 2 > &axis)
 
template<typename T >
segment< T, 2 > wykobi::project_onto_axis (const triangle< T, 2 > &triangle, const line< T, 2 > &axis)
 
template<typename T >
segment< T, 2 > wykobi::project_onto_axis (const rectangle< T > &rectangle, const line< T, 2 > &axis)
 
template<typename T >
segment< T, 2 > wykobi::project_onto_axis (const quadix< T, 2 > &quadix, const line< T, 2 > &axis)
 
template<typename T >
segment< T, 2 > wykobi::project_onto_axis (const circle< T > &circle, const line< T, 2 > &axis)
 
template<typename T >
segment< T, 2 > wykobi::project_onto_axis (const polygon< T, 2 > &polygon, const line< T, 2 > &axis)
 
template<typename T >
segment< T, 3 > wykobi::project_onto_axis (const point3d< T > &point, const line< T, 3 > &axis)
 
template<typename T >
segment< T, 3 > wykobi::project_onto_axis (const triangle< T, 3 > &triangle, const line< T, 3 > &axis)
 
template<typename T >
segment< T, 3 > wykobi::project_onto_axis (const box< T, 3 > &box, const line< T, 3 > &axis)
 
template<typename T >
segment< T, 3 > wykobi::project_onto_axis (const quadix< T, 3 > &quadix, const line< T, 3 > &axis)
 
template<typename T >
segment< T, 3 > wykobi::project_onto_axis (const sphere< T > &sphere, const line< T, 3 > &axis)
 
template<typename T >
segment< T, 3 > wykobi::project_onto_axis (const polygon< T, 3 > &polygon, const line< T, 3 > &axis)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const quadratic_bezier< T, 2 > &bezier, T &ax, T &bx, T &ay, T &by)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const quadratic_bezier< T, 3 > &bezier, T &ax, T &bx, T &ay, T &by, T &az, T &bz)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const cubic_bezier< T, 2 > &bezier, T &ax, T &bx, T &cx, T &ay, T &by, T &cy)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const cubic_bezier< T, 3 > &bezier, T &ax, T &bx, T &cx, T &ay, T &by, T &cy, T &az, T &bz, T &cz)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const quadratic_bezier< T, 2 > &bezier, bezier_coefficients< T, 2, eQuadraticBezier > &coeffs)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const quadratic_bezier< T, 3 > &bezier, bezier_coefficients< T, 3, eQuadraticBezier > &coeffs)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const cubic_bezier< T, 2 > &bezier, bezier_coefficients< T, 2, eCubicBezier > &coeffs)
 
template<typename T >
void wykobi::calculate_bezier_coefficients (const cubic_bezier< T, 3 > &bezier, bezier_coefficients< T, 3, eCubicBezier > &coeffs)
 
template<typename T >
point2d< T > wykobi::create_point_on_bezier (const point2d< T > &start_point, const T &ax, const T &bx, const T &ay, const T &by, const T &t)
 
template<typename T >
point3d< T > wykobi::create_point_on_bezier (const point3d< T > &start_point, const T &ax, const T &bx, const T &ay, const T &by, const T &az, const T &bz, const T &t)
 
template<typename T >
point2d< T > wykobi::create_point_on_bezier (const point2d< T > &start_point, const T &ax, const T &bx, const T &cx, const T &ay, const T &by, const T &cy, const T &t)
 
template<typename T >
point3d< T > wykobi::create_point_on_bezier (const point3d< T > &start_point, const T &ax, const T &bx, const T &cx, const T &ay, const T &by, const T &cy, const T &az, const T &bz, const T &cz, const T &t)
 
template<typename T >
point2d< T > wykobi::create_point_on_bezier (const point2d< T > &start_point, const bezier_coefficients< T, 2, eQuadraticBezier > &coeffs, const T &t)
 
template<typename T >
point3d< T > wykobi::create_point_on_bezier (const point3d< T > &start_point, const bezier_coefficients< T, 3, eQuadraticBezier > &coeffs, const T &t)
 
template<typename T >
point2d< T > wykobi::create_point_on_bezier (const point2d< T > &start_point, const bezier_coefficients< T, 2, eCubicBezier > &coeffs, const T &t)
 
template<typename T >
point3d< T > wykobi::create_point_on_bezier (const point3d< T > &start_point, const bezier_coefficients< T, 3, eCubicBezier > &coeffs, const T &t)
 
template<typename T , typename OutputIterator >
void wykobi::generate_bezier (const quadratic_bezier< T, 2 > &bezier, OutputIterator out, const std::size_t &point_count=1000)
 
template<typename T , typename OutputIterator >
void wykobi::generate_bezier (const quadratic_bezier< T, 3 > &bezier, OutputIterator out, const std::size_t &point_count=1000)
 
template<typename T , typename OutputIterator >
void wykobi::generate_bezier (const cubic_bezier< T, 2 > &bezier, OutputIterator out, const std::size_t &point_count=1000)
 
template<typename T , typename OutputIterator >
void wykobi::generate_bezier (const cubic_bezier< T, 3 > &bezier, OutputIterator out, const std::size_t &point_count=1000)
 
template<typename T >
wykobi::bezier_curve_length (const quadratic_bezier< T, 2 > &bezier, const std::size_t &point_count)
 
template<typename T >
wykobi::bezier_curve_length (const quadratic_bezier< T, 3 > &bezier, const std::size_t &point_count)
 
template<typename T >
wykobi::bezier_curve_length (const cubic_bezier< T, 2 > &bezier, const std::size_t &point_count)
 
template<typename T >
wykobi::bezier_curve_length (const cubic_bezier< T, 3 > &bezier, const std::size_t &point_count)
 
template<typename T >
triangle< T, 2 > wykobi::bezier_convex_hull (const quadratic_bezier< T, 2 > &bezier)
 
template<typename T >
quadix< T, 2 > wykobi::bezier_convex_hull (const cubic_bezier< T, 2 > &bezier)
 
template<typename T >
segment< T, 2 > wykobi::center_at_location (const segment< T, 2 > &segment, const T &x, const T &y)
 
template<typename T >
segment< T, 3 > wykobi::center_at_location (const segment< T, 3 > &segment, const T &x, const T &y, const T &z)
 
template<typename T >
triangle< T, 2 > wykobi::center_at_location (const triangle< T, 2 > &triangle, const T &x, const T &y)
 
template<typename T >
rectangle< T > wykobi::center_at_location (const rectangle< T > &rectangle, const T &x, const T &y)
 
template<typename T >
box< T, 3 > wykobi::center_at_location (const box< T, 3 > &box, const T &x, const T &y, const T &z)
 
template<typename T >
quadix< T, 2 > wykobi::center_at_location (const quadix< T, 2 > &quadix, const T &x, const T &y)
 
template<typename T >
circle< T > wykobi::center_at_location (const circle< T > &circle, const T &x, const T &y)
 
template<typename T >
polygon< T, 2 > wykobi::center_at_location (const polygon< T, 2 > &polygon, const T &x, const T &y)
 
template<typename T >
segment< T, 2 > wykobi::center_at_location (const segment< T, 2 > &segment, const point2d< T > &center_point)
 
template<typename T >
segment< T, 3 > wykobi::center_at_location (const segment< T, 3 > &segment, const point3d< T > &center_point)
 
template<typename T >
triangle< T, 2 > wykobi::center_at_location (const triangle< T, 2 > &triangle, const point2d< T > &center_point)
 
template<typename T >
rectangle< T > wykobi::center_at_location (const rectangle< T > &rectangle, const point2d< T > &center_point)
 
template<typename T >
box< T, 3 > wykobi::center_at_location (const box< T, 3 > &box, const point3d< T > &center_point)
 
template<typename T >
quadix< T, 2 > wykobi::center_at_location (const quadix< T, 2 > &quadix, const point2d< T > &center_point)
 
template<typename T >
circle< T > wykobi::center_at_location (const circle< T > &circle, const point2d< T > &center_point)
 
template<typename T >
polygon< T, 2 > wykobi::center_at_location (const polygon< T, 2 > &polygon, const point2d< T > &center_point)
 
template<typename T >
void wykobi::shorten_segment (T &x1, T &y1, T &x2, T &y2, const T &amount)
 
template<typename T >
void wykobi::shorten_segment (T &x1, T &y1, T &z1, T &x2, T &y2, T &z2, const T &amount)
 
template<typename T >
segment< T, 2 > wykobi::shorten_segment (const segment< T, 2 > &segment, const T &amount)
 
template<typename T >
segment< T, 3 > wykobi::shorten_segment (const segment< T, 3 > &segment, const T &amount)
 
template<typename T >
void wykobi::lengthen_segment (T &x1, T &y1, T &x2, T &y2, const T &amount)
 
template<typename T >
void wykobi::lengthen_segment (T &x1, T &y1, T &z1, T &x2, T &y2, T &z2, const T &amount)
 
template<typename T >
segment< T, 2 > wykobi::lengthen_segment (const segment< T, 2 > &segment, const T &amount)
 
template<typename T >
segment< T, 3 > wykobi::lengthen_segment (const segment< T, 3 > &segment, const T &amount)
 
template<typename T >
int wykobi::out_code (const point2d< T > &point, const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::clip (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, T &cx1, T &cy1, T &cx2, T &cy2)
 
template<typename T >
bool wykobi::clip (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4, T &cx1, T &cy1, T &cz1, T &cx2, T &cy2, T &cz2)
 
template<typename T >
bool wykobi::clip (const segment< T, 2 > &src_segment, const rectangle< T > &rectangle, segment< T, 2 > &csegment)
 
template<typename T >
bool wykobi::clip (const segment< T, 2 > &src_segment, const triangle< T, 2 > &triangle, segment< T, 2 > &csegment)
 
template<typename T >
bool wykobi::clip (const segment< T, 2 > &src_segment, const quadix< T, 2 > &quadix, segment< T, 2 > &csegment)
 
template<typename T >
bool wykobi::clip (const segment< T, 2 > &src_segment, const circle< T > &circle, segment< T, 2 > &csegment)
 
template<typename T >
bool wykobi::clip (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2, rectangle< T > &crectangle)
 
template<typename T >
bool wykobi::clip (const box< T, 3 > &box1, const box< T, 3 > &box2, box< T, 3 > &cbox)
 
template<typename T >
wykobi::area (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
wykobi::area (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
wykobi::area (const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::area (const triangle< T, 3 > &triangle)
 
template<typename T >
wykobi::area (const quadix< T, 2 > &quadix)
 
template<typename T >
wykobi::area (const quadix< T, 3 > &quadix)
 
template<typename T >
wykobi::area (const rectangle< T > &rectangle)
 
template<typename T >
wykobi::area (const circle< T > &circle)
 
template<typename T >
wykobi::area (const polygon< T, 2 > &polygon)
 
template<typename T >
wykobi::perimeter (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
wykobi::perimeter (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
wykobi::perimeter (const triangle< T, 2 > &triangle)
 
template<typename T >
wykobi::perimeter (const triangle< T, 3 > &triangle)
 
template<typename T >
wykobi::perimeter (const quadix< T, 2 > &quadix)
 
template<typename T >
wykobi::perimeter (const quadix< T, 3 > &quadix)
 
template<typename T >
wykobi::perimeter (const rectangle< T > &rectangle)
 
template<typename T >
wykobi::perimeter (const circle< T > &circle)
 
template<typename T >
wykobi::perimeter (const polygon< T, 2 > &polygon)
 
template<typename T >
void wykobi::rotate (const T &rotation_angle, const T &x, const T &y, T &nx, T &ny)
 
template<typename T >
void wykobi::rotate (const T &rotation_angle, const T &x, const T &y, const T &ox, const T &oy, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::rotate (const T &rotation_angle, const point2d< T > &point)
 
template<typename T >
point2d< T > wykobi::rotate (const T &rotation_angle, const point2d< T > &point, const point2d< T > &opoint)
 
template<typename T >
segment< T, 2 > wykobi::rotate (const T &rotation_angle, const segment< T, 2 > &segment)
 
template<typename T >
segment< T, 2 > wykobi::rotate (const T &rotation_angle, const segment< T, 2 > &segment, const point2d< T > &opoint)
 
template<typename T >
triangle< T, 2 > wykobi::rotate (const T &rotation_angle, const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::rotate (const T &rotation_angle, const triangle< T, 2 > &triangle, const point2d< T > &opoint)
 
template<typename T >
quadix< T, 2 > wykobi::rotate (const T &rotation_angle, const quadix< T, 2 > &quadix)
 
template<typename T >
quadix< T, 2 > wykobi::rotate (const T &rotation_angle, const quadix< T, 2 > &quadix, const point2d< T > &opoint)
 
template<typename T >
polygon< T, 2 > wykobi::rotate (const T &rotation_angle, const polygon< T, 2 > &polygon)
 
template<typename T >
polygon< T, 2 > wykobi::rotate (const T &rotation_angle, const polygon< T, 2 > &polygon, const point2d< T > &opoint)
 
template<typename T >
void wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const T &x, const T &y, T &nx, T &ny)
 
template<typename T >
void wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const T &x, const T &y, const T &ox, const T &oy, T &nx, T &ny)
 
template<typename T >
point2d< T > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const point2d< T > &point)
 
template<typename T >
point2d< T > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const point2d< T > &point, const point2d< T > &opoint)
 
template<typename T >
segment< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const segment< T, 2 > &segment)
 
template<typename T >
segment< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const segment< T, 2 > &segment, const point2d< T > &opoint)
 
template<typename T >
triangle< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const triangle< T, 2 > &triangle)
 
template<typename T >
triangle< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const triangle< T, 2 > &triangle, const point2d< T > &opoint)
 
template<typename T >
quadix< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const quadix< T, 2 > &quadix)
 
template<typename T >
quadix< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const quadix< T, 2 > &quadix, const point2d< T > &opoint)
 
template<typename T >
polygon< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const polygon< T, 2 > &polygon)
 
template<typename T >
polygon< T, 2 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rotation_angle, const polygon< T, 2 > &polygon, const point2d< T > &opoint)
 
template<typename T >
void wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const T &x, const T &y, const T &z, T &nx, T &ny, T &nz)
 
template<typename T >
void wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const T &x, const T &y, const T &z, const T &ox, const T &oy, const T &oz, T &nx, T &ny, T &nz)
 
template<typename T >
point3d< T > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const point3d< T > &point)
 
template<typename T >
point3d< T > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const point3d< T > &point, const point3d< T > &opoint)
 
template<typename T >
segment< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const segment< T, 3 > &segment)
 
template<typename T >
segment< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const segment< T, 3 > &segment, const point3d< T > &opoint)
 
template<typename T >
triangle< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const triangle< T, 3 > &triangle)
 
template<typename T >
triangle< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const triangle< T, 3 > &triangle, const point3d< T > &opoint)
 
template<typename T >
quadix< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const quadix< T, 3 > &quadix)
 
template<typename T >
quadix< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const quadix< T, 3 > &quadix, const point3d< T > &opoint)
 
template<typename T >
polygon< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const polygon< T, 3 > &polygon)
 
template<typename T >
polygon< T, 3 > wykobi::fast_rotate (const trig_luts< T > &lut, const int rx, const int ry, const int rz, const polygon< T, 3 > &polygon, const point3d< T > &opoint)
 
template<typename T >
point2d< T > wykobi::translate (const T &dx, const T &dy, const point2d< T > &point)
 
template<typename T >
line< T, 2 > wykobi::translate (const T &dx, const T &dy, const line< T, 2 > &line)
 
template<typename T >
segment< T, 2 > wykobi::translate (const T &dx, const T &dy, const segment< T, 2 > &segment)
 
template<typename T >
triangle< T, 2 > wykobi::translate (const T &dx, const T &dy, const triangle< T, 2 > &triangle)
 
template<typename T >
quadix< T, 2 > wykobi::translate (const T &dx, const T &dy, const quadix< T, 2 > &quadix)
 
template<typename T >
rectangle< T > wykobi::translate (const T &dx, const T &dy, const rectangle< T > &rectangle)
 
template<typename T >
circle< T > wykobi::translate (const T &dx, const T &dy, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::translate (const T &dx, const T &dy, const polygon< T, 2 > &polygon)
 
template<typename T >
point2d< T > wykobi::translate (const T &delta, const point2d< T > &point)
 
template<typename T >
line< T, 2 > wykobi::translate (const T &delta, const line< T, 2 > &line)
 
template<typename T >
segment< T, 2 > wykobi::translate (const T &delta, const segment< T, 2 > &segment)
 
template<typename T >
triangle< T, 2 > wykobi::translate (const T &delta, const triangle< T, 2 > &triangle)
 
template<typename T >
quadix< T, 2 > wykobi::translate (const T &delta, const quadix< T, 2 > &quadix)
 
template<typename T >
rectangle< T > wykobi::translate (const T &delta, const rectangle< T > &rectangle)
 
template<typename T >
circle< T > wykobi::translate (const T &delta, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::translate (const T &delta, const polygon< T, 2 > &polygon)
 
template<typename T >
point2d< T > wykobi::translate (const vector2d< T > &v, const point2d< T > &point)
 
template<typename T >
line< T, 2 > wykobi::translate (const vector2d< T > &v, const line< T, 2 > &line)
 
template<typename T >
segment< T, 2 > wykobi::translate (const vector2d< T > &v, const segment< T, 2 > &segment)
 
template<typename T >
triangle< T, 2 > wykobi::translate (const vector2d< T > &v, const triangle< T, 2 > &triangle)
 
template<typename T >
quadix< T, 2 > wykobi::translate (const vector2d< T > &v, const quadix< T, 2 > &quadix)
 
template<typename T >
rectangle< T > wykobi::translate (const vector2d< T > &v, const rectangle< T > &rectangle)
 
template<typename T >
circle< T > wykobi::translate (const vector2d< T > &v, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::translate (const vector2d< T > &v, const polygon< T, 2 > &polygon)
 
template<typename T >
point3d< T > wykobi::translate (const T &dx, const T &dy, const T &dz, const point3d< T > &point)
 
template<typename T >
line< T, 3 > wykobi::translate (const T &dx, const T &dy, const T &dz, const line< T, 3 > &line)
 
template<typename T >
segment< T, 3 > wykobi::translate (const T &dx, const T &dy, const T &dz, const segment< T, 3 > &segment)
 
template<typename T >
triangle< T, 3 > wykobi::translate (const T &dx, const T &dy, const T &dz, const triangle< T, 3 > &triangle)
 
template<typename T >
quadix< T, 3 > wykobi::translate (const T &dx, const T &dy, const T &dz, const quadix< T, 3 > &quadix)
 
template<typename T >
box< T, 3 > wykobi::translate (const T &dx, const T &dy, const T &dz, const box< T, 3 > &box)
 
template<typename T >
sphere< T > wykobi::translate (const T &dx, const T &dy, const T &dz, const sphere< T > &sphere)
 
template<typename T >
polygon< T, 3 > wykobi::translate (const T &dx, const T &dy, const T &dz, const polygon< T, 3 > &polygon)
 
template<typename T >
point3d< T > wykobi::translate (const T &delta, const point3d< T > &point)
 
template<typename T >
line< T, 3 > wykobi::translate (const T &delta, const line< T, 3 > &line)
 
template<typename T >
segment< T, 3 > wykobi::translate (const T &delta, const segment< T, 3 > &segment)
 
template<typename T >
triangle< T, 3 > wykobi::translate (const T &delta, const triangle< T, 3 > &triangle)
 
template<typename T >
quadix< T, 3 > wykobi::translate (const T &delta, const quadix< T, 3 > &quadix)
 
template<typename T >
box< T, 3 > wykobi::translate (const T &delta, const box< T, 3 > &box)
 
template<typename T >
sphere< T > wykobi::translate (const T &delta, const sphere< T > &sphere)
 
template<typename T >
polygon< T, 3 > wykobi::translate (const T &delta, const polygon< T, 3 > &polygon)
 
template<typename T >
point3d< T > wykobi::translate (const vector3d< T > &v, const point3d< T > &point)
 
template<typename T >
line< T, 3 > wykobi::translate (const vector3d< T > &v, const line< T, 3 > &line)
 
template<typename T >
segment< T, 3 > wykobi::translate (const vector3d< T > &v, const segment< T, 3 > &segment)
 
template<typename T >
triangle< T, 3 > wykobi::translate (const vector3d< T > &v, const triangle< T, 3 > &triangle)
 
template<typename T >
quadix< T, 3 > wykobi::translate (const vector3d< T > &v, const quadix< T, 3 > &quadix)
 
template<typename T >
box< T, 3 > wykobi::translate (const vector3d< T > &v, const box< T, 3 > &box)
 
template<typename T >
sphere< T > wykobi::translate (const vector3d< T > &v, const sphere< T > &sphere)
 
template<typename T >
polygon< T, 3 > wykobi::translate (const vector3d< T > &v, const polygon< T, 3 > &polygon)
 
template<typename T >
point2d< T > wykobi::scale (const T &dx, const T &dy, const point2d< T > &point)
 
template<typename T >
line< T, 2 > wykobi::scale (const T &dx, const T &dy, const line< T, 2 > &line)
 
template<typename T >
segment< T, 2 > wykobi::scale (const T &dx, const T &dy, const segment< T, 2 > &segment)
 
template<typename T >
triangle< T, 2 > wykobi::scale (const T &dx, const T &dy, const triangle< T, 2 > &triangle)
 
template<typename T >
quadix< T, 2 > wykobi::scale (const T &dx, const T &dy, const quadix< T, 2 > &quadix)
 
template<typename T >
rectangle< T > wykobi::scale (const T &dx, const T &dy, const rectangle< T > &rectangle)
 
template<typename T >
circle< T > wykobi::scale (const T &dr, const circle< T > &circle)
 
template<typename T >
polygon< T, 2 > wykobi::scale (const T &dx, const T &dy, const polygon< T, 2 > &polygon)
 
template<typename T >
point3d< T > wykobi::scale (const T &dx, const T &dy, const T &dz, const point3d< T > &point)
 
template<typename T >
line< T, 3 > wykobi::scale (const T &dx, const T &dy, const T &dz, const line< T, 3 > &line)
 
template<typename T >
segment< T, 3 > wykobi::scale (const T &dx, const T &dy, const T &dz, const segment< T, 3 > &segment)
 
template<typename T >
triangle< T, 3 > wykobi::scale (const T &dx, const T &dy, const T &dz, const triangle< T, 3 > &triangle)
 
template<typename T >
quadix< T, 3 > wykobi::scale (const T &dx, const T &dy, const T &dz, const quadix< T, 3 > &quadix)
 
template<typename T >
box< T, 3 > wykobi::scale (const T &dx, const T &dy, const T &dz, const box< T, 3 > &box)
 
template<typename T >
sphere< T > wykobi::scale (const T &dr, const sphere< T > &sphere)
 
template<typename T >
polygon< T, 3 > wykobi::scale (const T &dx, const T &dy, const T &dz, const polygon< T, 3 > &polygon)
 
template<typename T >
rectangle< T > wykobi::aabb (const segment< T, 2 > &segment)
 
template<typename T >
rectangle< T > wykobi::aabb (const triangle< T, 2 > &triangle)
 
template<typename T >
rectangle< T > wykobi::aabb (const rectangle< T > &rectangle)
 
template<typename T >
rectangle< T > wykobi::aabb (const quadix< T, 2 > &quadix)
 
template<typename T >
rectangle< T > wykobi::aabb (const circle< T > &circle)
 
template<typename T >
rectangle< T > wykobi::aabb (const polygon< T, 2 > &polygon)
 
template<typename T >
void wykobi::aabb (const segment< T, 2 > &segment, T &x1, T &y1, T &x2, T &y2)
 
template<typename T >
void wykobi::aabb (const triangle< T, 2 > &triangle, T &x1, T &y1, T &x2, T &y2)
 
template<typename T >
void wykobi::aabb (const rectangle< T > &rectangle, T &x1, T &y1, T &x2, T &y2)
 
template<typename T >
void wykobi::aabb (const quadix< T, 2 > &quadix, T &x1, T &y1, T &x2, T &y2)
 
template<typename T >
void wykobi::aabb (const circle< T > &circle, T &x1, T &y1, T &x2, T &y2)
 
template<typename T >
void wykobi::aabb (const polygon< T, 2 > &polygon, T &x1, T &y1, T &x2, T &y2)
 
template<typename T >
box< T, 3 > wykobi::aabb (const segment< T, 3 > &segment)
 
template<typename T >
box< T, 3 > wykobi::aabb (const triangle< T, 3 > &triangle)
 
template<typename T >
box< T, 3 > wykobi::aabb (const box< T, 3 > &rectangle)
 
template<typename T >
box< T, 3 > wykobi::aabb (const quadix< T, 3 > &quadix)
 
template<typename T >
box< T, 3 > wykobi::aabb (const sphere< T > &sphere)
 
template<typename T >
box< T, 3 > wykobi::aabb (const polygon< T, 3 > &polygon)
 
template<typename T >
void wykobi::aabb (const segment< T, 3 > &segment, T &x1, T &y1, T &z1, T &x2, T &y2, T &z2)
 
template<typename T >
void wykobi::aabb (const triangle< T, 3 > &triangle, T &x1, T &y1, T &z1, T &x2, T &y2, T &z2)
 
template<typename T >
void wykobi::aabb (const box< T, 3 > &box, T &x1, T &y1, T &z1, T &x2, T &y2, T &z2)
 
template<typename T >
void wykobi::aabb (const quadix< T, 3 > &quadix, T &x1, T &y1, T &z1, T &x2, T &y2, T &z2)
 
template<typename T >
void wykobi::aabb (const sphere< T > &sphere, T &x1, T &y1, T &z1, T &x2, T &y2, T &z2)
 
template<typename T >
void wykobi::aabb (const polygon< T, 3 > &polygon, T &x1, T &y1, T &z1, T &x2, T &y2, T &z2)
 
template<typename T >
rectangle< T > wykobi::update_rectangle (const rectangle< T > &rectangle, point2d< T > &point)
 
template<typename T >
box< T, 3 > wykobi::update_box (const box< T, 3 > &box, point3d< T > &point)
 
template<typename T >
circle< T > wykobi::update_circle (const circle< T > &circle, point2d< T > &point)
 
template<typename T >
sphere< T > wykobi::update_sphere (const sphere< T > &sphere, point3d< T > &point)
 
template<typename T >
point2d< T > wykobi::generate_point_on_segment (const segment< T, 2 > &segment, const T &t)
 
template<typename T >
point3d< T > wykobi::generate_point_on_segment (const segment< T, 3 > &segment, const T &t)
 
template<typename T >
point2d< T > wykobi::generate_point_on_ray (const ray< T, 2 > &ray, const T &t)
 
template<typename T >
point3d< T > wykobi::generate_point_on_ray (const ray< T, 3 > &ray, const T &t)
 
template<typename T >
wykobi::generate_random_value (const T &range)
 
template<typename T >
point2d< T > wykobi::generate_random_point (const T &dx, const T &dy)
 
template<typename T >
point3d< T > wykobi::generate_random_point (const T &dx, const T &dy, const T &dz)
 
template<typename T >
point2d< T > wykobi::generate_random_point (const segment< T, 2 > &segment)
 
template<typename T >
point3d< T > wykobi::generate_random_point (const segment< T, 3 > &segment)
 
template<typename T >
point2d< T > wykobi::generate_random_point (const triangle< T, 2 > &triangle)
 
template<typename T >
point3d< T > wykobi::generate_random_point (const triangle< T, 3 > &triangle)
 
template<typename T >
point2d< T > wykobi::generate_random_point (const quadix< T, 2 > &quadix)
 
template<typename T >
point3d< T > wykobi::generate_random_point (const quadix< T, 3 > &quadix)
 
template<typename T >
point2d< T > wykobi::generate_random_point (const rectangle< T > &rectangle)
 
template<typename T >
point3d< T > wykobi::generate_random_point (const box< T, 3 > &box)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const T &x1, const T &y1, const T &x2, const T &y2, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const rectangle< T > &rectangle, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const box< T, 3 > &box, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const segment< T, 2 > &segment, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const segment< T, 3 > &segment, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const triangle< T, 2 > &triangle, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const triangle< T, 3 > &triangle, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const quadix< T, 2 > &quadix, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const quadix< T, 3 > &quadix, const std::size_t &point_count, OutputIterator out)
 
template<typename T , typename OutputIterator >
void wykobi::generate_random_points (const circle< T > &circle, const std::size_t &point_count, OutputIterator out)
 
template<typename T >
void wykobi::generate_random_object (const T &x1, const T &y1, const T &x2, const T &y2, segment< T, 2 > &segment)
 
template<typename T >
void wykobi::generate_random_object (const T &x1, const T &y1, const T &x2, const T &y2, rectangle< T > &rectangle)
 
template<typename T >
void wykobi::generate_random_object (const T &x1, const T &y1, const T &x2, const T &y2, triangle< T, 2 > &triangle)
 
template<typename T >
void wykobi::generate_random_object (const T &x1, const T &y1, const T &x2, const T &y2, quadix< T, 2 > &quadix)
 
template<typename T >
void wykobi::generate_random_object (const T &x1, const T &y1, const T &x2, const T &y2, circle< T > &circle)
 
template<typename T >
void wykobi::generate_random_object (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, box< T, 3 > &box)
 
template<typename T >
triangle< T, 2 > wykobi::right_shift (const triangle< T, 2 > &triangle, const std::size_t &shift)
 
template<typename T >
triangle< T, 3 > wykobi::right_shift (const triangle< T, 3 > &triangle, const std::size_t &shift)
 
template<typename T >
quadix< T, 2 > wykobi::right_shift (const quadix< T, 2 > &quadix, const std::size_t &shift)
 
template<typename T >
quadix< T, 3 > wykobi::right_shift (const quadix< T, 3 > &quadix, const std::size_t &shift)
 
template<typename T >
wykobi::vector_norm (const vector2d< T > &v)
 
template<typename T >
wykobi::vector_norm (const vector3d< T > &v)
 
template<typename T >
vector2d< T > wykobi::normalize (const vector2d< T > &v)
 
template<typename T >
vector3d< T > wykobi::normalize (const vector3d< T > &v)
 
template<typename T >
vector2d< T > wykobi::perpendicular (const vector2d< T > &v)
 
template<typename T >
vector3d< T > wykobi::perpendicular (const vector3d< T > &v)
 
template<typename T >
vector2d< T > wykobi::operator+ (const vector2d< T > &v1, const vector2d< T > &v2)
 
template<typename T >
vector3d< T > wykobi::operator+ (const vector3d< T > &v1, const vector3d< T > &v2)
 
template<typename T >
vector2d< T > wykobi::operator- (const vector2d< T > &v1, const vector2d< T > &v2)
 
template<typename T >
vector3d< T > wykobi::operator- (const vector3d< T > &v1, const vector3d< T > &v2)
 
template<typename T >
wykobi::operator* (const vector2d< T > &v1, const vector2d< T > &v2)
 
template<typename T >
vector3d< T > wykobi::operator* (const vector3d< T > &v1, const vector3d< T > &v2)
 
template<typename T >
wykobi::dot_product (const vector2d< T > &v1, const vector2d< T > &v2)
 
template<typename T >
wykobi::dot_product (const vector3d< T > &v1, const vector3d< T > &v2)
 
template<typename T >
wykobi::perpendicular_product (const vector2d< T > &v1, const vector2d< T > &v2)
 
template<typename T >
wykobi::triple_product (const vector3d< T > &v1, const vector3d< T > &v2, const vector3d< T > &v3)
 
template<typename T >
vector2d< T > wykobi::operator* (const vector2d< T > &v1, const T &scale)
 
template<typename T >
vector3d< T > wykobi::operator* (const vector3d< T > &v1, const T &scale)
 
template<typename T >
vector2d< T > wykobi::operator* (const T &scale, const vector2d< T > &v1)
 
template<typename T >
vector3d< T > wykobi::operator* (const T &scale, const vector3d< T > &v1)
 
template<typename T >
vector2d< T > wykobi::operator/ (const vector2d< T > &v1, const T &scale)
 
template<typename T >
vector3d< T > wykobi::operator/ (const vector3d< T > &v1, const T &scale)
 
template<typename T >
point2d< T > wykobi::operator* (const point2d< T > &point, const T &scale)
 
template<typename T >
point3d< T > wykobi::operator* (const point3d< T > &point, const T &scale)
 
template<typename T >
point2d< T > wykobi::operator* (const T &scale, const point2d< T > &point)
 
template<typename T >
point3d< T > wykobi::operator* (const T &scale, const point3d< T > &point)
 
template<typename T >
point2d< T > wykobi::operator+ (const point2d< T > &point, const vector2d< T > &v)
 
template<typename T >
point2d< T > wykobi::operator+ (const vector2d< T > &v, const point2d< T > &point)
 
template<typename T >
point3d< T > wykobi::operator+ (const point3d< T > &point, const vector3d< T > &v)
 
template<typename T >
point3d< T > wykobi::operator+ (const vector3d< T > &v, const point3d< T > &point)
 
template<typename T >
vector2d< T > wykobi::operator- (const point2d< T > &p1, const point2d< T > &p2)
 
template<typename T >
vector3d< T > wykobi::operator- (const point3d< T > &p1, const point3d< T > &p2)
 
template<typename T >
point2d< T > wykobi::operator+ (const point2d< T > &p1, const point2d< T > &p2)
 
template<typename T >
point3d< T > wykobi::operator+ (const point3d< T > &p1, const point3d< T > &p2)
 
template<typename T >
bool wykobi::is_equal (const T &val1, const T &val2, const T &epsilon)
 
template<typename T >
bool wykobi::is_equal (const point2d< T > &point1, const point2d< T > &point2, const T &epsilon)
 
template<typename T >
bool wykobi::is_equal (const point3d< T > &point1, const point3d< T > &point2, const T &epsilon)
 
template<typename T >
bool wykobi::is_equal (const T &val1, const T &val2)
 
template<typename T >
bool wykobi::is_equal (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
bool wykobi::is_equal (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
bool wykobi::is_equal (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
bool wykobi::is_equal (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
bool wykobi::is_equal (const box< T, 3 > &box1, const box< T, 3 > &box2)
 
template<typename T >
bool wykobi::is_equal (const sphere< T > &sphere1, const sphere< T > &sphere2)
 
template<typename T >
bool wykobi::not_equal (const T &val1, const T &val2, const T &epsilon)
 
template<typename T >
bool wykobi::not_equal (const point2d< T > &point1, const point2d< T > &point2, const T &epsilon)
 
template<typename T >
bool wykobi::not_equal (const point3d< T > &point1, const point3d< T > &point2, const T &epsilon)
 
template<typename T >
bool wykobi::not_equal (const T &val1, const T &val2)
 
template<typename T >
bool wykobi::not_equal (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
bool wykobi::not_equal (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
bool wykobi::not_equal (const rectangle< T > &rectangle1, const rectangle< T > &rectangle2)
 
template<typename T >
bool wykobi::not_equal (const circle< T > &circle1, const circle< T > &circle2)
 
template<typename T >
bool wykobi::not_equal (const box< T, 3 > &box1, const box< T, 3 > &box2)
 
template<typename T >
bool wykobi::not_equal (const sphere< T > &sphere1, const sphere< T > &sphere2)
 
template<typename T >
bool wykobi::less_than_or_equal (const T &val1, const T &val2, const T &epsilon)
 
template<typename T >
bool wykobi::less_than_or_equal (const T &val1, const T &val2)
 
template<typename T >
bool wykobi::greater_than_or_equal (const T &val1, const T &val2, const T &epsilon)
 
template<typename T >
bool wykobi::greater_than_or_equal (const T &val1, const T &val2)
 
template<typename T >
bool wykobi::operator< (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
bool wykobi::operator< (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
bool wykobi::operator> (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
bool wykobi::operator> (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
bool wykobi::operator== (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
bool wykobi::operator== (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
bool wykobi::is_degenerate (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
bool wykobi::is_degenerate (const segment< T, 2 > &segment)
 
template<typename T >
bool wykobi::is_degenerate (const line< T, 2 > &line)
 
template<typename T >
bool wykobi::is_degenerate (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
bool wykobi::is_degenerate (const segment< T, 3 > &segment)
 
template<typename T >
bool wykobi::is_degenerate (const line< T, 3 > &line)
 
template<typename T >
bool wykobi::is_degenerate (const triangle< T, 2 > &triangle)
 
template<typename T >
bool wykobi::is_degenerate (const triangle< T, 3 > &triangle)
 
template<typename T >
bool wykobi::is_degenerate (const quadix< T, 2 > &quadix)
 
template<typename T >
bool wykobi::is_degenerate (const quadix< T, 3 > &quadix)
 
template<typename T >
bool wykobi::is_degenerate (const rectangle< T > &rectangle)
 
template<typename T >
bool wykobi::is_degenerate (const circle< T > &circle)
 
template<typename T >
bool wykobi::is_degenerate (const sphere< T > &sphere)
 
template<typename T >
bool wykobi::is_degenerate (const circular_arc< T > &arc)
 
template<typename T >
point2d< T > wykobi::degenerate_point2d ()
 
template<typename T >
point3d< T > wykobi::degenerate_point3d ()
 
template<typename T >
vector2d< T > wykobi::degenerate_vector2d ()
 
template<typename T >
vector3d< T > wykobi::degenerate_vector3d ()
 
template<typename T >
ray< T, 2 > wykobi::degenerate_ray2d ()
 
template<typename T >
ray< T, 3 > wykobi::degenerate_ray3d ()
 
template<typename T >
line< T, 2 > wykobi::degenerate_line2d ()
 
template<typename T >
line< T, 3 > wykobi::degenerate_line3d ()
 
template<typename T >
segment< T, 2 > wykobi::degenerate_segment2d ()
 
template<typename T >
segment< T, 3 > wykobi::degenerate_segment3d ()
 
template<typename T >
triangle< T, 2 > wykobi::degenerate_triangle2d ()
 
template<typename T >
triangle< T, 3 > wykobi::degenerate_triangle3d ()
 
template<typename T >
quadix< T, 2 > wykobi::degenerate_quadix2d ()
 
template<typename T >
quadix< T, 3 > wykobi::degenerate_quadix3d ()
 
template<typename T >
rectangle< T > wykobi::degenerate_rectangle ()
 
template<typename T >
circle< T > wykobi::degenerate_circle ()
 
template<typename T >
sphere< T > wykobi::degenerate_sphere ()
 
template<typename T >
point2d< T > wykobi::positive_infinite_point2d ()
 
template<typename T >
point2d< T > wykobi::negative_infinite_point2d ()
 
template<typename T >
point3d< T > wykobi::positive_infinite_point3d ()
 
template<typename T >
point3d< T > wykobi::negative_infinite_point3d ()
 
template<typename T >
void wykobi::swap (point2d< T > &point1, point2d< T > &point2)
 
template<typename T >
void wykobi::swap (point3d< T > &point1, point3d< T > &point2)
 
template<typename T >
point2d< T > wykobi::make_point (const T &x, const T &y)
 
template<typename T >
point3d< T > wykobi::make_point (const T &x, const T &y, const T &z)
 
template<typename T >
point2d< T > wykobi::make_point (const point3d< T > point)
 
template<typename T >
point3d< T > wykobi::make_point (const point2d< T > point, const T &z=T(0.0))
 
template<typename T >
point2d< T > wykobi::make_point (const circle< T > &circle)
 
template<typename T >
point3d< T > wykobi::make_point (const sphere< T > &sphere)
 
template<typename T >
vector2d< T > wykobi::make_vector (const T &x, const T &y)
 
template<typename T >
vector3d< T > wykobi::make_vector (const T &x, const T &y, const T &z)
 
template<typename T >
vector2d< T > wykobi::make_vector (const vector3d< T > v)
 
template<typename T >
vector3d< T > wykobi::make_vector (const vector2d< T > v, const T &z=T(0.0))
 
template<typename T >
vector2d< T > wykobi::make_vector (const point2d< T > point)
 
template<typename T >
vector3d< T > wykobi::make_vector (const point3d< T > point)
 
template<typename T >
ray< T, 2 > wykobi::make_ray (const T &ox, const T &oy, const T &dir_x, const T &dir_y)
 
template<typename T >
ray< T, 3 > wykobi::make_ray (const T &ox, const T &oy, const T &oz, const T &dir_x, const T &dir_y, const T &dir_z)
 
template<typename T >
ray< T, 2 > wykobi::make_ray (const point2d< T > &origin, const vector2d< T > &direction)
 
template<typename T >
ray< T, 3 > wykobi::make_ray (const point3d< T > &origin, const vector3d< T > &direction)
 
template<typename T >
ray< T, 2 > wykobi::make_ray (const point2d< T > &origin, const T &bearing)
 
template<typename T >
curve_point< T, 2 > wykobi::make_curve_point (const T &x, const T &y, const T &t)
 
template<typename T >
curve_point< T, 3 > wykobi::make_curve_point (const T &x, const T &y, const T &z, const T &t)
 
template<typename T >
curve_point< T, 2 > wykobi::make_curve_point (const point2d< T > &point, const T &t)
 
template<typename T >
curve_point< T, 3 > wykobi::make_curve_point (const point3d< T > &point, const T &t)
 
template<typename T >
segment< T, 2 > wykobi::make_segment (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
segment< T, 3 > wykobi::make_segment (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
segment< T, 2 > wykobi::make_segment (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
segment< T, 3 > wykobi::make_segment (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
segment< T, 2 > wykobi::make_segment (const line< T, 2 > &line)
 
template<typename T >
segment< T, 3 > wykobi::make_segment (const line< T, 3 > &line)
 
template<typename T >
line< T, 2 > wykobi::make_line (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
line< T, 3 > wykobi::make_line (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
line< T, 2 > wykobi::make_line (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
line< T, 3 > wykobi::make_line (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
line< T, 2 > wykobi::make_line (const segment< T, 2 > &segment)
 
template<typename T >
line< T, 3 > wykobi::make_line (const segment< T, 3 > &segment)
 
template<typename T >
line< T, 2 > wykobi::make_line (const ray< T, 2 > &ray)
 
template<typename T >
line< T, 3 > wykobi::make_line (const ray< T, 3 > &ray)
 
template<typename T >
rectangle< T > wykobi::make_rectangle (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
rectangle< T > wykobi::make_rectangle (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
box< T, 3 > wykobi::make_box (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
 
template<typename T >
box< T, 3 > wykobi::make_box (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
triangle< T, 2 > wykobi::make_triangle (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
 
template<typename T >
triangle< T, 3 > wykobi::make_triangle (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
triangle< T, 2 > wykobi::make_triangle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
triangle< T, 3 > wykobi::make_triangle (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
quadix< T, 2 > wykobi::make_quadix (const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
 
template<typename T >
quadix< T, 3 > wykobi::make_quadix (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3, const T &x4, const T &y4, const T &z4)
 
template<typename T >
quadix< T, 2 > wykobi::make_quadix (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3, const point2d< T > &point4)
 
template<typename T >
quadix< T, 3 > wykobi::make_quadix (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3, const point3d< T > &point4)
 
template<typename T >
quadix< T, 2 > wykobi::make_quadix (const T &x1, const T &y1, const T &x2, const T &y2)
 
template<typename T >
quadix< T, 2 > wykobi::make_quadix (const rectangle< T > &rectangle)
 
template<typename T >
circle< T > wykobi::make_circle (const T &x, const T &y, const T &radius)
 
template<typename T >
circle< T > wykobi::make_circle (const point2d< T > &point, const T &radius)
 
template<typename T >
circle< T > wykobi::make_circle (const point2d< T > &point1, const point2d< T > &point2)
 
template<typename T >
circle< T > wykobi::make_circle (const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
 
template<typename T >
circle< T > wykobi::make_circle (const triangle< T, 2 > &triangle)
 
template<typename T >
sphere< T > wykobi::make_sphere (const T &x, const T &y, const T &z, const T &radius)
 
template<typename T >
sphere< T > wykobi::make_sphere (const point3d< T > &point, const T &radius)
 
template<typename T >
sphere< T > wykobi::make_sphere (const point3d< T > &point1, const point3d< T > &point2)
 
template<typename T >
plane< T, 3 > wykobi::make_plane (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &x3, const T &y3, const T &z3)
 
template<typename T >
plane< T, 3 > wykobi::make_plane (const T &px, const T &py, const T &pz, const T &nx, const T &ny, const T &nz)
 
template<typename T >
plane< T, 3 > wykobi::make_plane (const point3d< T > &point1, const point3d< T > &point2, const point3d< T > &point3)
 
template<typename T >
plane< T, 3 > wykobi::make_plane (const point3d< T > &point, const vector3d< T > &normal)
 
template<typename T >
plane< T, 3 > wykobi::make_plane (const triangle< T, 3 > &triangle)
 
template<typename T , std::size_t D, typename InputIterator >
polygon< T, D > wykobi::make_polygon (const InputIterator begin, const InputIterator end)
 
template<typename T >
polygon< T, 2 > wykobi::make_polygon (const std::vector< point2d< T > > &point_list)
 
template<typename T >
polygon< T, 3 > wykobi::make_polygon (const std::vector< point3d< T > > &point_list)
 
template<typename T >
polygon< T, 2 > wykobi::make_polygon (const triangle< T, 2 > &triangle)
 
template<typename T >
polygon< T, 2 > wykobi::make_polygon (const quadix< T, 2 > &quadix)
 
template<typename T >
polygon< T, 2 > wykobi::make_polygon (const rectangle< T > &rectangle)
 
template<typename T >
polygon< T, 2 > wykobi::make_polygon (const circle< T > &circle, const unsigned int point_count=360)
 

Variables

const int wykobi::RightHandSide = -1
 
const int wykobi::LeftHandSide = +1
 
const int wykobi::Clockwise = -1
 
const int wykobi::CounterClockwise = +1
 
const int wykobi::CollinearOrientation = 0
 
const int wykobi::AboveOrientation = +1
 
const int wykobi::BelowOrientation = -1
 
const int wykobi::CoplanarOrientation = 0
 
const int wykobi::PointInside = +1
 
const int wykobi::PointOutside = -1
 
const int wykobi::Cocircular = 0
 
const int wykobi::Cospherical = 0
 
const int wykobi::CLIP_BOTTOM = 1
 
const int wykobi::CLIP_TOP = 2
 
const int wykobi::CLIP_LEFT = 4
 
const int wykobi::CLIP_RIGHT = 8
 

Macro Definition Documentation

◆ WYKOBI

#define WYKOBI