Releases: ihmcrobotics/euclid
Releases · ihmcrobotics/euclid
Release list
0.22.5
What's Changed
- bookmark:0.22.4 by @Beomyeong in #72
- 🔖0.22.4 by @Beomyeong in #73
- Release/0.22.5 by @Beomyeong in #74
- Deleting unnecessary while statement by @Beomyeong in #75
- Switched to full precision when throwing exception. by @SylvainBertrand in #62
Full Changelog: 0.22.4...0.22.5
0.22.4
0.22.3
0.22.2
What's Changed
- Upped commons version to 0.34.0
- Rolled back the randomAxisAngle method to guarantee it exists on a unit sphere, and fixed the corresponding tests.
Full Changelog: 0.21.0...0.22.2
0.22.0
- Updated the github workflow and added the build status to the ReadMe
- pulled in missing tools that had been developed on the ihmc-open-robotics-software repository
- added a FramePlane3D object from open-robotics, as well as FramePlane3DBasics, FixedFramePlane3DBasics, and FramePlane3DReadOnly interfaces to match the standard Euclid format
- Pulled in the QuaternionCalculus tools to allow for extracting quaternion rates from angular velocities and accelerations, as well providing an easy SLERP function.
- Pulled in PoseReferenceFrame, Pose2DReferenceFrame, and TranslationReferenceFrame as basic reference frame implementations.
Release notes
Changes:
- Expanded
setMatchingFrameAPI for frame pose 2D/3D, frame tuple 2D/3D/4D. - New tools around positive definite 3D matrices.
Updated dependencies:
ihmc-ci7.7 -> 8.3ihmc-build0.29.0 -> 0.29.4
Release notes
Changes:
- New naming restriction framework for controlling reference frame creation.
Updated dependencies:
ihmc-ci7.6 -> 7.7ihmc-build0.28.6 -> 0.29.0
Release Notes
This is minor release to address a limitation of EuclidCoreTools.epsilonEquals(...). The method now handles Double.POSITIVE_INFINITY and Double.NEGATIVE_INFINITY.
Updated dependencies:
ihmc-commons: 0.31.0 -> 0.32.0ihmc-build: 0.28.2 -> 0.28.6
Release notes
The main change in this release is the optimization of some common methods for convex polygons, affecting both ConvexPolygon2D and FrameConvexPolygon2D:
setmethods are a little smarter and copies the data over when possible to avoid having to update the polygon which is expensive.translatemethod skips the update by directly translating the bounding-box and centroid.applyTransformandapplyInverseTransformre-order the vertices if needed to avoid relying onto the update to do so.- Switched to doing lazy updates for the bounding box, area, and centroid of a polygon. They are only updated (if needed) when their respective getter is called.
Other changes include:
- Introduction of a new enum
Location - Used the new
Locationto improve methods inEuclidGeometryTools:- added:
whichPartOfRay2DIsPoint2DOn,whichSideOfLine2DIsPoint2DOn,whichSideOfPlane3DIsPoint3DOn - deprecated some methods which signature was deemed confusing:
isPoint2DOnSideOfLine2D,isPoint3DAboveOrBelowPlane3D
- added:
- Updated
EuclidFrameToolsto keep up withEuclidGeometryToolschanges. - Moved list operations from
EuclidGeometryPolygonToolstoEuclidCoreToolsand added garbage free implementations ofCollections.reverse(...)andCollections.rotate(...)while also allowing to specify a range of the list to be modified.
Updated ihmc-build from 0.28.0 to 0.28.2
Release notes
This release addresses issues of the version 0.18.0.
- Added
FrameTorus3Dand its interfaces. SupportingVertexHolderis no longer anEuclidGeometry. It didn't provide any benefit and made implementation of the interface more tedious and didn't make much sense. The shapes remain implementations ofEuclidGeoemetry/EuclidFrameGeometry.- Made the various final types implement
Settable<T>again. - Added
EuclidFrameTestToolsback but only with the assertion methods forEuclidFrameGeometry. - Added equals methods in
EuclidCoreTools:boolean EuclidCoreTools.equals(EuclidGeometry, EuclidGeometry)boolean EuclidCoreTools.epsilonEquals(EuclidGeometry, EuclidGeometry, double)boolean EuclidCoreTools.geometricallyEquals(EuclidGeometry, EuclidGeometry, double)
- Added in
EuclidFrameToolsthe equals methods forEuclidFrameGeometry:boolean EuclidFrameTools.equals(EuclidFrameGeometry, EuclidFrameGeometry)boolean EuclidFrameTools.epsilonEquals(EuclidFrameGeometry, EuclidFrameGeometry, double)boolean EuclidFrameTools.geometricallyEquals(EuclidFrameGeometry, EuclidFrameGeometry, double)