package rajawali.util; import rajawali.math.Number3D; import rajawali.renderer.RajawaliRenderer; import rajawali.visitors.RayPickingVisitor; public class RayPicker implements IObjectPicker { private RajawaliRenderer mRenderer; private OnObjectPickedListener mObjectPickedListener; public RayPicker(RajawaliRenderer renderer) { mRenderer = renderer; } public void setOnObjectPickedListener(OnObjectPickedListener objectPickedListener) { mObjectPickedListener = objectPickedListener; } public void getObjectAt(float x, float y) { Number3D pointNear = mRenderer.unProject(x, y, 0); Number3D pointFar = mRenderer.unProject(x, y, 1); RayPickingVisitor visitor = new RayPickingVisitor(pointNear, pointFar); mRenderer.accept(visitor); // TODO: ray-triangle intersection test mObjectPickedListener.onObjectPicked(visitor.getPickedObject()); } }