Skip to content

Commit

Permalink
Merge branch 'release/0.18.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
SylvainBertrand committed Jun 29, 2022
2 parents 889c78a + e2cc940 commit a5385ba
Show file tree
Hide file tree
Showing 402 changed files with 14,124 additions and 25,262 deletions.
9 changes: 0 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,6 @@

## Minutiae

### Tested Platforms
We test all of our software on OS X 10.11 El Capitan, Windows 7/8/10, and Ubuntu 16.04, 18.04 LTS Desktop and Server.

### Branches
This repository uses the git-flow branching model. You can find more about git-flow [here](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow).

### Test and documentation coverage
We have put our best effort into documenting and testing the entire library. Test coverage is above 90%.

### Licensing
This library is under the license Apache 2.0. Consult the license file for more information.

Expand Down
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {

ihmc {
group = "us.ihmc"
version = "0.17.2"
version = "0.18.0"
vcsUrl = "https://github.com/ihmcrobotics/euclid"
openSource = true

Expand Down Expand Up @@ -46,5 +46,5 @@ testDependencies {
api(ihmc.sourceSetProject("frame-shape"))

api("org.ejml:ejml-ddense:0.39")
api("us.ihmc:ihmc-commons-testing:0.30.5")
api("us.ihmc:ihmc-commons-testing:0.31.0")
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,15 @@
import java.util.List;

import us.ihmc.euclid.geometry.interfaces.Pose3DReadOnly;
import us.ihmc.euclid.interfaces.GeometryObject;
import us.ihmc.euclid.referenceFrame.exceptions.ReferenceFrameMismatchException;
import us.ihmc.euclid.referenceFrame.interfaces.FixedFramePoint3DBasics;
import us.ihmc.euclid.referenceFrame.interfaces.FixedFrameRotationMatrixBasics;
import us.ihmc.euclid.referenceFrame.interfaces.FixedFrameShape3DPoseBasics;
import us.ihmc.euclid.referenceFrame.interfaces.FrameShape3DPoseReadOnly;
import us.ihmc.euclid.referenceFrame.interfaces.FrameVector3DReadOnly;
import us.ihmc.euclid.referenceFrame.interfaces.ReferenceFrameHolder;
import us.ihmc.euclid.referenceFrame.tools.EuclidFrameFactories;
import us.ihmc.euclid.referenceFrame.tools.EuclidFrameShapeIOTools;
import us.ihmc.euclid.shape.primitives.interfaces.Shape3DChangeListener;
import us.ihmc.euclid.tools.EuclidCoreIOTools;
import us.ihmc.euclid.tools.EuclidHashCodeTools;
import us.ihmc.euclid.transform.interfaces.RigidBodyTransformReadOnly;

Expand All @@ -26,7 +24,7 @@
*
* @author Sylvain Bertrand
*/
public class FixedFrameShape3DPose implements FixedFrameShape3DPoseBasics, GeometryObject<FixedFrameShape3DPose>
public class FixedFrameShape3DPose implements FixedFrameShape3DPoseBasics
{
/** The listeners to be notified when this pose changes. */
private final List<Shape3DChangeListener> changeListeners = new ArrayList<>();
Expand Down Expand Up @@ -92,13 +90,6 @@ public FixedFrameShape3DPose(ReferenceFrameHolder referenceFrameHolder, Pose3DRe
set(pose);
}

/** {@inheritDoc} */
@Override
public void set(FixedFrameShape3DPose other)
{
FixedFrameShape3DPoseBasics.super.set(other);
}

/** {@inheritDoc} */
@Override
public ReferenceFrame getReferenceFrame()
Expand Down Expand Up @@ -188,43 +179,6 @@ public boolean removeChangeListener(Shape3DChangeListener listener)
return changeListeners.remove(listener);
}

/**
* Tests on a per-component basis if this shape pose is equal to {@code other} with the tolerance
* {@code epsilon}.
* <p>
* If the two poses have different frames, this method returns {@code false}.
* </p>
*
* @param other the query. Not modified.
* @param epsilon the tolerance to use.
* @return {@code true} if the two shape poses are equal and are expressed in the same reference
* frame, {@code false} otherwise.
*/
@Override
public boolean epsilonEquals(FixedFrameShape3DPose other, double epsilon)
{
return FixedFrameShape3DPoseBasics.super.epsilonEquals(other, epsilon);
}

/**
* Compares {@code this} to {@code other} to determine if the two shape poses are geometrically
* similar.
* <p>
* Two poses are geometrically equal if both their position and orientation are geometrically equal.
* </p>
*
* @param other the shape pose to compare to. Not modified.
* @param epsilon the tolerance of the comparison.
* @return {@code true} if the two shape poses represent the same geometry, {@code false} otherwise.
* @throws ReferenceFrameMismatchException if {@code this} and {@code other} are not expressed in
* the same reference frame.
*/
@Override
public boolean geometricallyEquals(FixedFrameShape3DPose other, double epsilon)
{
return FixedFrameShape3DPoseBasics.super.geometricallyEquals(other, epsilon);
}

/**
* Tests if the given {@code object}'s class is the same as this, in which case the method returns
* {@link #equals(FrameShape3DPoseReadOnly)}, it returns {@code false} otherwise.
Expand Down Expand Up @@ -268,6 +222,6 @@ public int hashCode()
@Override
public String toString()
{
return EuclidFrameShapeIOTools.getFrameShape3DPoseString(this);
return toString(EuclidCoreIOTools.DEFAULT_FORMAT);
}
}
46 changes: 3 additions & 43 deletions src/frame-shape/java/us/ihmc/euclid/referenceFrame/FrameBox3D.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.List;

import us.ihmc.euclid.geometry.interfaces.Pose3DReadOnly;
import us.ihmc.euclid.interfaces.GeometryObject;
import us.ihmc.euclid.orientation.interfaces.Orientation3DReadOnly;
import us.ihmc.euclid.referenceFrame.exceptions.ReferenceFrameMismatchException;
import us.ihmc.euclid.referenceFrame.interfaces.FixedFrameShape3DPoseBasics;
Expand All @@ -18,10 +17,10 @@
import us.ihmc.euclid.referenceFrame.interfaces.FrameShape3DPoseReadOnly;
import us.ihmc.euclid.referenceFrame.interfaces.FrameVector3DReadOnly;
import us.ihmc.euclid.referenceFrame.tools.EuclidFrameFactories;
import us.ihmc.euclid.referenceFrame.tools.EuclidFrameShapeIOTools;
import us.ihmc.euclid.shape.primitives.interfaces.Box3DReadOnly;
import us.ihmc.euclid.shape.primitives.interfaces.IntermediateVariableSupplier;
import us.ihmc.euclid.shape.primitives.interfaces.Shape3DChangeListener;
import us.ihmc.euclid.tools.EuclidCoreIOTools;
import us.ihmc.euclid.tools.EuclidHashCodeTools;
import us.ihmc.euclid.transform.interfaces.RigidBodyTransformReadOnly;
import us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly;
Expand All @@ -35,7 +34,7 @@
*
* @author Sylvain Bertrand
*/
public class FrameBox3D implements FrameBox3DBasics, GeometryObject<FrameBox3D>
public class FrameBox3D implements FrameBox3DBasics
{
private final List<Shape3DChangeListener> changeListeners = new ArrayList<>();
/** The reference frame in which this shape is expressed. */
Expand Down Expand Up @@ -385,13 +384,6 @@ public void setIntermediateVariableSupplier(IntermediateVariableSupplier newSupp
supplier = newSupplier;
}

/** {@inheritDoc} */
@Override
public void set(FrameBox3D other)
{
FrameBox3DBasics.super.set(other);
}

/** {@inheritDoc} */
@Override
public FrameBox3D copy()
Expand Down Expand Up @@ -459,38 +451,6 @@ public boolean removeChangeListener(Shape3DChangeListener listener)
return hasBeenRemoved;
}

/**
* Tests on a per component basis if {@code other} and {@code this} are equal to an {@code epsilon}.
* <p>
* If the two faces have different frames, this method returns {@code false}.
* </p>
*
* @param other the other box to compare against this. Not modified.
* @param epsilon tolerance to use when comparing each component.
* @return {@code true} if the two boxes are equal component-wise and are expressed in the same
* reference frame, {@code false} otherwise.
*/
@Override
public boolean epsilonEquals(FrameBox3D other, double epsilon)
{
return FrameBox3DBasics.super.epsilonEquals(other, epsilon);
}

/**
* Compares {@code this} to {@code other} to determine if the two boxes are geometrically similar.
*
* @param other the box to compare to. Not modified.
* @param epsilon the tolerance of the comparison.
* @return {@code true} if the two boxes represent the same geometry, {@code false} otherwise.
* @throws ReferenceFrameMismatchException if {@code this} and {@code other} are not expressed in
* the same reference frame.
*/
@Override
public boolean geometricallyEquals(FrameBox3D other, double epsilon)
{
return FrameBox3DBasics.super.geometricallyEquals(other, epsilon);
}

/**
* Tests if the given {@code object}'s class is the same as this, in which case the method returns
* {@link #equals(FrameBox3DReadOnly)}, it returns {@code false} otherwise.
Expand Down Expand Up @@ -534,6 +494,6 @@ public int hashCode()
@Override
public String toString()
{
return EuclidFrameShapeIOTools.getFrameBox3DString(this);
return toString(EuclidCoreIOTools.DEFAULT_FORMAT);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
* This implementation registers listener to its owner such that it is always accurately
* representing its owner even being modified after creation of the polytope view.
* </p>
*
*
* @author Sylvain Bertrand
*/
class FrameBoxPolytope3D implements FrameBoxPolytope3DView
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package us.ihmc.euclid.referenceFrame;

import us.ihmc.euclid.Axis3D;
import us.ihmc.euclid.interfaces.GeometryObject;
import us.ihmc.euclid.referenceFrame.exceptions.ReferenceFrameMismatchException;
import us.ihmc.euclid.referenceFrame.interfaces.FixedFramePoint3DBasics;
import us.ihmc.euclid.referenceFrame.interfaces.FixedFrameUnitVector3DBasics;
Expand All @@ -10,8 +9,8 @@
import us.ihmc.euclid.referenceFrame.interfaces.FramePoint3DReadOnly;
import us.ihmc.euclid.referenceFrame.interfaces.FrameVector3DReadOnly;
import us.ihmc.euclid.referenceFrame.tools.EuclidFrameFactories;
import us.ihmc.euclid.referenceFrame.tools.EuclidFrameShapeIOTools;
import us.ihmc.euclid.shape.primitives.interfaces.Capsule3DReadOnly;
import us.ihmc.euclid.tools.EuclidCoreIOTools;
import us.ihmc.euclid.tools.EuclidHashCodeTools;
import us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly;
import us.ihmc.euclid.tuple3D.interfaces.Vector3DReadOnly;
Expand All @@ -25,7 +24,7 @@
*
* @author Sylvain Bertrand
*/
public class FrameCapsule3D implements FrameCapsule3DBasics, GeometryObject<FrameCapsule3D>
public class FrameCapsule3D implements FrameCapsule3DBasics
{
/** The reference frame in which this shape is expressed. */
private ReferenceFrame referenceFrame;
Expand Down Expand Up @@ -137,13 +136,6 @@ public FrameCapsule3D(FrameCapsule3DReadOnly other)
setIncludingFrame(other);
}

/** {@inheritDoc} */
@Override
public void set(FrameCapsule3D other)
{
FrameCapsule3DBasics.super.set(other);
}

/** {@inheritDoc} */
@Override
public void setReferenceFrame(ReferenceFrame referenceFrame)
Expand Down Expand Up @@ -233,39 +225,6 @@ public FrameCapsule3D copy()
return new FrameCapsule3D(this);
}

/**
* Tests on a per component basis if {@code other} and {@code this} are equal to an {@code epsilon}.
* <p>
* If the two capsules have different frames, this method returns {@code false}.
* </p>
*
* @param other the other capsule to compare against this. Not modified.
* @param epsilon tolerance to use when comparing each component.
* @return {@code true} if the two capsules are equal component-wise and are expressed in the same
* reference frame, {@code false} otherwise.
*/
@Override
public boolean epsilonEquals(FrameCapsule3D other, double epsilon)
{
return FrameCapsule3DBasics.super.epsilonEquals(other, epsilon);
}

/**
* Compares {@code this} and {@code other} to determine if the two capsules are geometrically
* similar.
*
* @param other the capsule to compare to. Not modified.
* @param epsilon the tolerance of the comparison.
* @return {@code true} if the capsules represent the same geometry, {@code false} otherwise.
* @throws ReferenceFrameMismatchException if {@code this} and {@code other} are not expressed in
* the same reference frame.
*/
@Override
public boolean geometricallyEquals(FrameCapsule3D other, double epsilon)
{
return FrameCapsule3DBasics.super.geometricallyEquals(other, epsilon);
}

/**
* Tests if the given {@code object}'s class is the same as this, in which case the method returns
* {@link #equals(FrameCapsule3DReadOnly)}, it returns {@code false} otherwise.
Expand Down Expand Up @@ -312,6 +271,6 @@ public int hashCode()
@Override
public String toString()
{
return EuclidFrameShapeIOTools.getFrameCapsule3DString(this);
return toString(EuclidCoreIOTools.DEFAULT_FORMAT);
}
}
Loading

0 comments on commit a5385ba

Please sign in to comment.