I do not know if I understand correctly ? Here is an example .
Clicks on the surface , in the console are the coordinates
import direct.directbase.DirectStart
from pandac.PandaModules import CollisionTraverser,CollisionNode
from pandac.PandaModules import CollisionHandlerQueue,CollisionRay, BitMask32
def pick():
if base.mouseWatcherNode.hasMouse():
mpos = base.mouseWatcherNode.getMouse()
pickerRay.setFromLens(base.camNode, mpos.getX(), mpos.getY())
picker.traverse(render)
for i in xrange(pickerQ.getNumEntries()):
entry = pickerQ.getEntry(i)
print 'entry '+str(entry.getSurfacePoint(render))
terrain = loader.loadModel("Plane.egg")
terrain.setPos(0, 0, 0)
terrain.reparentTo(render)
picker = CollisionTraverser()
pickerQ = CollisionHandlerQueue()
pickerCollN = CollisionNode('mouseRay')
pickerCamN = base.camera.attachNewNode(pickerCollN)
pickerCollN.setFromCollideMask(BitMask32.bit(1))
pickerCollN.setIntoCollideMask(BitMask32.allOff())
pickerRay = CollisionRay()
pickerCollN.addSolid(pickerRay)
picker.addCollider(pickerCamN, pickerQ)
base.accept('mouse1', pick)
run()
Another wonderful example:
Plane.egg (23 KB)