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 implemented in C++.
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.
- GNU Compiler Collection (3.1+)
- Intel® C++ Compiler (8.x+)
- Clang/LLVM (1.1+)
- PGI C++ (10.x+)
- Microsoft Visual Studio C++ Compiler (7.1+)
- IBM XL C/C++ (9.x+)
- C++ Builder (XE4+)
http://www.wykobi.com/tutorial.html
The Wykobi computational geometry library and all its components are supplied under the terms of the MIT License. The contents of the Wykobi library and its components may not be copied or disclosed except in accordance with the terms of the MIT License.
- Pairwise 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 against - 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
- Convex Hull - Graham scan, Jarvis march, Melkman
- Minimum Bounding Ball - Randomized, Ritter and naive
- Polygon Clipping - Sutherland Hodgman, Polygon reordering
- Polygon Triangulation - Ear Clipping Algorithm For Simple Polygons
- Statistical - Isotropic normalization, Covariance matrix, Eigen values and vectors
- Group Intersections - Naive pairwise intersections
- Anticevian 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 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
- Trilateration
- Triangle median
- Triangle symmedian
- and plenty more...