|
|
|
@ -66,6 +66,7 @@ public final class BIHNode implements Savable { |
|
|
|
|
private float leftPlane; |
|
|
|
|
private float rightPlane; |
|
|
|
|
private int axis; |
|
|
|
|
private Triangle tmpTriangle = new Triangle(); |
|
|
|
|
|
|
|
|
|
public BIHNode(int l, int r) { |
|
|
|
|
leftIndex = l; |
|
|
|
@ -166,7 +167,7 @@ public final class BIHNode implements Savable { |
|
|
|
|
|
|
|
|
|
stack.add(new BIHStackData(this, 0, 0)); |
|
|
|
|
|
|
|
|
|
Triangle t = new Triangle(); |
|
|
|
|
Triangle t = tmpTriangle; |
|
|
|
|
int cols = 0; |
|
|
|
|
|
|
|
|
|
stackloop: |
|
|
|
@ -241,14 +242,15 @@ public final class BIHNode implements Savable { |
|
|
|
|
float sceneMax, |
|
|
|
|
CollisionResults results) { |
|
|
|
|
float tHit = Float.POSITIVE_INFINITY; |
|
|
|
|
|
|
|
|
|
TempVars vars = TempVars.get(); |
|
|
|
|
|
|
|
|
|
Vector3f v1 = new Vector3f(), |
|
|
|
|
v2 = new Vector3f(), |
|
|
|
|
v3 = new Vector3f(); |
|
|
|
|
Vector3f v1 = vars.vect1, |
|
|
|
|
v2 = vars.vect2, |
|
|
|
|
v3 = vars.vect3; |
|
|
|
|
|
|
|
|
|
int cols = 0; |
|
|
|
|
|
|
|
|
|
TempVars vars = TempVars.get(); |
|
|
|
|
ArrayList<BIHStackData> stack = vars.bihStack; |
|
|
|
|
stack.clear(); |
|
|
|
|
stack.add(new BIHStackData(this, 0, 0)); |
|
|
|
@ -306,10 +308,10 @@ public final class BIHNode implements Savable { |
|
|
|
|
|
|
|
|
|
// float tHit = Float.POSITIVE_INFINITY;
|
|
|
|
|
|
|
|
|
|
Vector3f o = r.getOrigin().clone(); |
|
|
|
|
Vector3f d = r.getDirection().clone(); |
|
|
|
|
Vector3f o = vars.vect1.set(r.getOrigin()); |
|
|
|
|
Vector3f d = vars.vect2.set(r.getDirection()); |
|
|
|
|
|
|
|
|
|
Matrix4f inv = worldMatrix.invert(); |
|
|
|
|
Matrix4f inv =vars.tempMat4.set(worldMatrix).invertLocal(); |
|
|
|
|
|
|
|
|
|
inv.mult(r.getOrigin(), r.getOrigin()); |
|
|
|
|
|
|
|
|
@ -327,9 +329,9 @@ public final class BIHNode implements Savable { |
|
|
|
|
|
|
|
|
|
r.getDirection().normalizeLocal(); |
|
|
|
|
|
|
|
|
|
Vector3f v1 = new Vector3f(), |
|
|
|
|
v2 = new Vector3f(), |
|
|
|
|
v3 = new Vector3f(); |
|
|
|
|
Vector3f v1 = vars.vect3, |
|
|
|
|
v2 = vars.vect4, |
|
|
|
|
v3 = vars.vect5; |
|
|
|
|
int cols = 0; |
|
|
|
|
|
|
|
|
|
stack.add(new BIHStackData(this, sceneMin, sceneMax)); |
|
|
|
|