<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi Charlie,<DIV><SPAN class="Apple-tab-span" style="white-space:pre">  </SPAN>The answer is: sort of.  You can't get a callback for when a specific model moves, but you can get callbacks for when any models move and from there it's pretty easy to deduce if models you are interested in moved.  There are two possible triggers you could use.  The one most typically used is chimera.MOTION_STOP (mentioned in the Trigger Notifications programming example), which fires one second after models have stopped moving (the motion can be due to user interaction or programmatic repositioning).  On the assumption that what you want to do in response to the trigger is somewhat heavyweight, this is the trigger you would want to use.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">       </SPAN> The other trigger is 'OpenState', which will fire many times as a motion occurs.  If you use this trigger, you could check to see if the trigger data's 'modified' attribute contains the OpenState instance of the model(s) you care about and whether the trigger data's 'reasons' attribute contains the string "transformation change".</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">       </SPAN>There is an OpenState instance for each model ID/subID pair.  So some models share a single OpenState instance (e.g. a structure model and corresponding surface model).  Models have an 'openState' attribute, and OpenState instances have an 'xform' attribute containing the transformation matrix.  If you use the MOTION_STOP trigger, you would compare the transforms of the models you care about with previous ones that you'd saved to determine if the models had moved.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre"> </SPAN>UndoMove is an example of an extension that uses MOTION_STOP.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>--Eric</DIV><DIV><BR><DIV> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                        </SPAN>Eric Pettersen</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                        </SPAN>UCSF Computer Graphics Lab</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                        </SPAN><A href="mailto:pett@cgl.ucsf.edu">pett@cgl.ucsf.edu</A></FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                        </SPAN><A href="http://www.cgl.ucsf.edu">http://www.cgl.ucsf.edu</A></FONT></P> <BR class="Apple-interchange-newline"> </DIV><BR><DIV><DIV>On Nov 10, 2005, at 12:06 PM, Charlie Moad wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Is it possible to register a python callback for when a protein is</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">rotated and get the rotation information?</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Thanks,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space">     </SPAN>Charlie</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Chimera-users mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:Chimera-users@cgl.ucsf.edu">Chimera-users@cgl.ucsf.edu</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://www.cgl.ucsf.edu/mailman/listinfo/chimera-users">http://www.cgl.ucsf.edu/mailman/listinfo/chimera-users</A></DIV> </BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>