[chimera-dev] Accessing rotation matrix of molecule models
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.
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.
More information about the Chimera-dev