@Test public void testGetEdges() { Rectangle rect = Rectangle.fromCenter(Vector2.zero(), 42, 42); List<ILine> edges = rect.getEdges(); assertThat(edges.stream().map(ILine::supportVector)) .containsExactlyInAnyOrder( Vector2.fromXY(21, 21), Vector2.fromXY(21, -21), Vector2.fromXY(-21, -21), Vector2.fromXY(-21, 21)); assertThat(edges.get(0).directionVector().getAngle()).isCloseTo(AngleMath.PI_HALF, within(1e-4)); assertThat(edges.get(1).directionVector().getAngle()).isCloseTo(0.0, within(1e-4)); assertThat(edges.get(2).directionVector().getAngle()).isCloseTo(-AngleMath.PI_HALF, within(1e-4)); assertThat(edges.get(3).directionVector().getAngle()).isCloseTo(AngleMath.PI, within(1e-4)); }
public static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent) { return new Rectangle(center, xExtent, yExtent); }
Rectangle extends ARectangle { public static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent) { return new Rectangle(center, xExtent, yExtent); } }
Rectangle extends ARectangle { public static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent) { return new Rectangle(center, xExtent, yExtent); } @SuppressWarnings("unused") protected  Rectangle(); private  Rectangle(final IVector2 center, final double xExtent, final double yExtent); protected  Rectangle(final IRectangle rec); }
Rectangle extends ARectangle { public static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent) { return new Rectangle(center, xExtent, yExtent); } @SuppressWarnings("unused") protected  Rectangle(); private  Rectangle(final IVector2 center, final double xExtent, final double yExtent); protected  Rectangle(final IRectangle rec); static Rectangle aroundLine(final IVector2 p0, final IVector2 p1, final double radius); static Rectangle fromLineSegment(final ILineSegment lineSegment); static Rectangle fromPoints(final IVector2 p1, final IVector2 p2); static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent); @Override IRectangle withMargin(final double margin); @Override IRectangle withMarginXy(double xMargin, double yMargin); @Override IRectangle mirror(); @Override double yExtent(); @Override double xExtent(); @Override IVector2 center(); @Override final boolean equals(final Object o); @Override final int hashCode(); @Override String toString(); }
Rectangle extends ARectangle { public static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent) { return new Rectangle(center, xExtent, yExtent); } @SuppressWarnings("unused") protected  Rectangle(); private  Rectangle(final IVector2 center, final double xExtent, final double yExtent); protected  Rectangle(final IRectangle rec); static Rectangle aroundLine(final IVector2 p0, final IVector2 p1, final double radius); static Rectangle fromLineSegment(final ILineSegment lineSegment); static Rectangle fromPoints(final IVector2 p1, final IVector2 p2); static Rectangle fromCenter(final IVector2 center, final double xExtent, final double yExtent); @Override IRectangle withMargin(final double margin); @Override IRectangle withMarginXy(double xMargin, double yMargin); @Override IRectangle mirror(); @Override double yExtent(); @Override double xExtent(); @Override IVector2 center(); @Override final boolean equals(final Object o); @Override final int hashCode(); @Override String toString();  }