I have a slight problem whereby any of my collisions are returning Infinity as the distance between the Ray origin and the Geom in question. See code extract below:
results = new TrianglePickResults();
results.setCheckDistance(true);
...
ArrayList<Spatial> children = objectNode.getChildren();
SpaceObject collidedObject = null;
SpaceObject spaceObject;
Laser laser;
Node node;
float distanceTravelled;
float distance;
float min = Float.MAX_VALUE;
if(children != null) {
for(int i=0; i<children.size(); i++) {
if(children.get(i) instanceof Laser) {
laser = (Laser) children.get(i);
laser.getRay().getDirection().set(laser.getLocalTranslation());
laser.getRay().getDirection().subtractLocal(laser.getRay().getOrigin());
laser.getRay().getDirection().normalizeLocal();
distanceTravelled = FastMath.abs(laser.getRay().getOrigin().distance(laser.getRay().getDirection()));
for(int j=0; j<objectCollection.size(); j++) {
if(objectCollection.get(j) instanceof Vessel) {
spaceObject = objectCollection.get(j);
results.clear();
node = (Node) spaceObject.getSpatial();
node.findPick(laser.getRay(), results);
for(int k=0; k<results.getNumber(); k++) {
distance = results.getPickData(k).getDistance();
System.out.println("Checking laser agains SO: "+spaceObject.getSpatial().getName() + " - Distance: " + distance);
}
}
}
laser.getRay().setOrigin(laser.getLocalTranslation());
}
}
}
The result is always: Checking laser agains SO: Model - Distance: Infinity
What would cause this?