
              Apache Commons Geometry 1.0 RELEASE NOTES

The Apache Commons Geometry team is pleased to announce the release of
commons-geometry-parent-1.0

The Apache Commons Geometry project provides geometric types and utilities.

This is the first major release of Apache Commons Geometry.
Apache Commons Geometry 1.0 contains the following library modules:
 commons-geometry-core (requires Java 8+)
 commons-geometry-euclidean (requires Java 8+)
 commons-geometry-spherical (requires Java 8+)
 commons-geometry-io-core (requires Java 8+)
 commons-geometry-io-euclidean (requires Java 8+)

Changes in this version include:

New features:
o GEOMETRY-118:  Add coordinate-specific transform methods to AffineTransformMatrixXD classes,
        e.g. "applyX", "applyY", "applyZ".
o GEOMETRY-95:  Add solid geometry tutorial.
o GEOMETRY-120:  Add SimpleTriangleMeshBuilder.addFace(int[]) method as alternative to
        addFace(int, int, int).
o GEOMETRY-117:  Add shear methods to AffineTransformMatrix2D. Thanks to Christoph Läubrich.
o GEOMETRY-119:  Add VectorXD.normalizeOrNull() methods so that callers can detect normalization
        failures without needing to catch an exception.
o GEOMETRY-115:  Add modules for IO functionality: commons-geometry-io-core,
        commons-geometry-io-euclidean.
o GEOMETRY-108:  Add BoundaryList interface and implementation classes.

Fixed Bugs:
o GEOMETRY-116:  Fix incorrect OSGi headers. Reported by Christoph Läubrich.

Changes:
o GEOMETRY-138:  Do not use checked exceptions in IO modules.
o GEOMETRY-13:  Use Norms.EUCLIDEAN from Commons Numbers to compute 3D Euclidean norm values.
o GEOMETRY-126:  Replace VectorXD.linearCombination methods with VectorXD.Sum classes. Use
        Sum class from Commons Numbers for computing internal linear combinations.
o GEOMETRY-124:  Replace DoublePrecisionContext with Precision.DoubleEquivalence from
        Commons Numbers.
o GEOMETRY-109:  Rename the BoundarySourceXX.from() static factory methods to "of" to better
        match the JDK's Stream.of() method.
o GEOMETRY-103:  Migrate unit tests to JUnit 5. Thanks to Arturo Bernal.


For complete information on Apache Commons Geometry, including instructions on how to submit
        bug reports, patches, or suggestions for improvement, see the Apache Commons Geometry
        website:

https://commons.apache.org/proper/commons-geometry/


=============================================================================

              Apache Commons Geometry 1.0-beta1 RELEASE NOTES

The Apache Commons Geometry team is pleased to announce the release of
Apache Commons Geometry 1.0-beta1

The Apache Commons Geometry project provides geometric types and utilities.

This is a beta release of Apache Commons Geometry. No guarantees are made regarding the stability
of the API or compatibility with future releases.

Apache Commons Geometry 1.0-beta1 contains the following library modules:
 commons-geometry-core (requires Java 8+)
 commons-geometry-euclidean (requires Java 8+)
 commons-geometry-spherical (requires Java 8+)
 commons-geometry-hull (requires Java 8+)
 commons-geometry-enclosing (requires Java 8+)

No changes defined in this version.

For complete information on Apache Commons Geometry, including instructions on how to submit bug
reports, patches, or suggestions for improvement, see the Apache Commons Geometry website:

https://commons.apache.org/proper/commons-geometry/
