Miguel, here is the list of commits I have performed organized by topic:

Jmol Scripting
rendering
file loading
miscellaneous
JavaScript public applet methods
Jmol-new.js


--------------
Jmol scripting
--------------

connect <min distance> <max distance> <bond type> <radius> (source atom selection) (target atom selection) with options NEW and EXISTS

measure <min distance> <max distance> (atom expr) (atom expr) ....
with ALL option (default is FIRST)

parameters are optional, but the ALL keyword is necessary if
the distances are omitted in order to designate that all
occurances within the atom sets are depicted. Examples:

measure 1.2 2.0 (carbon) (oxygen)
measure ALL (atomno=1) (atomno=2)

Note that unless otherwise specified, all matching
criteria in ALL frames are generated, thus allowing
for "animated" measures.

set measurement -- added "nm" and "pm" as equivalents to "nanometers" and "picometers"


more frame/model/animation features, including:

frame next
frame prev
frame playrev
frame pause
frame play
frame play [start]
frame play [start] [end]
frame resume
frame range [start] [end]
animation play
animation pause
animation resume

These allow "tape-recorder" type action, with the ability to designate a particular subset of the frames over which to iterate. Start and end frames can be designated in either order. Richard Spinney suggested this.

[now we need a little tape recorder control applet to coordinate with!]

examples:

frame play 3
  start from frame 3
frame play 3 10
  start from frame 3 and play through frame 10
frame play 10 3
  start from frame 10 and play through frame 3

frame pause
animation pause
  pause animation

frame play
animation resume
  start animation from current frame

define command change: Specifically in 'define' commands, the user may redefine terms, but we throw up a clear warning as to possible effects -- some commands (in this case frame) may not work properly after this definition.


select visible

where "visible" defined as
(a) atom is displayed as spacefill, wireframe, star, dots, halo, or vibration vector, or (b) a RasMol group containing that atom is displayed in some form -- cartoon, trace, ribbon, rockets, meshribbon, backbone

pmesh augmented such that if the fileName is given as the string "inline", then the next string is taken to be the equivalent of a pmesh file contents. Optionally, \n can be replaced by | if desired.

e.g.

allows for some interesting capability, including the scripted construction of points, lines, triangles, and rectangles at specific coordinates. See http://www.stolaf.edu/people/hansonr/jmol/test/json/pmesh.htm


load command now allows for multiple files; first parameter is any string; next strings are taken as file names to load; considered preliminary; not fully tested.

----------
rendering
---------

fixed /modelNumber display for non-PDB files
fixed restrict with backbone not behaving correctly
fixed %m error in label formats

fix for too long hydrogen bonds.


------------
file loading
------------
load allows for multiple files; first parameter is any string; next strings are taken as file names to load; not fully tested.

embedded in a data file you can specify a "default" script to run by having in the second line of either a MOL file or an XYZ file contain (at any position) "#jmolscript:" followed by a valid script.

friendlier file read when amino group atoms are WAY out of order.

-------------
miscellaneous
-------------

fixed scripting from menu not calling callback functions;
fixed script compiler not trapping errors


--------------------------------
JavaScript public applet methods
--------------------------------

applet.getProperty()
applet.getPropertyAsString()
applet.getPropertyAsJSON()

applet.scriptCheck()
applet.scriptWait(), which returns all status messages as a JSON string after running the script synchronously. Now one could combine .scriptWait() and .getProperty() for some pretty interesting effects.

applet.loadInline(strModel,script)

polling option instead of callbacks. See http://www.stolaf.edu/people/hansonr/jmol/test/json/callbacks.htm

applet.syncScript(mode, targetSuffix)

not fully articulated, but the basic idea being tested
here is direct applet-applet communication

where <mode> is one of:

"ON"   --driver of synchronizations
"SYNC" --turn on and sync, but not as a driver
"OFF"  --not synced (not quite working yet)

This uses a new public applet method, syncScript(), which
allows control of synchronization and passing of a reorientation script.

The method uses NO JavaScript -- the applets identify themselves
within a common registry and then talk directly to each other.

Part of the idea here is to experiment with this sort of direct
communication -- calling functions in a different applet.
I suspect there will be browser/platform issues.

-----------
Jmol-new.js
-----------

new public Javascript functions:

void loadInlineScript(strModel,script,targetSuffix)
JSArray jmolGetStatus(strStatus,targetSuffix)
JSArray jmolGetPropertyAsArray(sKey,sValue,targetSuffix)
String jmolGetPropertyAsString(sKey,sValue,targetSuffix)
String jmolGetPropertyAsJSON(sKey,sValue,targetSuffix)
JavaObject jmolGetPropertyAsJavaObject(sKey,sValue,targetSuffix)
String jmolScriptWait(script, targetSuffix)
void jmolSync(mode, targetSuffix)

see http://www.stolaf.edu/people/hansonr/jmol/test/json/Jmol-new.js


---------------------------------------------------------------


--

Robert M. Hanson, [EMAIL PROTECTED], 507-646-3107
Professor of Chemistry, St. Olaf College
1520 St. Olaf Ave., Northfield, MN 55057
mailto:[EMAIL PROTECTED]
http://www.stolaf.edu/people/hansonr

"Imagination is more important than knowledge."  - Albert Einstein



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers

Reply via email to