/** * Tests the createAABB method. * * @since 3.1.0 */ @Test public void createAABB() { Vector2[] vertices = new Vector2[] {new Vector2(0.0, 1.0), new Vector2(-1.0, -1.0), new Vector2(1.0, -1.0)}; Polygon p = new Polygon(vertices); AABB aabb = p.createAABB(Transform.IDENTITY); TestCase.assertEquals(-1.0, aabb.getMinX(), 1.0e-3); TestCase.assertEquals(-1.0, aabb.getMinY(), 1.0e-3); TestCase.assertEquals(1.0, aabb.getMaxX(), 1.0e-3); TestCase.assertEquals(1.0, aabb.getMaxY(), 1.0e-3); // try using the default method AABB aabb2 = p.createAABB(); TestCase.assertEquals(aabb.getMinX(), aabb2.getMinX()); TestCase.assertEquals(aabb.getMinY(), aabb2.getMinY()); TestCase.assertEquals(aabb.getMaxX(), aabb2.getMaxX()); TestCase.assertEquals(aabb.getMaxY(), aabb2.getMaxY()); Transform tx = new Transform(); tx.rotate(Math.toRadians(30.0)); tx.translate(1.0, 2.0); aabb = p.createAABB(tx); TestCase.assertEquals(0.500, aabb.getMinX(), 1.0e-3); TestCase.assertEquals(0.634, aabb.getMinY(), 1.0e-3); TestCase.assertEquals(2.366, aabb.getMaxX(), 1.0e-3); TestCase.assertEquals(2.866, aabb.getMaxY(), 1.0e-3); }