|| !scene.getSceneHints().isPickingHintEnabled(PickingHint.Collidable)) {
return;
}
if (spatial instanceof Node) {
final Node node = (Node) spatial;
if (node.getWorldBound().intersects(scene.getWorldBound())) {
// further checking needed.
for (int i = 0; i < node.getNumberOfChildren(); i++) {
PickingUtil.findCollisions(node.getChild(i), scene, results);
}
}
} else if (spatial instanceof Mesh) {
final Mesh mesh = (Mesh) spatial;
if (mesh.getWorldBound().intersects(scene.getWorldBound())) {
if (scene instanceof Node) {
final Node parent = (Node) scene;
for (int i = 0; i < parent.getNumberOfChildren(); i++) {
PickingUtil.findCollisions(mesh, parent.getChild(i), results);
}
} else {
results.addCollision(mesh, (Mesh) scene);
}
}