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 getNegativeEnd(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } result.set(getDirection()).multiplyLocal(-_extent); result.addLocal(getOrigin()); return result; }
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 getNegativeEnd(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } result.set(getDirection()).multiplyLocal(-_extent); result.addLocal(getOrigin()); return result; }
/** * * @param position * a random position lying somewhere on this line segment. */ public Vector3 random(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } final double rand = MathUtils.nextRandomDouble(); result.setX(2 * _extent * getOrigin().getX() * (1 - rand) + getDirection().getX() * _extent * (2 * rand - 1)); result.setY(2 * _extent * getOrigin().getY() * (1 - rand) + getDirection().getY() * _extent * (2 * rand - 1)); result.setZ(2 * _extent * getOrigin().getZ() * (1 - rand) + getDirection().getZ() * _extent * (2 * rand - 1)); return result; }
/** * * @param position * a random position lying somewhere on this line segment. */ public Vector3 random(final Vector3 store) { Vector3 result = store; if (result == null) { result = new Vector3(); } final double rand = MathUtils.nextRandomDouble(); result.setX(2 * _extent * getOrigin().getX() * (1 - rand) + getDirection().getX() * _extent * (2 * rand - 1)); result.setY(2 * _extent * getOrigin().getY() * (1 - rand) + getDirection().getY() * _extent * (2 * rand - 1)); result.setZ(2 * _extent * getOrigin().getZ() * (1 - rand) + getDirection().getZ() * _extent * (2 * rand - 1)); return result; }
if (t0 < _extent) { vectorA.set(getDirection()).multiplyLocal(t0); vectorA.addLocal(getOrigin()); } else {
if (t0 < _extent) { vectorA.set(getDirection()).multiplyLocal(t0); vectorA.addLocal(getOrigin()); } else {
final LineSegment3 seg1 = new LineSegment3(); assertEquals(Vector3.ZERO, seg1.getOrigin()); assertEquals(Vector3.UNIT_Z, seg1.getDirection()); assertTrue(seg1.getExtent() == 0.5); seg1.setExtent(42.0); assertEquals(Vector3.NEG_ONE, seg1.getOrigin()); assertEquals(Vector3.UNIT_X, seg1.getDirection()); assertTrue(seg1.getExtent() == 42.0); assertEquals(Vector3.UNIT_X, seg2.getDirection()); assertTrue(seg2.getExtent() == 42.0); assertEquals(Vector3.UNIT_Y, seg3.getDirection()); assertTrue(seg3.getExtent() == 2.5); assertEquals(Vector3.NEG_UNIT_X, seg4.getDirection()); assertTrue(seg4.getExtent() == 2);