/** * Copies information from a source ray into this ray. * * @param source * the ray to copy information from */ public void set(Ray source) { origin.set(source.getOrigin()); direction.set(source.getDirection()); }
Vector3f start = this.walkRay.getOrigin().subtract(gridOrigin);
camera.getScreenCoordinates(((Ray)other).getOrigin(),tmp); tmpv2.x = tmp.x; tmpv2.y = tmp.y;
private int collideWithRay(Ray ray) { TempVars vars = TempVars.get(); Vector3f diff = vars.vect1.set(ray.getOrigin()).subtractLocal( center); float a = diff.dot(diff) - (getRadius() * getRadius()); float a1, discr; if (a <= 0.0) { // inside sphere vars.release(); return 1; } a1 = ray.direction.dot(diff); vars.release(); if (a1 >= 0.0) { return 0; } discr = a1 * a1 - a; if (discr < 0.0) { return 0; } else if (discr >= FastMath.ZERO_TOLERANCE) { return 2; } return 1; }
public boolean intersects(Ray ray) { assert Vector3f.isValidVector(center); TempVars vars = TempVars.get(); Vector3f diff = vars.vect1.set(ray.getOrigin()).subtractLocal(center); float radiusSquared = getRadius() * getRadius(); float a = diff.dot(diff) - radiusSquared; if (a <= 0.0) { vars.release(); // in sphere return true; } // outside sphere float b = ray.getDirection().dot(diff); vars.release(); if (b >= 0.0) { return false; } return b * b >= a; }
public float distanceSquared(Ray r) { Vector3f kDiff = r.getOrigin().subtract(origin); float fA01 = -r.getDirection().dot(direction); float fB0 = kDiff.dot(r.getDirection());
Vector3f p2 = segEnd; Vector3f p3 = ray.origin; Vector3f p4 = vars.vect3.set(ray.getDirection()).multLocal(Math.min(ray.getLimit(), 1000)).addLocal(ray.getOrigin()); Vector3f p13 = vars.vect4.set(p1).subtractLocal(p3); Vector3f p43 = vars.vect5.set(p4).subtractLocal(p3);
private int collideWithRay(Ray ray, CollisionResults results) { TempVars vars = TempVars.get(); Vector3f diff = vars.vect1.set(ray.getOrigin()).subtractLocal( center); float a = diff.dot(diff) - (getRadius() * getRadius());
/** * Copies information from a source ray into this ray. * * @param source * the ray to copy information from */ public void set(Ray source) { origin.set(source.getOrigin()); direction.set(source.getDirection()); }
/** * Copies information from a source ray into this ray. * * @param source * the ray to copy information from */ public void set(Ray source) { origin.set(source.getOrigin()); direction.set(source.getDirection()); }
public static Line3D jmeRayToRay3d(Ray ray) { return new Line3D(jmeVector3fToJ3DPoint3d(ray.getOrigin()), jmeVector3fToVecmathVector3d(ray.getDirection())); }
public static Ray3d jmeRayToRay3d(Ray ray) { return new Ray3d(jmeVector3fToJ3DPoint3d(ray.getOrigin()), jmeVector3fToVecmathVector3d(ray.getDirection())); }
public static Ray transformRayFromZupToJMECoordinate(Ray zupRay) { Vector3f origin = new Vector3f(zupRay.getOrigin()); Vector3f direction = new Vector3f(zupRay.getDirection()); transformFromZupToJMECoordinates(origin); transformFromZupToJMECoordinates(direction); return new Ray(origin, direction); }
public static Ray transformRayFromJMECoordinateToZup(Ray jmeRay) { Vector3f origin = new Vector3f(jmeRay.getOrigin()); Vector3f direction = new Vector3f(jmeRay.getDirection()); transformFromJMECoordinatesToZup(origin); transformFromJMECoordinatesToZup(direction); return new Ray(origin, direction); }
public static Ray transformRayFromJMECoordinateToZup(Ray jmeRay) { Vector3f origin = new Vector3f(jmeRay.getOrigin()); Vector3f direction = new Vector3f(jmeRay.getDirection()); transformFromJMECoordinatesToZup(origin); transformFromJMECoordinatesToZup(direction); return new Ray(origin, direction); }
public static Ray transformRayFromZupToJMECoordinate(Ray zupRay) { Vector3f origin = new Vector3f(zupRay.getOrigin()); Vector3f direction = new Vector3f(zupRay.getDirection()); transformFromZupToJMECoordinates(origin); transformFromZupToJMECoordinates(direction); return new Ray(origin, direction); }
public boolean intersects(Ray ray) { assert Vector3f.isValidVector(center); TempVars vars = TempVars.get(); Vector3f diff = vars.vect1.set(ray.getOrigin()).subtractLocal(center); float radiusSquared = getRadius() * getRadius(); float a = diff.dot(diff) - radiusSquared; if (a <= 0.0) { // in sphere return true; } // outside sphere float b = ray.getDirection().dot(diff); vars.release(); if (b >= 0.0) { return false; } return b * b >= a; }
public boolean intersects(Ray ray) { assert Vector3f.isValidVector(center); TempVars vars = TempVars.get(); Vector3f diff = vars.vect1.set(ray.getOrigin()).subtractLocal(center); float radiusSquared = getRadius() * getRadius(); float a = diff.dot(diff) - radiusSquared; if (a <= 0.0) { vars.release(); // in sphere return true; } // outside sphere float b = ray.getDirection().dot(diff); vars.release(); if (b >= 0.0) { return false; } return b * b >= a; }