public LightingInfo isIlluminati( final Vector4 point, Light light, CustomStack stack, final RayCollisionInfo collision) { if (light instanceof DirectionalLight) { return new LightingInfo(null, true, light.getDirection(point)); } final PositionLight pointLight = (PositionLight) light; Vector4 position = pointLight.getPosition(); Vector4 aux = new Vector4(position); aux.sub(point); Ray ray = new Ray(point, aux); RayCollisionInfo rci = tree.getCollision(point.distanceTo(position) + 0.0001, ray, stack, 0); if (rci == null) { if (light instanceof AreaLight) {} return new LightingInfo(null, !(light instanceof AreaLight), light.getDirection(point)); } if (rci.obj.material.light != null) { return new LightingInfo(rci, true, rci.getRay().getDir()); } return new LightingInfo(null, false, null); }