Node Traversal

New Message Reply Date view Thread view Subject view Author view

Allan Schaffer (aschaffe)
Tue, 27 Sep 1994 17:46:35 -0700


On Sep 27, 1:46pm, lee robie wrote:
> When using a pfuXformer, why does Perfly sometimes update the channel
> view, and sometimes update a DCS? from perfly.c:
>
> case PFUXF_DRIVE:
> pfChanViewMat(chan, mat); <=============
>
> case PFUXF_TRACKBALL:
> pfDCSMat(ViewState->sceneDCS, mat); <=============
>
> if these are really just different viewing models, why are different
> update mechanisms used? could you use pfChanViewMat for the 2nd case?

The conceptual purpose is (I believe) an easy way of implementing
pre- vs post-multiplication of eyepoint transformations.

With DRIVE and FLY modes, this is the typical out-the-window
post-mult style where transformations are relative to the axis
defined by the current eyepoint xyz and hpr. That means, for
example, if I am looking at the esprit model and change the pitch by
+90 degrees, the esprit will slide off the bottom of the screen and
I'll be looking straight up into the sky.

TRACKBALL mode is one where transformations are pre-multiplied,
meaning they are relative to the axis' defined by the scene itself.
So if I (again) gaze at the esprit and change the pitch by +90
degrees, the esprit itself will rotate 90 degrees on its axis and
will now be standing on its side.

Allan

-- 
Allan Schaffer
Silicon Graphics
aschaffe++at++sgi.com

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:50:33 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.