Eric, I'm glad you are looking at sync. I'll take a look myself and see what I can come up with.
Eric Martz wrote: >Dear Bob, > >1. Bug: At http://moleculesinmotion.com/patterson_aas2/aminoacids/ >(Jmol 11.5.50) > >If you open one console and enter "sync * on", and then rotate any >molecule with the mouse, the entire bottom row "flips upside down" >(does a 180 degree X rotation). I see this in both Safari/OSX and >Firefox/Win98. > > cool effect. ;) >I have seen intermittant problems of this sort many times in my JTAT >sync demos, but never had one so reproducible that I could report it >as a bug. The above page seems to demonstrate the bug nicely. > > > I'll look at that page. >2. Why is it that when "show syncmouse" reports "synchmouse = false" >(the default), a "sync * on" command nevertheless synchronizes >mouse-initiated movements? What is the effect of "set syncmouse true"? > > > The code at http://chemapps.stolaf.edu/jmol/docs/examples-11/sync4.htm uses the following. "drive" is a checkbox. function sync() { var syncing = document.getElementById("drive").checked var s = (syncing ? 'sync * on;sync * "set syncMouse on;set syncScript off";sync jmolAppletC SLAVE;sync jmolAppletD SLAVE': 'sync * off') jmolScript(s, "A"); } Applet A is being designated as the driver. It gets sent sync * on which enables all the sync on all four applets. sync * "set syncMouse on;set syncScript off" sends the message to all applets to turn mouse syncing on and script syncing off. Script syncing is off so that you can selectively render structures in any one of the four applets. sync jmolAppletC SLAVE;sync jmolAppletD SLAVE sets both C and D as slaves, but leaves A and B as drivers. The difference between set syncMouse TRUE and set syncMouse FALSE is that in the first case, the mouse syncing is carried out at a lower level using special non-script commands. Using set LogLevel 5 you can check that out. Just look at the Java Console: sync * "set syncMouse TRUE" jmolAppletB__3539942059766625__ sending to jmolAppletC__3539942059766625__: Mouse: rotateXYBy 2 2 jmolAppletC__3539942059766625__ syncing with script: Mouse: rotateXYBy 2 2 jmolAppletB__3539942059766625__ sending to jmolAppletD__3539942059766625__: Mouse: rotateXYBy 1 1 jmolAppletD__3539942059766625__ syncing with script: Mouse: rotateXYBy 1 1 jmolAppletB__3539942059766625__ sending to jmolAppletA__3539942059766625__: Mouse: rotateXYBy 1 1 jmolAppletA__3539942059766625__ syncing with script: Mouse: rotateXYBy 1 1 jmolAppletA__3539942059766625__ sync mode=3; synced? true; driving? true; disabled? true sync * "set syncMouse FALSE" jmolAppletB__3539942059766625__ sending to jmolAppletD__3539942059766625__: !moveto 0.1 { -344 540 -768 158.35} 100.0 0.0 0.0 {10.5935 10.2105 6.079} 17.392593 {0.0 0.0 0.0} 11.275982 -43.427624 50.0; jmolAppletD__3539942059766625__ syncing with script: !moveto 0.1 { -344 540 -768 158.35} 100.0 0.0 0.0 {10.5935 10.2105 6.079} 17.392593 {0.0 0.0 0.0} 11.275982 -43.427624 50.0; jmolAppletB__3539942059766625__ sending to jmolAppletA__3539942059766625__: !moveto 0.1 { -344 540 -768 158.35} 100.0 0.0 0.0 {10.5935 10.2105 6.079} 17.392593 {0.0 0.0 0.0} 11.275982 -43.427624 50.0; jmolAppletA__3539942059766625__ syncing with script: !moveto 0.1 { -344 540 -768 158.35} 100.0 0.0 0.0 {10.5935 10.2105 6.079} 17.392593 {0.0 0.0 0.0} 11.275982 -43.427624 50.0; jmolAppletA__3539942059766625__ sync mode=3; synced? true; driving? true; disabled? true So the difference there is mostly efficiency. The first should be cleaner. >3. After "sync * on", "show sync" reports "synchronize = <not set>". ??? > > > There is no variable "synchronize". "sync * on" is a command, not a variable definition. Right now there is no way for the applet to find out what its sync state is. >4. I do not see syncMouse or syncScript in the state report. Should >they be there if they remain at defaults? > > I thought not. The state is the state of the isolated applet, not its state relative to other applets. Right now, at least, you can't save the state, reset the sync, and then restore the state to the earlier sync state. Sounds like a real can of worms to me. Or, to put it another way, applet synchonization is "above" the state. Note that you can zap and load models and "initialize" and all the synchronization is still intact. >Thanks, -Eric > > > >------------------------------------------------------------------------- >This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >Build the coolest Linux based applications with Moblin SDK & win great prizes >Grand prize is a trip for two to an Open Source event anywhere in the world >http://moblin-contest.org/redirect.php?banner_id=100&url=/ >_______________________________________________ >Jmol-users mailing list >[email protected] >https://lists.sourceforge.net/lists/listinfo/jmol-users > > -- Robert M. Hanson Professor of Chemistry St. Olaf College Northfield, MN http://www.stolaf.edu/people/hansonr If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Jmol-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jmol-users

