@Override public Triangle clone() { return new Triangle(this); }
@Override public Triangle clone() { return new Triangle(this); }
/** * @return An instance of Triangle that is intended for temporary use in calculations and so forth. Multiple calls * to the method should return instances of this class that are not currently in use. */ public final static Triangle fetchTempInstance() { if (MathConstants.useMathPools) { return Triangle.TRI_POOL.fetch(); } else { return new Triangle(); } }
/** * @return An instance of Triangle that is intended for temporary use in calculations and so forth. Multiple calls * to the method should return instances of this class that are not currently in use. */ public final static Triangle fetchTempInstance() { if (MathConstants.useMathPools) { return Triangle.TRI_POOL.fetch(); } else { return new Triangle(); } }
@Test public void testSimpleHash() { // Just a simple sanity check. final Triangle tri1 = new Triangle(Vector3.ZERO, Vector3.UNIT_Y, Vector3.NEG_ONE, 1); final Triangle tri2 = new Triangle(Vector3.ZERO, Vector3.UNIT_Y, Vector3.NEG_ONE, 1); final Triangle tri3 = new Triangle(Vector3.ZERO, Vector3.UNIT_Z, Vector3.NEG_ONE, 2); assertTrue(tri1.hashCode() == tri2.hashCode()); assertTrue(tri1.hashCode() != tri3.hashCode()); }
@Test public void testClone() { final Triangle tri1 = new Triangle(); final Triangle tri2 = tri1.clone(); assertEquals(tri1, tri2); assertNotSame(tri1, tri2); }
@Test public void testEquals() { // couple of equals validity tests final Triangle tri1 = new Triangle(); assertEquals(tri1, tri1); assertFalse(tri1.equals(null)); assertFalse(tri1.equals(new Vector2())); // throw in a couple pool accesses for coverage final Triangle tri2 = Triangle.fetchTempInstance(); tri2.set(tri1); assertEquals(tri1, tri2); assertNotSame(tri1, tri2); Triangle.releaseTempInstance(tri2); // cover more of equals assertTrue(tri1.equals(new Triangle(Vector3.ZERO, Vector3.ZERO, Vector3.ZERO))); assertFalse(tri1.equals(new Triangle(Vector3.ZERO, Vector3.ZERO, Vector3.UNIT_X))); assertFalse(tri1.equals(new Triangle(Vector3.ZERO, Vector3.UNIT_X, Vector3.UNIT_X))); assertFalse(tri1.equals(new Triangle(Vector3.ZERO, Vector3.UNIT_X, Vector3.ZERO))); assertFalse(tri1.equals(new Triangle(Vector3.UNIT_X, Vector3.ZERO, Vector3.ZERO))); assertFalse(tri1.equals(new Triangle(Vector3.UNIT_X, Vector3.ZERO, Vector3.UNIT_X))); assertFalse(tri1.equals(new Triangle(Vector3.UNIT_X, Vector3.UNIT_X, Vector3.ZERO))); assertFalse(tri1.equals(new Triangle(Vector3.UNIT_X, Vector3.UNIT_X, Vector3.UNIT_X))); }
@Test public void testValid() { final Triangle vec1 = new Triangle(); final Triangle vec2 = new Triangle(new Vector3(0, 0, Double.NaN), Vector3.ZERO, Vector3.ZERO); final Triangle vec3 = new Triangle(Vector3.ZERO, new Vector3(0, 0, Double.NaN), Vector3.ZERO); final Triangle vec4 = new Triangle(Vector3.ZERO, Vector3.ZERO, new Vector3(0, 0, Double.NaN)); assertTrue(Triangle.isValid(vec1)); assertFalse(Triangle.isValid(vec2)); assertFalse(Triangle.isValid(vec3)); assertFalse(Triangle.isValid(vec4)); vec4.setC(Vector3.ZERO); assertTrue(Triangle.isValid(vec4)); assertFalse(Triangle.isValid(null)); }
@Test public void testNormal() { final Triangle tri1 = new Triangle(Vector3.ZERO, Vector3.UNIT_Y, Vector3.UNIT_X, 0); assertEquals(new Vector3(0, 0, -1), tri1.getNormal()); // dirty assertEquals(new Vector3(0, 0, -1), tri1.getNormal()); // clean tri1.setB(Vector3.UNIT_Z); assertEquals(new Vector3(0, 1, 0), tri1.getNormal()); // dirty, but with existing normal } }
@Test public void testCenter() { final Triangle tri1 = new Triangle(Vector3.ZERO, Vector3.UNIT_Y, Vector3.UNIT_X, 0); assertEquals(new Vector3(1 / 3., 1 / 3., 0), tri1.getCenter()); // dirty assertEquals(new Vector3(1 / 3., 1 / 3., 0), tri1.getCenter()); // clean tri1.setA(Vector3.ONE); assertEquals(new Vector3(2 / 3., 2 / 3., 1 / 3.), tri1.getCenter()); // dirty, but with existing center }
@Test public void testGetSet() { final Triangle tri1 = new Triangle(); assertEquals(Vector3.ZERO, tri1.getA()); assertEquals(Vector3.ZERO, tri1.getB()); assertTrue(tri1.getIndex() == 1); final Triangle tri2 = new Triangle(tri1); assertEquals(Vector3.NEG_ONE, tri2.getA()); assertEquals(Vector3.UNIT_X, tri2.getB()); assertTrue(tri2.getIndex() == 1); final Triangle tri3 = new Triangle(Vector3.ONE, Vector3.UNIT_Y, Vector3.NEG_ONE); assertEquals(Vector3.ONE, tri3.getA()); assertEquals(Vector3.UNIT_Y, tri3.getB()); assertTrue(tri3.getIndex() == 0); final Triangle tri4 = new Triangle(Vector3.ONE, Vector3.UNIT_Y, Vector3.NEG_ONE, 42); assertEquals(Vector3.ONE, tri4.getA()); assertEquals(Vector3.UNIT_Y, tri4.getB());
t = new Triangle(vertices[0], vertices[1], vertices[2]); } else { t.setA(vertices[0]);
t = new Triangle(vertices[0], vertices[1], vertices[2]); } else { t.setA(vertices[0]);