@Override public LineSegment3 clone() { return new LineSegment3(this); }
@Test public void testGetSet() { final LineSegment3 seg1 = new LineSegment3(); assertEquals(Vector3.ZERO, seg1.getOrigin()); assertEquals(Vector3.UNIT_Z, seg1.getDirection()); assertTrue(seg1.getExtent() == 0.5); seg1.setOrigin(Vector3.NEG_ONE); seg1.setDirection(Vector3.UNIT_X); seg1.setExtent(42.0); assertEquals(Vector3.NEG_ONE, seg1.getOrigin()); assertEquals(Vector3.UNIT_X, seg1.getDirection()); assertTrue(seg1.getExtent() == 42.0); final LineSegment3 seg2 = new LineSegment3(seg1); assertEquals(Vector3.NEG_ONE, seg2.getOrigin()); assertEquals(Vector3.UNIT_X, seg2.getDirection()); assertTrue(seg2.getExtent() == 42.0); final LineSegment3 seg3 = new LineSegment3(Vector3.ONE, Vector3.UNIT_Y, 2.5); assertEquals(Vector3.ONE, seg3.getOrigin()); assertEquals(Vector3.UNIT_Y, seg3.getDirection()); assertTrue(seg3.getExtent() == 2.5); final LineSegment3 seg4 = new LineSegment3(new Vector3(9, 2, 2), new Vector3(5, 2, 2)); assertEquals(new Vector3(7, 2, 2), seg4.getOrigin()); assertEquals(Vector3.NEG_UNIT_X, seg4.getDirection()); assertTrue(seg4.getExtent() == 2); assertEquals(new Vector3(9, 2, 2), seg4.getNegativeEnd(null));
if (t0 < _extent) { vectorA.set(getDirection()).multiplyLocal(t0); vectorA.addLocal(getOrigin()); } else { getPositiveEnd(vectorA); getNegativeEnd(vectorA);
public Vector3 getPositiveEnd(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } result.set(getDirection()).multiplyLocal(_extent); result.addLocal(getOrigin()); return result; }
@Test public void testEquals() { // couple of equals validity tests final LineSegment3 seg1 = new LineSegment3(); assertEquals(seg1, seg1); assertFalse(seg1.equals(null)); assertFalse(seg1.equals(new Vector2())); // throw in a couple pool accesses for coverage final LineSegment3 seg2 = LineSegment3.fetchTempInstance(); seg2.set(seg1); assertEquals(seg1, seg2); assertNotSame(seg1, seg2); LineSegment3.releaseTempInstance(seg2); // cover more of equals assertFalse(seg1.equals(new LineSegment3(Vector3.ZERO, Vector3.UNIT_X, 2))); assertFalse(seg1.equals(new LineSegment3(Vector3.ZERO, Vector3.UNIT_Z, 2))); }
@Test public void testValid() { final LineSegment3 seg1 = new LineSegment3(); final LineSegment3 seg2 = new LineSegment3(new Vector3(Double.NaN, 0, 0), Vector3.UNIT_Z, 0.5); final LineSegment3 seg3 = new LineSegment3(Vector3.ZERO, new Vector3(Double.NaN, 0, 0), 0.5); final LineSegment3 seg4 = new LineSegment3(Vector3.ZERO, Vector3.UNIT_Z, Double.NaN); final LineSegment3 seg5 = new LineSegment3(Vector3.ZERO, Vector3.UNIT_Z, Double.POSITIVE_INFINITY); assertTrue(LineSegment3.isValid(seg1)); assertFalse(LineSegment3.isValid(seg2)); assertFalse(LineSegment3.isValid(seg3)); assertFalse(LineSegment3.isValid(seg4)); assertFalse(LineSegment3.isValid(seg5)); seg5.setExtent(1); assertTrue(LineSegment3.isValid(seg5)); assertFalse(LineSegment3.isValid(null)); }
@Test public void testRandom() { MathUtils.setRandomSeed(0); final LineSegment3 seg1 = new LineSegment3(); final Vector3 store = seg1.random(null); assertEquals(new Vector3(0.0, 0.0, 0.23096778737665702), store); seg1.random(store); assertEquals(new Vector3(0.0, 0.0, -0.25946358432851413), store); }
@Test public void testSimpleHash() { // Just a simple sanity check. final LineSegment3 seg1 = new LineSegment3(Vector3.ZERO, Vector3.UNIT_Y, 2); final LineSegment3 seg2 = new LineSegment3(Vector3.ZERO, Vector3.UNIT_Y, 2); final LineSegment3 seg3 = new LineSegment3(Vector3.ZERO, Vector3.UNIT_Y, 4); assertTrue(seg1.hashCode() == seg2.hashCode()); assertTrue(seg1.hashCode() != seg3.hashCode()); }
@Test public void testClone() { final LineSegment3 seg1 = new LineSegment3(); final LineSegment3 seg2 = seg1.clone(); assertEquals(seg1, seg2); assertNotSame(seg1, seg2); }
@Test public void testDistance() { final LineSegment3 seg1 = new LineSegment3(Vector3.ZERO, Vector3.UNIT_Z, 1.0); final Vector3 store = new Vector3(); assertTrue(16.0 == seg1.distanceSquared(new Vector3(0, 0, 5), store)); assertEquals(Vector3.UNIT_Z, store); assertTrue(9.0 == seg1.distanceSquared(new Vector3(0, 0, -4), store)); assertEquals(Vector3.NEG_UNIT_Z, store); assertTrue(4.0 == seg1.distanceSquared(new Vector3(2, 0, 0), store)); assertEquals(Vector3.ZERO, store); assertTrue(1.0 == seg1.distanceSquared(Vector3.NEG_UNIT_X, null)); }
public Vector3 randomEmissionPoint(final Vector3 store) { Vector3 rVal = store; if (rVal == null) { rVal = new Vector3(); } getSource().random(rVal); return rVal; }
public void stateChanged(final ChangeEvent e) { final LineSegment3 line = ((LineSegmentEmitter) getEdittedParticles().getParticleEmitter()).getSource(); final double val = _lineLengthPanel.getDoubleValue(); line.setExtent(val / 2.0); } });
_lineLengthPanel.setValue(line.getExtent() * 2); _originParamsPanel.add(_lineParamsPanel); break;
if (t0 < _extent) { vectorA.set(getDirection()).multiplyLocal(t0); vectorA.addLocal(getOrigin()); } else { getPositiveEnd(vectorA); getNegativeEnd(vectorA);
public Vector3 getPositiveEnd(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } result.set(getDirection()).multiplyLocal(_extent); result.addLocal(getOrigin()); return result; }
public Vector3 randomEmissionPoint(final Vector3 store) { Vector3 rVal = store; if (rVal == null) { rVal = new Vector3(); } getSource().random(rVal); return rVal; }
public Vector3 getNegativeEnd(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } result.set(getDirection()).multiplyLocal(-_extent); result.addLocal(getOrigin()); return result; }
@Override public LineSegment3 clone() { return new LineSegment3(this); }
public Vector3 getNegativeEnd(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } result.set(getDirection()).multiplyLocal(-_extent); result.addLocal(getOrigin()); return result; }
public LineSegmentEmitter() { _source = new LineSegment3(); }