From: owner-3dui@hitl.washington.edu on behalf of Doug Bowman [bowman@vt.edu] Sent: Tuesday, December 12, 2000 3:03 PM To: 3dui List Subject: description of an IT Greetings! I see that no one was brave enough to accept my challenge to describe your favorite interaction technique. So, I thought I would give it a shot. Here's a description of the Go-Go technique (only the selection part, not manipulation). Remember that my goal here is for this to be understandable, yet precise. --------------------------------------------------------------------- // declarations and definitions constant GOGOTHRESHOLD = 0.3 meters; object headTracker; object handTracker; object virtualHand; object selectableObjects[N]; 3Dpoint headPosition; 3Dpoint handPosition; 3Dpoint virtualHandPosition; 3Dpoint torsoPoint; float virtualHandDistance; vector virtualHandVector; // all of this should happen before every frame is rendered headPosition = world coord. position of headTracker; handPosition = world coord. position of handTracker; // assuming y is the vertical axis torsoPoint = (headPosition.x, headPosition.y - 0.5, headPosition.z) if(distance(torsoPoint, handPosition) <= GOGOTHRESHOLD) then virtualHandPosition = handPosition; move(virtualHand, virtualHandPosition); else virtualHandDistance = GoGoFunction(distance(torsoPoint, handPosition)); virtualHandVector = handPosition - torsoPoint; normalize(virtualHandVector); virtualHandPosition = torsoPoint + (virtualHandVector * virtualHandDistance); move(virtualHand, virtualHandPosition); for i from 0 to N if(highlighted(selectableObjects[i]) unhighlight(selectableObjects[i]); if(intersects(boundingBox(virtualHand), boundingBox(selectableObjects[i])) highlight(selectableObjects[i]); --------------------------------------------------------------------- Thoughts and comments are welcome. Is this a good level of description? What's missing? What details are irrelevant? I didn't include many comments on purpose so that you could see if the description itself is understandable. Best, Doug -- Doug A. Bowman, Ph.D. (540) 231-7537 Assistant Professor bowman@vt.edu Computer Science www.cs.vt.edu/~bowman/ Virginia Tech