[chimera-dev] Accessing rotation matrix of molecule models
Mike Liang
mliang at stanford.edu
Thu Jul 18 18:14:03 PDT 2002
Hi guys,
Thank you so much for your quick responses. They were exactly what I was
looking for.
Thanks!
Mike
On Thu, 18 Jul 2002, Greg Couch wrote:
Date: Thu, 18 Jul 2002 18:03:12 -0700 (PDT)
From: Greg Couch <gregc at cgl.ucsf.edu>
To: Thomas Goddard <goddard at cgl.ucsf.edu>
Cc: mliang at Stanford.EDU, chimera-dev at cgl.ucsf.edu
Subject: Re: [chimera-dev] Accessing rotation matrix of molecule models
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