Plane implements Cloneable, Savable, Externalizable, ReadOnlyPlane, Poolable { @Override public boolean equals(final Object o) { if (this == o) { return true; } if (!(o instanceof ReadOnlyPlane)) { return false; } final ReadOnlyPlane comp = (ReadOnlyPlane) o; return getConstant() == comp.getConstant() && _normal.equals(comp.getNormal()); } Plane();  Plane(final ReadOnlyPlane source);  Plane(final ReadOnlyVector3 normal, final double constant); @Override double getConstant(); @Override ReadOnlyVector3 getNormal(); Plane set(final ReadOnlyPlane source); void setConstant(final double constant); void setNormal(final ReadOnlyVector3 normal); @Override double pseudoDistance(final ReadOnlyVector3 point); @Override Side whichSide(final ReadOnlyVector3 point); Plane setPlanePoints(final ReadOnlyVector3 pointA, final ReadOnlyVector3 pointB,
      final ReadOnlyVector3 pointC); @Override Vector3 reflectVector(final ReadOnlyVector3 unitVector, final Vector3 store); static boolean isValid(final ReadOnlyPlane plane); @Override String toString(); @Override int hashCode(); @Override boolean equals(final Object o); @Override Plane clone(); @Override Class<? extends Plane> getClassTag(); @Override void write(final OutputCapsule capsule); @Override void read(final InputCapsule capsule); @Override void readExternal(final ObjectInput in); @Override void writeExternal(final ObjectOutput out); final static Plane fetchTempInstance(); final static void releaseTempInstance(final Plane plane); static final ReadOnlyPlane XZ; static final ReadOnlyPlane XY; static final ReadOnlyPlane YZ; }
@Test public void testEquals() { final Plane plane1 = new Plane(); assertEquals(plane1, plane1); assertFalse(plane1.equals(null)); final Plane plane2 = Plane.fetchTempInstance(); plane2.set(plane1); assertEquals(plane1, plane2); assertNotSame(plane1, plane2); Plane.releaseTempInstance(plane2); assertFalse(plane1.equals(new Plane(Vector3.UNIT_X, 0))); }