Re: DOF transformation ordering

New Message Reply Date view Thread view Subject view Author view

Marcus Barnes (marcus++at++multigen.com)
Mon, 10 Mar 1997 17:04:23 -0800


On Feb 6, 1:36pm, Mark Baranowski wrote:
> On Thu, 6 Feb 1997 17:40:02 -0530 (IST), Swapnil wrote:
> >Hi,
> >
> >Is there any way to find the DOF origin from Performer after DOF gets loaded
> >in scene by "pfdLoadFile()"???
>
> You need to use the flt loaders callback mechanism. There should be a
> readme file with the loader (or it's header file - can't remember)
> which explains how to do use it.
>
> Basically, you have to utilize the callback to get the 'put' and
> 'inverse put' matrices which localize the DOFs coordinate system. You
> need to store this information for each pfDCS node, then when you want
> to update it, you update with the matrix R where
>
> R = [Put * [T * [R * [S * InvPut]]]]
>
> where T, R and S are Translation, Rotation and Scale as required.

I was recently reworking some DOF code in the loader and found that the this
subject is documented incorrectly in the OpenFlight spec. and also in the
loader's readme file (it paraphrases the spec.)

I'll be making sure it gets corrected in both documents. In the meantime,
here's what the next readme file will say:

""begin quote""

----------------------------------------------------------
| Order of transformations |
----------------------------------------------------------

The order in which the DOF transformations are applied (multiplied) by
MultiGen is fixed, as follows:

        Result = [ Put * S * R * T * Inverse Put ]

Translations and scales are straightforward. The order of rotations in
a DOF is identical to Performer's heading, pitch and roll rotations that
are encapsulated in a pfCoord (these are referred to as Euler angles).
The only difference may be the terminology. Older versions of MultiGen
used the terms twist, azimuth and inclination to denote heading, pitch
and roll respectively in Performer.

The Performer man page on pfMakeEulerMat(3) or pfDCS(3) have a concise
description of how a set of Euler angles are composited into a rotation
matrix. In addition, the matrix equivalent of a pfCoord, containing both
transformations and rotations, can be calculated using
pfMakeCoordMat(3).

""end quote""

Regards.

--
+ Marcus Barnes, Technical Staff        mailto:marcus++at++multigen.com +
+ Multigen Inc.                         http://www.multigen.com    +
+ 550 S. Winchester Blvd.               phoneto:1-408-556-2654     +
+ Suite 500 San Jose CA 95128           faxto:1-408-261-4102       +
=======================================================================
List Archives, FAQ, FTP:  http://www.sgi.com/Technology/Performer/
            Submissions:  info-performer++at++sgi.com
        Admin. requests:  info-performer-request++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:54:52 PDT

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