[chimera-dev] Accessing rotation matrix of molecule models

Greg Couch gregc at cgl.ucsf.edu
Thu Jul 18 18:03:12 PDT 2002


Think of globalXform() as happening in the global (world/lab) coordinate
space and localXform() as happening the the model's coordinate space.

The point of having globalXform and localXform is to avoid having to know
if the coordinates are a row vector or a column vector with the
corresponding opposite orders of multiplication for the global/local
effect.  You don't know and you don't care :-) -- you just pick where you
want the transformation to take place.  That said, chimera's
transformations are for a right-handed coordinate system with coordinates
written as column vectors.

	Greg

On Thu, 18 Jul 2002, Thomas Goddard wrote:

>
>   I forgot to mention that the difference between the OpenState
> localXform(xform) and globalXform(xform) routines.  These routines
> change the current openState.xform by multiplying the xform argument
> on the right or left respectively.  If c = atom.coord() and orig_xf is
> the current openState.xform then the displayed position is orig_xf * c.
> After calling openState.localXform(xform) the displayed position is
>
>        orig_xf * xform * c,
>
> while after openState.globalXform(xform) the displayed position is
>
>       xform * orig_xf * c.
>
>   Tom




More information about the Chimera-dev mailing list