Skip to content

Release notes

Compare
Choose a tag to compare
@SylvainBertrand SylvainBertrand released this 08 Sep 18:52
· 122 commits to master since this release

The main change in this release is the optimization of some common methods for convex polygons, affecting both ConvexPolygon2D and FrameConvexPolygon2D:

  • set methods are a little smarter and copies the data over when possible to avoid having to update the polygon which is expensive.
  • translate method skips the update by directly translating the bounding-box and centroid.
  • applyTransform and applyInverseTransform re-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 Location to improve methods in EuclidGeometryTools:
    • added: whichPartOfRay2DIsPoint2DOn, whichSideOfLine2DIsPoint2DOn, whichSideOfPlane3DIsPoint3DOn
    • deprecated some methods which signature was deemed confusing: isPoint2DOnSideOfLine2D, isPoint3DAboveOrBelowPlane3D
  • Updated EuclidFrameTools to keep up with EuclidGeometryTools changes.
  • Moved list operations from EuclidGeometryPolygonTools to EuclidCoreTools and added garbage free implementations of Collections.reverse(...) and Collections.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