@Override public Line3 clone() { return new Line3(this); }
@Override public Line3 clone() { return new Line3(this); }
/** * @return An instance of Line3 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 Line3 fetchTempInstance() { if (MathConstants.useMathPools) { return LINE3_POOL.fetch(); } else { return new Line3(); } }
/** * @return An instance of Line3 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 Line3 fetchTempInstance() { if (MathConstants.useMathPools) { return LINE3_POOL.fetch(); } else { return new Line3(); } }
private ParticleInfluence getNewInfluence() { final Object chosen = JOptionPane.showInputDialog(ParticleInfluencePanel.this, "Choose the influence type to add:", "Add Influence", JOptionPane.OK_CANCEL_OPTION, null, new String[] { "wind", "gravity", "drag", "vortex", "swarm", "wander", "floor" }, null); ParticleInfluence infl = null; if ("wind".equals(chosen)) { infl = SimpleParticleInfluenceFactory.createBasicWind(1f, Vector3.UNIT_X, true, true); } else if ("gravity".equals(chosen)) { infl = SimpleParticleInfluenceFactory.createBasicGravity(Vector3.ZERO, true); } else if ("drag".equals(chosen)) { infl = SimpleParticleInfluenceFactory.createBasicDrag(1f); } else if ("vortex".equals(chosen)) { infl = SimpleParticleInfluenceFactory.createBasicVortex(1f, 0f, new Line3(new Vector3(), Vector3.UNIT_Y), true, true); } else if ("swarm".equals(chosen)) { infl = new SwarmInfluence(new Vector3(), 3); } else if ("wander".equals(chosen)) { infl = new WanderInfluence(); } else if ("floor".equals(chosen)) { infl = new FloorInfluence(new Plane(Vector3.UNIT_Y, 0), 0.3f); } return infl; } });
public void stateChanged(final ChangeEvent e) { final SimpleParticleInfluenceFactory.BasicVortex vortex = (SimpleParticleInfluenceFactory.BasicVortex) getEdittedInfluence(); final Line3 axis = new Line3(vortex.getAxis()); axis.setDirection(_vortexDirectionPanel.getValue()); vortex.setAxis(axis); } });
@Test public void testSimpleHash() { // Just a simple sanity check. final Line3 line1 = new Line3(Vector3.ZERO, Vector3.UNIT_Y); final Line3 line2 = new Line3(Vector3.ZERO, Vector3.UNIT_Y); final Line3 line3 = new Line3(Vector3.ZERO, Vector3.UNIT_Z); assertTrue(line1.hashCode() == line2.hashCode()); assertTrue(line1.hashCode() != line3.hashCode()); }
@Test public void testClone() { final Line3 line1 = new Line3(); final Line3 line2 = line1.clone(); assertEquals(line1, line2); assertNotSame(line1, line2); }
@Test public void testValid() { final Line3 line1 = new Line3(); final Line3 line2 = new Line3(new Vector3(Double.NaN, 0, 0), Vector3.UNIT_Z); final Line3 line3 = new Line3(Vector3.ZERO, new Vector3(Double.NaN, 0, 0)); assertTrue(Line3.isValid(line1)); assertFalse(Line3.isValid(line2)); assertFalse(Line3.isValid(line3)); line2.setOrigin(Vector3.ZERO); assertTrue(Line3.isValid(line2)); assertFalse(Line3.isValid(null)); }
@Override public void write(final OutputCapsule capsule) throws IOException { super.write(capsule); capsule.write(_type, "type", VT_CYLINDER); capsule.write(_strength, "strength", 1.0); capsule.write(_divergence, "divergence", 0.0); capsule.write(_axis, "axis", new Line3(new Vector3(), new Vector3(Vector3.UNIT_Y))); capsule.write(_height, "height", 0.0); capsule.write(_radius, "radius", 1.0); capsule.write(_random, "random", false); capsule.write(_transformWithScene, "transformWithScene", true); }
@Override public void write(final OutputCapsule capsule) throws IOException { super.write(capsule); capsule.write(_type, "type", VT_CYLINDER); capsule.write(_strength, "strength", 1.0); capsule.write(_divergence, "divergence", 0.0); capsule.write(_axis, "axis", new Line3(new Vector3(), new Vector3(Vector3.UNIT_Y))); capsule.write(_height, "height", 0.0); capsule.write(_radius, "radius", 1.0); capsule.write(_random, "random", false); capsule.write(_transformWithScene, "transformWithScene", true); }
@Override public void read(final InputCapsule capsule) throws IOException { super.read(capsule); _type = capsule.readInt("type", VT_CYLINDER); _strength = capsule.readDouble("strength", 1.0); _divergence = capsule.readDouble("divergence", 0.0); _axis.set((Line3) capsule.readSavable("axis", new Line3(new Vector3(), new Vector3(Vector3.UNIT_Y)))); _height = capsule.readDouble("height", 0.0); _radius = capsule.readDouble("radius", 1.0); _random = capsule.readBoolean("random", false); _transformWithScene = capsule.readBoolean("transformWithScene", true); }
@Override public void read(final InputCapsule capsule) throws IOException { super.read(capsule); _type = capsule.readInt("type", VT_CYLINDER); _strength = capsule.readDouble("strength", 1.0); _divergence = capsule.readDouble("divergence", 0.0); _axis.set((Line3) capsule.readSavable("axis", new Line3(new Vector3(), new Vector3(Vector3.UNIT_Y)))); _height = capsule.readDouble("height", 0.0); _radius = capsule.readDouble("radius", 1.0); _random = capsule.readBoolean("random", false); _transformWithScene = capsule.readBoolean("transformWithScene", true); }
@Test public void testGetSet() { final Line3 line1 = new Line3(); assertEquals(Vector3.ZERO, line1.getOrigin()); assertEquals(Vector3.UNIT_Z, line1.getDirection()); line1.setOrigin(Vector3.NEG_ONE); line1.setDirection(Vector3.UNIT_X); assertEquals(Vector3.NEG_ONE, line1.getOrigin()); assertEquals(Vector3.UNIT_X, line1.getDirection()); final Line3 line2 = new Line3(line1); assertEquals(Vector3.NEG_ONE, line2.getOrigin()); assertEquals(Vector3.UNIT_X, line2.getDirection()); final Line3 line3 = new Line3(Vector3.ONE, Vector3.UNIT_Y); assertEquals(Vector3.ONE, line3.getOrigin()); assertEquals(Vector3.UNIT_Y, line3.getDirection()); }
@Test public void testEquals() { // couple of equals validity tests final Line3 line1 = new Line3(); assertEquals(line1, line1); assertFalse(line1.equals(null)); assertFalse(line1.equals(new Vector2())); // throw in a couple pool accesses for coverage final Line3 line2 = Line3.fetchTempInstance(); line2.set(line1); assertEquals(line1, line2); assertNotSame(line1, line2); Line3.releaseTempInstance(line2); // cover more of equals assertFalse(line1.equals(new Line3(Vector3.ZERO, Vector3.UNIT_X))); }
@Test public void testDistance() { final Line3 line1 = new Line3(Vector3.ZERO, Vector3.UNIT_Z); final Vector3 store = new Vector3(); assertTrue(0.0 == line1.distanceSquared(new Vector3(0, 0, 5), store)); assertTrue(16.0 == line1.distanceSquared(new Vector3(0, 4, 1), store)); assertEquals(Vector3.UNIT_Z, store); assertTrue(9.0 == line1.distanceSquared(new Vector3(0, -3, -1), store)); assertEquals(Vector3.NEG_UNIT_Z, store); assertTrue(1.0 == line1.distanceSquared(Vector3.NEG_UNIT_X, null)); }
final Line3 arrowLine = new Line3(_calcVec3A, _calcVec3C.normalize(_calcVec3D));