Geo4J is a geometry library for Java. It is suitable for 2D- and 3D-graphics.
This project will supersede the old Math4J project and the Geometry APIs in the Dayflower project.
To clone this repository and build the project using Apache Ant, you can type the following in Git Bash.
git clone https://github.com/macroing/Geo4J.git
cd Geo4J
antorg.macroing.geo4j.bvprovides the Bounding Volume API.org.macroing.geo4j.bv.aabbprovides the Bounding Volume Axis Aligned Bounding Box API.org.macroing.geo4j.bv.bsprovides the Bounding Volume Bounding Sphere API.org.macroing.geo4j.bv.hierarchyprovides the Bounding Volume Hierarchy API.org.macroing.geo4j.bv.ibvprovides the Bounding Volume Infinite Bounding Volume API.org.macroing.geo4j.bv.readerprovides the Bounding Volume Reader API.org.macroing.geo4j.commonprovides the Common API.org.macroing.geo4j.quaternionprovides the Quaternion API.org.macroing.geo4j.matrixprovides the Matrix API.org.macroing.geo4j.mcprovides the Morton Code API.org.macroing.geo4j.onbprovides the Orthonormal Basis API.org.macroing.geo4j.rayprovides the Ray API.org.macroing.geo4j.shapeprovides the Shape API.org.macroing.geo4j.shape.circleprovides the Shape Circle API.org.macroing.geo4j.shape.coneprovides the Shape Cone API.org.macroing.geo4j.shape.csprovides the Shape Compound Shape API.org.macroing.geo4j.shape.curveprovides the Shape Curve API.org.macroing.geo4j.shape.cylinderprovides the Shape Cylinder API.org.macroing.geo4j.shape.diskprovides the Shape Disk API.org.macroing.geo4j.shape.hyperboloidprovides the Shape Hyperboloid API.org.macroing.geo4j.shape.lsprovides the Shape Line Segment API.org.macroing.geo4j.shape.paraboloidprovides the Shape Paraboloid API.org.macroing.geo4j.shape.planeprovides the Shape Plane API.org.macroing.geo4j.shape.polygonprovides the Shape Polygon API.org.macroing.geo4j.shape.rcprovides the Shape Rectangular Cuboid API.org.macroing.geo4j.shape.readerprovides the Shape Reader API.org.macroing.geo4j.shape.rectangleprovides the Shape Rectangle API.org.macroing.geo4j.shape.sphereprovides the Shape Sphere API.org.macroing.geo4j.shape.torusprovides the Shape Torus API.org.macroing.geo4j.shape.triangleprovides the Shape Triangle API.
The documentation for this library can be found in the Javadocs that are generated when building it using Apache Ant.
The following table describes the different APIs and their current status in the library.
| Name | Javadoc | Unit Test | Package |
|---|---|---|---|
| Geo4J | 100.0% | 57.5% | org.macroing.geo4j |
| Bounding Volume API | 100.0% | 100.0% | org.macroing.geo4j.bv |
| Bounding Volume Axis Aligned Bounding Box API | 100.0% | 100.0% | org.macroing.geo4j.bv.aabb |
| Bounding Volume Bounding Sphere API | 100.0% | 100.0% | org.macroing.geo4j.bv.bs |
| Bounding Volume Hierarchy API | 100.0% | 0.0% | org.macroing.geo4j.bv.hierarchy |
| Bounding Volume Infinite Bounding Volume API | 100.0% | 100.0% | org.macroing.geo4j.bv.ibv |
| Bounding Volume Reader API | 100.0% | 0.0% | org.macroing.geo4j.bv.reader |
| Common API | 100.0% | 100.0% | org.macroing.geo4j.common |
| Matrix API | 100.0% | 100.0% | org.macroing.geo4j.matrix |
| Morton Code API | 100.0% | 0.0% | org.macroing.geo4j.mc |
| Orthonormal Basis API | 100.0% | 100.0% | org.macroing.geo4j.onb |
| Quaternion API | 100.0% | 69.5% | org.macroing.geo4j.quaternion |
| Ray API | 100.0% | 100.0% | org.macroing.geo4j.ray |
| Shape API | 100.0% | 41.7% | org.macroing.geo4j.shape |
| Shape Circle API | 100.0% | 100.0% | org.macroing.geo4j.shape.circle |
| Shape Cone API | 100.0% | 36.8% | org.macroing.geo4j.shape.cone |
| Shape Compound Shape API | 100.0% | 0.0% | org.macroing.geo4j.shape.cs |
| Shape Curve API | 100.0% | 0.0% | org.macroing.geo4j.shape.curve |
| Shape Cylinder API | 100.0% | 46.1% | org.macroing.geo4j.shape.cylinder |
| Shape Disk API | 100.0% | 85.7% | org.macroing.geo4j.shape.disk |
| Shape Hyperboloid API | 100.0% | 0.0% | org.macroing.geo4j.shape.hyperboloid |
| Shape Line Segment API | 100.0% | 97.6% | org.macroing.geo4j.shape.ls |
| Shape Paraboloid API | 100.0% | 39.4% | org.macroing.geo4j.shape.paraboloid |
| Shape Plane API | 100.0% | 100.0% | org.macroing.geo4j.shape.plane |
| Shape Polygon API | 100.0% | 43.8% | org.macroing.geo4j.shape.polygon |
| Shape Reader API | 100.0% | 0.0% | org.macroing.geo4j.shape.reader |
| Shape Rectangular Cuboid API | 100.0% | 0.0% | org.macroing.geo4j.shape.rc |
| Shape Rectangle API | 100.0% | 69.0% | org.macroing.geo4j.shape.rectangle |
| Shape Sphere API | 100.0% | 49.4% | org.macroing.geo4j.shape.sphere |
| Shape Torus API | 100.0% | 18.0% | org.macroing.geo4j.shape.torus |
| Shape Triangle API | 100.0% | 25.0% | org.macroing.geo4j.shape.triangle |
This library has not reached version 1.0.0 and been released to the public yet. Therefore, you can expect that backward incompatible changes are likely to occur between commits. When this library reaches version 1.0.0, it will be tagged and available on the "releases" page. At that point, backward incompatible changes should only occur when a new major release is made.