Wykobi is an efficient, robust and simple to use multi-platform 2D/3D computational geometry library. Wykobi provides a concise, predictable, and deterministic interface for geometric primitives and complex geometric routines using and conforming to the ISO/IEC 14882:2003 C++ language specification.
The design and structure of Wykobi lends itself to easy and seamless integration into projects of any scale that require a robust yet efficient 2D/3D computational geometry back-end.
General FeaturesPairwise intersections in 2D/3D between - Rays, Segments, Lines, Planes, Triangles, Quadii, Circles, Spheres, Rectangles, Boxes, Polygons, Cubic and Quadratic beziers Point inclusion test - Triangle, Rectangle, Circle, Quadix, Sphere and Convex\Concave Polygon region, In Circle and In Sphere Closest point from a point on - Segment, Line, Triangle, Quadix, Circle, Sphere and AABB Closest point on a circle/sphere from a 2D/3D segment or line Mirroring 2D/3D (reflection) about an axis or plane - Point, Segment, Line, Triangle, Quadix, circle, Sphere, Polygon Nonsymmetric mirroring 2D/3D (reflection) about an axis or plane - Point, Segment, Line, Triangle, Quadix, Circle, Sphere, Polygon Euclidean, Ley, Manhattan, Chebyshev and inverse Chebyshev pairwise distance - Rays, Segments, Lines, Planes, Triangles, Quadii, Circles, Spheres, Rectangles, Boxes, Cubic and Quadratic beziers Minkowski pairwise sum and differences between - Rays, Segments, Triangles, Quadii, Circles, Spheres, Rectangles, Boxes and Polygons Clipping of segments agains - Rectangles, Triangles, Quadii, Boxes and Circles Area Calculation - Triangle, Quadix, Rectangle, Circle and Polygon Perimeter Calculation - Triangle, Quadix, Rectangle, Circle and Polygon Generate random points within - AABB, Triangle, Quadix, Circle, Pentagon, Hexagon, Heptagon and Octagon Projection along linear path - Point, Segment, Triangle, Quadix, Circle, Sphere and Polygon Axis aligned bounding boxes - Segments, Triangles, Quadii, Circles, Sphere and polygons Centering of 2D geometric primitives at a specified location 2D/3D Vector addition, subtraction, normalization, magnitude, dot product, cross product calculation 2D/3D Rotations, fast rotations, translations, scaling and shear Point of reflection Quadratic and Cubic Bezier curve creation (2D/3D) Quadratic and Cubic Bezier curve length calculation Polygon approximation of supported geometrical objects Conversions between Cartesian and Barycentric coordiante systems Orientation, Collinear, Coplanar Perpendicular and Parallel primitives Vertex and relative Cartesian angle calculation AlgorithmsConvex Hull - Graham scan, Jarvis march, Melkman Minimum Bounding Ball - Randomized, Ritter and naive Polygon Clipping - Sutherland Hodgman, Polygon re-ording Polygon Triangulation - Ear Clipping Algorithm For Simple Polygons Statistical - Isotropic normalization, Covariance matrix, Eigen values and vectors Group Intersections - Naive pairwise intersections Special triangles, Circles and CentersAnticevian triangle Anticomplementary triangle Antipedal triangle Antipodal points Cevian triangle Circle tangent points Circum-center Circum-circle Confined triangle median Contact triangle Cyclocevian conjugate Equilateral triangle Euler Line Excentral triangle Exmedian point External triangle bisector Extouch triangle Feuerbach point and triangle Incentral triangle Incenter Inscribed circle Inner and outer napoleon triangles Inner and outer vecten vecten triangles Inverse Point Inverse Circle and Sphere Isogonal conjugate Isosceles triangle Medial triangle Morley triangle Orthocenter Orthic triangle Pedal trianglepoint Perspectrix between 2D/3D triangles Symmedial triangle Symmedian point Torricelli point Triangle median Triangle symmedian and plenty more...
Compatible C++ CompilersGCC 4.0+ Intel C++ Compiler 9.0+ Microsoft Visual C++ 8.0+ Comeau C/C++ 4.1+ For more information please visit: http://www.wykobi.com