public Vector3 getTerrainIntersection(final ReadOnlyTransform terrainWorldTransform, final ReadOnlyVector3 eyePos, final ReadOnlyRay3 pickRay, final Vector3 store, final Vector3 normalStore) { _workRay.setOrigin(terrainWorldTransform.applyInverse(pickRay.getOrigin(), null)); _workRay.setDirection(terrainWorldTransform.applyInverseVector(pickRay.getDirection(), null).normalizeLocal()); terrainWorldTransform.applyInverse(eyePos, _workEyePos); _workRay.setOrigin(loc); index = newIndex; tracer = _tracers.get(index);
public Vector3 getTerrainIntersection(final ReadOnlyTransform terrainWorldTransform, final ReadOnlyVector3 eyePos, final ReadOnlyRay3 pickRay, final Vector3 store, final Vector3 normalStore) { _workRay.setOrigin(terrainWorldTransform.applyInverse(pickRay.getOrigin(), null)); _workRay.setDirection(terrainWorldTransform.applyInverseVector(pickRay.getDirection(), null).normalizeLocal()); terrainWorldTransform.applyInverse(eyePos, _workEyePos); _workRay.setOrigin(loc); index = newIndex; tracer = _tracers.get(index);
getWorldCoordinates(pos, 0, origin); getWorldCoordinates(pos, 0.3, direction).subtractLocal(origin).normalizeLocal(); result.setOrigin(origin); result.setDirection(direction); Vector2.releaseTempInstance(pos);
getWorldCoordinates(pos, 0, origin); getWorldCoordinates(pos, 0.3, direction).subtractLocal(origin).normalizeLocal(); result.setOrigin(origin); result.setDirection(direction); Vector2.releaseTempInstance(pos);
@Test public void testData() { final Ray3 ray = new Ray3(); assertEquals(Vector3.UNIT_Z, ray.getDirection()); assertEquals(Vector3.ZERO, ray.getOrigin()); ray.setDirection(Vector3.NEG_UNIT_X); assertEquals(Vector3.NEG_UNIT_X, ray.getDirection()); ray.setOrigin(Vector3.ONE); assertEquals(Vector3.ONE, ray.getOrigin()); final Ray3 ray2 = new Ray3(ray); assertEquals(Vector3.NEG_UNIT_X, ray2.getDirection()); assertEquals(Vector3.ONE, ray2.getOrigin()); ray.set(new Ray3()); assertEquals(Vector3.UNIT_Z, ray.getDirection()); assertEquals(Vector3.ZERO, ray.getOrigin()); }