Release notes
Pre-release
Pre-release
SylvainBertrand
released this
05 Jul 15:47
·
155 commits
to master
since this release
This release contains major changes, some are non backward compatible changes to the API.
New types: EuclidGeometry
and EuclidFrameGeometry
:
EuclidGeometry
: new base interface for almost all Euclid types.- Cleaned up the "equals" methods implementations for all object:
EuclidGeometry.equals(EuclidGeometry)
: now considersDouble.NaN == Double.NaN
in the way asDouble.equals(Object)
do.EuclidGeometry.epsilonEquals(EuclidGeometry, double)
: now returnsfalse
if the argument isnull
.EuclidGeometry.geometricallyEquals(EuclidGeometry, double)
: now returnsfalse
if the argument isnull
.
EuclidFrameGeometry
: equivalent ofEuclidGeometry
for representing a frame geometry object:EuclidFrameGeometry.geometricallyEquals(EuclidFrameGeometry, double)
: now returnsfalse
if the argument is is not expressed in the same reference frame.
- Simplified the test tools:
EuclidCoreTestTools
has new assertions for the generic typeEuclidGeometry
, as a result, the assertion methods for sub-types have been removed across the different test tools classes unless they perform additional information given the type like for instance computing the error.EuclidGeometryTools
has been deleted. UseEuclidCoreTestTools
assertions with theEuclidGeometry
.EuclidShapeTestTools
: most assertion methods have been removed, useEuclidCoreTestTools
assertions with theEuclidGeometry
.
Changes for 3D orientations
Orientation3DReadOnly
now comes with:angle()
andangle(boolean)
for computing the orientation angle magnitude.distance(Orientation3DReadOnly, boolean)
for computing the angular distance between 2 orientations. While this work for any 2 types of orientations, prefer comparing 2 quaternions for better performance.geoemtricallyEquals(EuclidGeometry, double)
for comparing 2 orientations.
Changes for tuples:
Tuple2DReadOnly
andTuple3DReadOnly
:norm()
andnormSquared()
can be used to calculate the norm and the square of the norm of the tuple.differenceNorm(...)
and ``differenceNormSquared(...)are convenience methods for calculating the norm of the difference between 2 tuples. This method was also added to
Tuple4DReadOnly`.dot(...)
the dot product has been moved up from the vector interfaces.
normalize()
clipToMaxNorm(...)
have been moved up from the vector interfaces toTuple2DBasics
andTuple3DBasics
.
Changes for pose 3D:
Pose3DReadOnly
now extendsRigidBodyTransformReadOnly
.Pose3DBasics
now extendsRigidBodyTransformBasics
.- Deprecated methods have been removed from the rigid-body transform and 3D pose interfaces.
Pose3D
can be used as a transform and is now an equivalent ofRigidBodyTransform
.
Code removal:
- Deprecated methods have been removed from:
Axis2D
andAxis3D
Plane3D
Line2DBasics
andLine3DBasics
LineSegment2DBasics
andLineSegment3DBasics
Pose2DBasics
andPose3DBasics
FixedFrameLine2DBasics
andFixedFrameLine3DBasics
FixedFrameLineSegment2DBasics
andFixedFrameLineSegment3DBasics
FixedFramePose2DBasics
andFixedFramePose3DBasics
FrameLine2DBasics
andFrameLine3DBasics
FrameOrientation3DBasics
Capsule3DBasics
,Cylinder3DBasics
,Ramp3DBasics
- Removed classes:
EuclidFrameTestTools
(added back in 0.18.1)EuclidGeometryTestTools
Misc.:
- The angle method for
Vector2DReadOnly
andVector3DReadOnly
has been optimized. - Deprecated
EpsilonComparable
,GeometricallyComparable
, andGeometryObject
. These interface are obsolete and unnecessary, they'll be removed in a future release. - Updated
ihmc-commons
from 0.30.5 to 0.31.0