Yes, this is how most people implement crosshairs for stereo viewing. Here is a sample script that will place a crosshair 0.1 meters in front of the user.
Code:
import viz
viz.go(viz.STEREO)
viz.add('tut_ground.wrl')
viz.clearcolor(viz.GRAY)
crosshair = viz.add(viz.TEXQUAD)
crosshair.texture(viz.add('crosshair.png'))
crosshair.scale(0.01,0.01,0.01)
viz.mouse(viz.OFF)
def ontimer(num):
line = viz.screentoworld(viz.mousepos())
v = viz.Vector(viz.get(viz.HEAD_POS))
dir = viz.Vector(line[3:]) - viz.Vector(line[:3])
dir.normalize()
dir *= 0.1 #Place crosshair 1/10th meter in front of user
v += dir
crosshair.translate(v.get())
crosshair.rotatequat(viz.get(viz.VIEW_QUAT))
viz.callback(viz.TIMER_EVENT,ontimer)
viz.starttimer(0,0,viz.FOREVER)