| 
 CAVE, navigation, tracked wand, coordinate systems
 I have Vizard running on two walls of a CAVE. Head-tracking is working perfectly, and I can use a tracked wand to point and fly around. Here's a code fragment to indicate what I've done so far: 
	Code: 
 # SyzygyTracker subclasses viz.VizNode+viz.EventClassviewtracker = SyzygyTracker( service, matrixIndex=0 )
 # Ditto for SyzygyNagivator
 navTracker = SyzygyNagivator( service, matrixIndex=1, xIndex=0, zIndex=1, speed=1. )
 # Create and configure a Cave object
 cave = vizcave.Cave()
 makeCAVE( cave )
 
 # Attach the head tracker
 cave.setTracker( pos=viewtracker, ori=viewtracker )
 
 # Attach the navigation (wand) tracker.
 caveorigin = vizcave.CaveView( viewtracker )
 navLink = viz.link( navTracker, caveorigin )
 I want to have a virtual object attached to the wand. I defined another tracker object tied to the wand and tried the following:
 
	Code: 
 wandTracker = SyzygyTracker( service, matrixIndex=1 )wandRender = viz.add('box.wrl')
 wandRender.setScale( .02, .02, 2. )
 wandLink = viz.link( wandTracker, wandRender )
 ...which initially works great, I end up with a virtual rod attached to the wand. However, its position is being set in world coordinates, so as soon as I start flying around it gets left behind. I've tried setting various Src and Dest flags on the link, or add()ing it to the caveorigin, but I don't really understand what I'm doing and the things I've tried so far haven't worked. What's the right  way to do this?
 
Thanks, 
-Jim |