From: <ha...@us...> - 2009-06-24 14:18:59
|
Revision: 11105 http://jmol.svn.sourceforge.net/jmol/?rev=11105&view=rev Author: hansonr Date: 2009-06-24 14:03:51 +0000 (Wed, 24 Jun 2009) Log Message: ----------- version=11.7.45_dev # bug fix: problems with PAUSE/RESUME within App Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java trunk/Jmol/src/org/jmol/viewer/StateManager.java Modified: trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java 2009-06-24 13:32:31 UTC (rev 11104) +++ trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java 2009-06-24 14:03:51 UTC (rev 11105) @@ -199,7 +199,7 @@ if (withVariables) { if (stack[i].contextVariables != null) { sb.append(getScriptID(stack[i])); - sb.append(StateManager.getVariableList(stack[i].contextVariables)); + sb.append(StateManager.getVariableList(stack[i].contextVariables, 80)); } } else { sb.append(setErrorLineMessage(stack[i].functionName, stack[i].filename, @@ -210,7 +210,7 @@ if (withVariables) { if (contextVariables != null) { sb.append(getScriptID(null)); - sb.append(StateManager.getVariableList(contextVariables)); + sb.append(StateManager.getVariableList(contextVariables, 80)); } } else { sb.append(setErrorLineMessage(functionName, filename, @@ -775,17 +775,18 @@ pc++; if (error) scriptStatusOrBuffer(errorMessage); - pauseExecution(); + else + pauseExecution(); } } - viewer.scriptStatus("script execution resumed"); + viewer.scriptStatus("script execution " + (error || interruptExecution ? "interrupted" : "resumed")); } catch (Exception e) { } Logger.debug("script execution resumed"); } // once more to trap quit during pause - return !interruptExecution; + return !error && !interruptExecution; } private int commandHistoryLevelMax = 0; Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateManager.java 2009-06-24 13:32:31 UTC (rev 11104) +++ trunk/Jmol/src/org/jmol/viewer/StateManager.java 2009-06-24 14:03:51 UTC (rev 11105) @@ -68,7 +68,7 @@ public final static int OBJ_MAX = 7; private final static String objectNameList = "background axis1 axis2 axis3 boundbox unitcell frank "; - static String getVariableList(Hashtable htVariables) { + static String getVariableList(Hashtable htVariables, int nMax) { StringBuffer sb = new StringBuffer(); //user variables only: int n = 0; @@ -79,7 +79,7 @@ String key = (String) e.nextElement(); ScriptVariable var = (ScriptVariable) htVariables.get(key); list[n++] = key + (key.charAt(0) == '@' ? " " - + ScriptVariable.sValue(var) : " = " + var.escape()); + + ScriptVariable.sValue(var) : " = " + varClip(key, var.escape(), nMax)); } Arrays.sort(list, 0, n); for (int i = 0; i < n; i++) @@ -466,7 +466,7 @@ Hashtable localFunctions = new Hashtable(); boolean isFunction(String name) { - return (name.indexOf("_") == 0 ? localFunctions : globalFunctions).containsKey(name); + return (name.indexOf("_") == 0 ? globalFunctions : localFunctions).containsKey(name); } void addFunction(ScriptFunction function) { @@ -943,12 +943,7 @@ name = name.toLowerCase(); if (htParameterValues.containsKey(name)) { Object v = htParameterValues.get(name); - String sv = Escape.escape(v); - if (nMax > 0 && sv.length() > nMax) - sv = sv.substring(0, nMax) + "\n#...(" + sv.length() - + " bytes -- use SHOW " + name + " or MESSAGE @" + name - + " to view)"; - return sv; + return varClip(name, Escape.escape(v), nMax); } if (htPropertyFlags.containsKey(name)) return htPropertyFlags.get(name).toString(); @@ -1111,7 +1106,7 @@ appendCmd(commands, list[i]); commands.append("\n#user-defined variables; \n"); - commands.append(StateManager.getVariableList(htUserVariables)); + commands.append(StateManager.getVariableList(htUserVariables, 0)); // label defaults @@ -1349,7 +1344,7 @@ } String getVariableList() { - return StateManager.getVariableList(htUserVariables); + return StateManager.getVariableList(htUserVariables, 0); } } @@ -1368,6 +1363,14 @@ bs.set(i); } + public static String varClip(String name, String sv, int nMax) { + if (nMax > 0 && sv.length() > nMax) + sv = sv.substring(0, nMax) + " #...more (" + sv.length() + + " bytes -- use SHOW " + name + " or MESSAGE @" + name + + " to view)"; + return sv; + } + public static String getCommands(Hashtable ht) { return getCommands(ht, null, -1, "select"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-24 20:48:45
|
Revision: 11110 http://jmol.svn.sourceforge.net/jmol/?rev=11110&view=rev Author: hansonr Date: 2009-06-24 20:48:42 +0000 (Wed, 24 Jun 2009) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java 2009-06-24 20:21:39 UTC (rev 11109) +++ trunk/Jmol/src/org/jmol/viewer/ScriptEvaluator.java 2009-06-24 20:48:42 UTC (rev 11110) @@ -842,6 +842,9 @@ } else { v = getParameter(var, false); } + tok = tokAt(0); + boolean forceString = (Token.tokAttr(tok, Token.implicitStringCommand) + || tok == Token.load || tok == Token.script); // for the file names if (v instanceof ScriptVariable) { fixed[j] = (Token) v; if (isExpression && fixed[j].tok == Token.list) @@ -865,12 +868,19 @@ if (v instanceof ScriptVariable) { fixed[j] = (Token) v; } else { - // identifiers cannot have periods; file names can, though s = (String) v; if (isExpression) { fixed[j] = new Token(Token.bitset, getAtomBitSet(this, s)); } else { - tok = (isClauseDefine || tokAt(0) == Token.load && j == 1 + // bit of a hack here.... + // identifiers cannot have periods; file names can, though + // TODO: this is still a hack + // what we really need to know is what the compiler + // expects here -- a string or an identifier, because + // they will be processed differently. + // a filename with only letters and numbers will be + // read incorrectly here as an identifier. + tok = (isClauseDefine || forceString || s.indexOf(".") >= 0 || s.indexOf(" ") >= 0 || s.indexOf("=") >= 0 || s.indexOf(";") >= 0 || s.indexOf("[") >= 0 @@ -884,9 +894,11 @@ fixed[j] = new Token(Token.point3f, v); } else if (v instanceof Point4f) { fixed[j] = new Token(Token.point4f, v); + } else if (v instanceof String[]) { + fixed[j] = new Token(Token.string, Escape.escape((String[])v)); } else { Point3f center = getObjectCenter(var, Integer.MIN_VALUE); - if (center == null) + if (center == null) error(ERROR_invalidArgument); fixed[j] = new Token(Token.point3f, center); } @@ -5320,6 +5332,7 @@ private void script(int tok) throws ScriptException { boolean loadCheck = true; boolean isCheck = false; + boolean doStep = false; int lineNumber = 0; int pc = 0; int lineEnd = 0; @@ -5348,19 +5361,18 @@ return; } } else { - if (getToken(1).tok != Token.string) + i = 1; + if (getToken(i).tok != Token.string) error(ERROR_filenameExpected); filename = theScript; theScript = null; + String option = optParameterAsString(statementLength - 1); + doStep = option.equalsIgnoreCase("step"); if (filename.equalsIgnoreCase("inline")) { - theScript = parameterExpression(2, 0, "_script", false).toString(); + theScript = parameterExpression(2, (doStep ? statementLength - 1 : 0), "_script", false).toString(); i = iToken + 1; } - String option = optParameterAsString(i); - if (option.equalsIgnoreCase("check")) { - isCheck = true; - option = optParameterAsString(++i); - } + option = optParameterAsString(i); if (option.equalsIgnoreCase("noload")) { loadCheck = false; option = optParameterAsString(++i); @@ -5384,7 +5396,7 @@ else error(ERROR_invalidArgument); } - checkLength(i); + checkLength(doStep ? i + 1 : i); } if (isSyntaxCheck && !checkingScriptOnly) return; @@ -5404,6 +5416,7 @@ this.pc = pc; boolean saveLoadCheck = fileOpenCheck; fileOpenCheck = fileOpenCheck && loadCheck; + executionStepping = doStep; instructionDispatchLoop(isCheck); if (debugScript && viewer.getMessageStyleChime()) viewer.scriptStatus("script <exiting>"); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-06-24 20:21:39 UTC (rev 11109) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-06-24 20:48:42 UTC (rev 11110) @@ -3650,6 +3650,8 @@ if (allowSyncScript && statusManager.syncingScripts && strScript.indexOf("#NOSYNC;") < 0) syncScript(strScript + " #NOSYNC;", null); + if (eval.isExecutionPaused() && strScript.charAt(0) != '!') + strScript = '!' + TextFormat.trim(strScript, "\n\r\t "); boolean isInterrupt = (strScript.length() > 0 && strScript.charAt(0) == '!'); if (isInterrupt) strScript = strScript.substring(1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-09-07 08:03:31
|
Revision: 11493 http://jmol.svn.sourceforge.net/jmol/?rev=11493&view=rev Author: hansonr Date: 2009-09-07 08:03:19 +0000 (Mon, 07 Sep 2009) Log Message: ----------- version=11.9.3_dev # bug fix: "zapped" file does not clear menu Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-07 05:33:46 UTC (rev 11492) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-07 08:03:19 UTC (rev 11493) @@ -3,6 +3,8 @@ version=11.9.3_dev +# bug fix: "zapped" file does not clear menu + # new feature: symop(-m) -- use for "reverse of" n # new feature: symop("!x..y..z..") "reverse of" "x..y..z.." # new feature: 3x3 or 4x4 matrix element get/set: Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2009-09-07 05:33:46 UTC (rev 11492) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2009-09-07 08:03:19 UTC (rev 11493) @@ -354,11 +354,11 @@ synchronized void setFileLoadStatus(String fullPathName, String fileName, String modelName, String errorMsg, int ptLoad, boolean doCallback) { - if (fullPathName == null) { + if (fullPathName == null && fileName != null && fileName.equals("resetUndo")) { JmolAppConsoleInterface appConsole = (JmolAppConsoleInterface) viewer.getProperty("DATA_API", "getAppConsole", null); - if (fileName != null && appConsole != null) + if (appConsole != null) appConsole.zap(); - return; + fileName = "zapped"; } setStatusChanged("fileLoaded", ptLoad, fullPathName, false); if (errorMsg != null) Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-09-07 05:33:46 UTC (rev 11492) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-09-07 08:03:19 UTC (rev 11493) @@ -2214,7 +2214,7 @@ initializeModel(); if (notify) setFileLoadStatus(FILE_STATUS_ZAPPED, null, (resetUndo ? "resetUndo" - : null), null, null); + : "zapped"), null, null); if (Logger.debugging) Logger.checkMemory(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-09-20 17:19:21
|
Revision: 11544 http://jmol.svn.sourceforge.net/jmol/?rev=11544&view=rev Author: hansonr Date: 2009-09-20 17:19:15 +0000 (Sun, 20 Sep 2009) Log Message: ----------- version=11.9.5 # bug fix: initialize does not reset antialiasDisplay or set animation off Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-20 17:18:29 UTC (rev 11543) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-20 17:19:15 UTC (rev 11544) @@ -3,7 +3,7 @@ version=11.9.5 -# bug fix: initialize does not reset antialiasDisplay +# bug fix: initialize does not reset antialiasDisplay or set animation off # # new feature: shape size setting and query: # Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-09-20 17:18:29 UTC (rev 11543) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-09-20 17:19:15 UTC (rev 11544) @@ -575,6 +575,7 @@ setSpecularExponent(global.specularExponent); setSpecularPower(global.specularPower); + animationManager.setAnimationOn(false); animationManager.setAnimationFps(global.animationFps); statusManager.setAllowStatusReporting(global.statusReporting); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-09-24 04:20:17
|
Revision: 11569 http://jmol.svn.sourceforge.net/jmol/?rev=11569&view=rev Author: hansonr Date: 2009-09-24 04:20:09 +0000 (Thu, 24 Sep 2009) Log Message: ----------- version=11.9.6_dev # bug fix: file drop needs zap prior to load for cleaner operation Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-24 04:19:35 UTC (rev 11568) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-24 04:20:09 UTC (rev 11569) @@ -3,6 +3,7 @@ version=11.9.6_dev +# bug fix: file drop needs zap prior to load for cleaner operation # bug fix: Hall symbol translation generates incorrect Jones-Faithful operation (missing translation) # -- Thank you, Sarah Mattler, WUSTL! Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-09-24 04:19:35 UTC (rev 11568) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-09-24 04:20:09 UTC (rev 11569) @@ -1710,7 +1710,7 @@ if (scriptEditorVisible && allowScript) showEditor(new String[] { fileName, getFileAsString(fileName) }); else - evalString((allowScript ? "script " : "load ") + evalString((allowScript ? "script " : "zap;load ") + Escape.escape(fileName)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-10-01 03:20:24
|
Revision: 11575 http://jmol.svn.sourceforge.net/jmol/?rev=11575&view=rev Author: hansonr Date: 2009-10-01 03:20:15 +0000 (Thu, 01 Oct 2009) Log Message: ----------- version=11.9.6_dev # bug fix: incorrect reference to jmolStatusListener for sync callback in StateManager Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StatusManager.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-09-30 13:03:06 UTC (rev 11574) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-10-01 03:20:15 UTC (rev 11575) @@ -3,6 +3,7 @@ version=11.9.6_dev +# bug fix: incorrect reference to jmolStatusListener for sync callback in StateManager # bug fix: file drop needs zap prior to load for cleaner operation # bug fix: Hall symbol translation generates incorrect Jones-Faithful operation (missing translation) # -- Thank you, Sarah Mattler, WUSTL! Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2009-09-30 13:03:06 UTC (rev 11574) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2009-10-01 03:20:15 UTC (rev 11575) @@ -591,7 +591,7 @@ void syncSend(String script, String appletName) { // no jmolscript option for syncSend - if (jmolStatusListener != null) + if (notifyEnabled(JmolConstants.CALLBACK_SYNC)) jmolCallbackListener.notifyCallback(JmolConstants.CALLBACK_SYNC, new Object[] { null, script, appletName }); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-11-12 13:05:16
|
Revision: 11728 http://jmol.svn.sourceforge.net/jmol/?rev=11728&view=rev Author: hansonr Date: 2009-11-12 13:05:04 +0000 (Thu, 12 Nov 2009) Log Message: ----------- version=11.9.9_dev # bug fix: zoomto fights with user over orientation Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-11-12 13:04:25 UTC (rev 11727) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-11-12 13:05:04 UTC (rev 11728) @@ -3,6 +3,7 @@ version=11.9.9_dev +# bug fix: zoomto fights with user over orientation # bug fix: AIMS files with empty lines preceding keyword lines are now recognized # bug fix: AIMS reader not reading multipole lines describing monopoles # bug fix: CASTEP and AIMS readers now properly load unit cells using cell vectors Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2009-11-12 13:04:25 UTC (rev 11727) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2009-11-12 13:05:04 UTC (rev 11728) @@ -637,7 +637,8 @@ } void setRotation(Matrix3f matrixRotation) { - matrixRotate.set(matrixRotation); + if (!Float.isNaN(matrixRotation.m00)) + matrixRotate.set(matrixRotation); } void getRotation(Matrix3f matrixRotation) { @@ -1504,7 +1505,7 @@ Vector3f axis = new Vector3f(rotAxis); if (Float.isNaN(degrees)) { - getRotation(matrixEnd); + matrixEnd.m00 = Float.NaN; } else if (degrees < 0.01f && degrees > -0.01f) { //getRotation(matrixEnd); matrixEnd.setIdentity(); @@ -1547,10 +1548,8 @@ zoom = zoomPercent; getRotation(matrixStart); matrixStartInv.invert(matrixStart); - matrixStep.mul(matrixEnd, matrixStartInv); aaTotal.set(matrixStep); - int fps = 30; int totalSteps = (int) (floatSecondsTotal * fps); if (floatSecondsTotal > 0) @@ -1583,18 +1582,19 @@ for (int iStep = 1; iStep < totalSteps; ++iStep) { - getRotation(matrixStart); - matrixStartInv.invert(matrixStart); - matrixStep.mul(matrixEnd, matrixStartInv); - aaTotal.set(matrixStep); - - aaStep.set(aaTotal); - aaStep.angle /= (totalSteps - iStep); - if (aaStep.angle == 0) - matrixStep.setIdentity(); - else - matrixStep.set(aaStep); - matrixStep.mul(matrixStart); + if (!Float.isNaN(matrixEnd.m00)) { + getRotation(matrixStart); + matrixStartInv.invert(matrixStart); + matrixStep.mul(matrixEnd, matrixStartInv); + aaTotal.set(matrixStep); + aaStep.set(aaTotal); + aaStep.angle /= (totalSteps - iStep); + if (aaStep.angle == 0) + matrixStep.setIdentity(); + else + matrixStep.set(aaStep); + matrixStep.mul(matrixStart); + } float fStep = iStep / (totalSteps - 1f); modelRadius = startRotationRadius + rotationRadiusDelta * fStep; scaleDefaultPixelsPerAngstrom = startPixelScale + pixelScaleDelta Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-11-12 13:04:25 UTC (rev 11727) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-11-12 13:05:04 UTC (rev 11728) @@ -770,12 +770,12 @@ moveUpdate(floatSecondsTotal); } - public void moveTo(float floatSecondsTotal, Point3f center, Vector3f pt, + public void moveTo(float floatSecondsTotal, Point3f center, Vector3f rotAxis, float degrees, float zoom, float xTrans, float yTrans, float rotationRadius, Point3f navCenter, float xNav, float yNav, float navDepth) { // from Eval - transformManager.moveTo(floatSecondsTotal, center, pt, degrees, zoom, + transformManager.moveTo(floatSecondsTotal, center, rotAxis, degrees, zoom, xTrans, yTrans, rotationRadius, navCenter, xNav, yNav, navDepth); moveUpdate(floatSecondsTotal); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-11-15 18:08:48
|
Revision: 11743 http://jmol.svn.sourceforge.net/jmol/?rev=11743&view=rev Author: hansonr Date: 2009-11-15 18:08:32 +0000 (Sun, 15 Nov 2009) Log Message: ----------- version=11.9.9_dev Gestures # new feature: zoom gesture: LEFT vertical motion within right 2% of screen # does zoom and shows zoom cursor # new feature: swipe gesture: LEFT motion of at least 10 microsteps stopped # and mouse released within 50 ms of each other starts spinning (like Google Earth) # # code: ActionManager and Binding variations (finally!) isolates # key/button mouse actions and Jmol actions to allow for a generalized # binding of "gestures" to Jmol actions. Included are four bindings: # Jmol, Rasmol, Drag, and Pfaat. This is in preparation for incorporating # multitouch capability in Jmol Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/jmol/viewer/binding/JmolBinding.java Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2009-11-15 11:09:27 UTC (rev 11742) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2009-11-15 18:08:32 UTC (rev 11743) @@ -46,6 +46,7 @@ public final static int ACTION_zoom = 3; public final static int ACTION_translateXY = 4; public final static int ACTION_rotateMolecule = 5; + public final static int ACTION_slideZoom = 6; public final static int ACTION_dragSelected = 101; public final static int ACTION_dragLabel = 102; @@ -92,6 +93,7 @@ private final static long MAX_DOUBLE_CLICK_MILLIS = 700; private static final long MININUM_GESTURE_DELAY_MILLISECONDS = 50; + private static final int SLIDE_ZOOM_X_PERCENT = 98; protected Viewer viewer; @@ -383,12 +385,16 @@ viewer.checkObjectDragged(Integer.MIN_VALUE, 0, x, y, action); return; } - if (dragSelectedMode) + if (dragSelectedMode) { viewer.moveSelected(Integer.MIN_VALUE, 0, 0, 0, false); + return; + } + checkMotionRotateZoom(action, x, 0, 0); } void mouseReleased(long time, int x, int y, int mods) { hoverOff(); + viewer.spinXYBy(0, 0, 0); timeCurrent = time; xCurrent = x; yCurrent = y; @@ -458,18 +464,24 @@ viewer.translateXYBy(deltaX, deltaY); return; } + + if (checkMotionRotateZoom(action, x, deltaX, deltaY)) { + viewer.zoomBy(deltaY); + return; + } + if (isBound(action, ACTION_rotateXY)) { - checkMotion(); - viewer.rotateXYBy(deltaX, deltaY); - return; + viewer.rotateXYBy(deltaX, deltaY); + return; } + if (dragSelectedMode && isBound(action, ACTION_dragSelected)) { - checkMotion(); + checkMotion(Viewer.CURSOR_MOVE); viewer.moveSelected(deltaX, deltaY, x, y, false); return; } if (viewer.allowRotateSelected() && isBound(action, ACTION_rotateMolecule)) { - checkMotion(); + checkMotion(Viewer.CURSOR_MOVE); viewer.rotateMolecule(deltaX, deltaY); return; } @@ -477,13 +489,13 @@ isBound(action, ACTION_dragDrawObject) || isBound(action, ACTION_dragDrawPoint)) || labelMode && isBound(action, ACTION_dragLabel)) { - checkMotion(); + checkMotion(Viewer.CURSOR_MOVE); viewer.checkObjectDragged(previousDragX, previousDragY, x, y, action); return; } if (dragSelectedMode && isBound(action, ACTION_dragSelected)) { - checkMotion(); + checkMotion(Viewer.CURSOR_MOVE); viewer.moveSelected(deltaX, deltaY, x, y, true); return; } @@ -501,20 +513,20 @@ if (isZoom && isRotateZ) { if (Math.abs(deltaY) > 5 * Math.abs(deltaX)) { // if (deltaY < 0 && deltaX > deltaY || deltaY > 0 && deltaX < deltaY) - checkMotion(); + checkMotion(Viewer.CURSOR_ZOOM); viewer.zoomBy(deltaY); } else if (Math.abs(deltaX) > 5 * Math.abs(deltaY)) { // if (deltaX < 0 && deltaY > deltaX || deltaX > 0 && deltaY < deltaX) - checkMotion(); + checkMotion(Viewer.CURSOR_MOVE); viewer.rotateZBy(-deltaX); } return; } else if (isZoom) { - checkMotion(); + checkMotion(Viewer.CURSOR_ZOOM); viewer.zoomBy(deltaY); return; } else if (isRotateZ) { - checkMotion(); + checkMotion(Viewer.CURSOR_MOVE); viewer.rotateZBy(-deltaX); return; } @@ -534,6 +546,24 @@ } } + private boolean checkMotionRotateZoom(int action, int x, int deltaX, int deltaY) { + boolean isZoom = isBound(action, ACTION_zoom); + boolean isSlideZoom = isBound(action, ACTION_slideZoom); + boolean isRotateXY = isBound(action, ACTION_rotateXY); + if (!isZoom && !isSlideZoom && !isRotateXY) + return false; + if (isRotateXY && isSlideZoom) + isSlideZoom = isZoomArea(x) + && (deltaX == 0 || Math.abs(deltaY) > 5 * Math.abs(deltaX)); + checkMotion(isZoom || isSlideZoom ? Viewer.CURSOR_ZOOM + : isRotateXY ? Viewer.CURSOR_MOVE : Viewer.CURSOR_DEFAULT); + return isSlideZoom; + } + + private boolean isZoomArea(int x) { + return x > viewer.getScreenWidth()* SLIDE_ZOOM_X_PERCENT / 100f; + } + private void checkPointOrAtomClicked(int x, int y, int mods, int clickCount) { if (!viewer.haveModelSet()) @@ -612,33 +642,8 @@ } } - - - - - - - - - - - - - - - - - - - - - - - - - void checkMotion() { - if (!viewer.getInMotion()) - viewer.setCursor(Viewer.CURSOR_MOVE); + private void checkMotion(int cursor) { + viewer.setCursor(cursor); viewer.setInMotion(true); } Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-11-15 11:09:27 UTC (rev 11742) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2009-11-15 18:08:32 UTC (rev 11743) @@ -3,16 +3,17 @@ version=11.9.9_dev -# new feature: swipe gesture starts spinning (like GoogleEarth) -# (defined as a mouse drag gesture that releases within 50 ms of -# previous motion and has at least 10 points) +# new feature: zoom gesture: LEFT vertical motion within right 2% of screen +# does zoom and shows zoom cursor +# new feature: swipe gesture: LEFT motion of at least 10 microsteps stopped +# and mouse released within 50 ms of each other starts spinning (like Google Earth) # # code: ActionManager and Binding variations (finally!) isolates # key/button mouse actions and Jmol actions to allow for a generalized # binding of "gestures" to Jmol actions. Included are four bindings: -# Jmol, Rasmol, Drag, and Pfaat. This is in preparation for creating -# a Jmol varient that utilizes multitouch screens. -# +# Jmol, Rasmol, Drag, and Pfaat. This is in preparation for incorporating +# multitouch capability in Jmol +# # new feature: expanded zoomTo: # zoomTo timeSeconds zoomLevel [xTrans] [yTrans] # bug fix: moveto with {0 0 0 0} uses instead {0 0 1 0} Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2009-11-15 11:09:27 UTC (rev 11742) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2009-11-15 18:08:32 UTC (rev 11743) @@ -315,6 +315,8 @@ void spinXYBy(int xDelta, int yDelta, float speed) { // from mouse action clearSpin(); + if (xDelta == 0 && yDelta == 0) + return; Point3f pt1 = new Point3f(fixedRotationCenter); Point3f ptScreen = new Point3f(); transformPoint(pt1, ptScreen); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-11-15 11:09:27 UTC (rev 11742) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2009-11-15 18:08:32 UTC (rev 11743) @@ -4180,6 +4180,7 @@ public final static int CURSOR_CROSSHAIR = 2; public final static int CURSOR_MOVE = 3; public final static int CURSOR_WAIT = 4; + public final static int CURSOR_ZOOM = 5; private int currentCursor = CURSOR_DEFAULT; @@ -4194,6 +4195,9 @@ case CURSOR_MOVE: c = Cursor.MOVE_CURSOR; break; + case CURSOR_ZOOM: + c = Cursor.N_RESIZE_CURSOR; + break; case CURSOR_CROSSHAIR: c = Cursor.CROSSHAIR_CURSOR; break; Modified: trunk/Jmol/src/org/jmol/viewer/binding/JmolBinding.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/binding/JmolBinding.java 2009-11-15 11:09:27 UTC (rev 11742) +++ trunk/Jmol/src/org/jmol/viewer/binding/JmolBinding.java 2009-11-15 18:08:32 UTC (rev 11743) @@ -24,6 +24,7 @@ bind(getMouseAction(SINGLE_CLICK,SHIFT_LEFT), ActionManager.ACTION_zoom); bind(getMouseAction(SINGLE_CLICK,MIDDLE), ActionManager.ACTION_zoom); + bind(getMouseAction(SINGLE_CLICK,LEFT), ActionManager.ACTION_slideZoom); bind(getMouseAction(SINGLE_CLICK,LEFT), ActionManager.ACTION_rotateXY); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-11-19 18:21:23
|
Revision: 11759 http://jmol.svn.sourceforge.net/jmol/?rev=11759&view=rev Author: hansonr Date: 2009-11-19 18:21:15 +0000 (Thu, 19 Nov 2009) Log Message: ----------- version=11.9.9_dev # new feature: preliminary customizable mouse bindings: # bind "MOUSE-ACTION" actionName|"...some script..." # unbind ["MOUSE-ACTION"|all] [actionName|all|"...some script..."] Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/binding/Binding.java Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2009-11-19 18:08:49 UTC (rev 11758) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2009-11-19 18:21:15 UTC (rev 11759) @@ -122,46 +122,46 @@ private final static String[] actionNames = new String[] { //0 - "rotate", - "wheelZoom", - "rotateZ", - "rotateZorZoom", - "translate", + "_rotate", + "_wheelZoom", + "_rotateZ", + "_rotateZorZoom", + "_translate", //5 - "slideZoom", - "dragSelected", - "rotateSelected", - "dragLabel", - "dragDrawPoint", + "_slideZoom", + "_dragSelected", + "_rotateSelected", + "_dragLabel", + "_dragDrawPoint", //10 - "dragDrawObject", - "swipe", - "spinDrawObjectCW", - "spinDrawObjectCCW", - "slab", + "_dragDrawObject", + "_swipe", + "_spinDrawObjectCW", + "_spinDrawObjectCCW", + "_slab", //15 - "depth", - "slabAndDepth", - "popupMenu", - "clickFrank", - "navTranslate", + "_depth", + "_slabAndDepth", + "_popupMenu", + "_clickFrank", + "_navTranslate", //20 - "pickAtom", - "pickPoint", - "pickLabel", - "pickMeasure", - "setMeasure", + "_pickAtom", + "_pickPoint", + "_pickLabel", + "_pickMeasure", + "_setMeasure", //25 - "pickIsosurface", - "pickNavigate", - "select", - "selectNone", - "selectToggle", + "_pickIsosurface", + "_pickNavigate", + "_select", + "_selectNone", + "_selectToggle", //30 - "selectAndNot", - "selectOr", - "selectToggleOr", - "reset", + "_selectAndNot", + "_selectOr", + "_selectToggleOr", + "_reset", }; public static String getActionName(int i) { return (i < actionNames.length ? actionNames[i] : null); @@ -257,6 +257,9 @@ binding.unbind(mouseAction, jmolAction); else binding.unbind(mouseAction, name); + if (name == null) + binding.unbindUserAction(desc); + } protected Thread hoverWatcherThread; Modified: trunk/Jmol/src/org/jmol/viewer/binding/Binding.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/binding/Binding.java 2009-11-19 18:08:49 UTC (rev 11758) +++ trunk/Jmol/src/org/jmol/viewer/binding/Binding.java 2009-11-19 18:21:15 UTC (rev 11759) @@ -73,12 +73,21 @@ } } + public final void unbindUserAction(String script) { + Enumeration e = bindings.keys(); + String skey = "_" + script; + while (e.hasMoreElements()) { + String key = (String) e.nextElement(); + if (key.endsWith(skey)) + bindings.remove(key); + } + } + public final void unbindMouseAction(int mouseAction) { Enumeration e = bindings.keys(); String skey = mouseAction + "_"; while (e.hasMoreElements()) { String key = (String) e.nextElement(); - System.out.println(skey + " " + key); if (key.startsWith(skey)) bindings.remove(key); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-01-10 05:06:27
|
Revision: 12075 http://jmol.svn.sourceforge.net/jmol/?rev=12075&view=rev Author: hansonr Date: 2010-01-10 05:06:21 +0000 (Sun, 10 Jan 2010) Log Message: ----------- version=11.9.17_dev # default atom size changed from 20%Jmol to 23%Auto for C atom size match in small molecules Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/JmolConstants.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-01-10 04:56:12 UTC (rev 12074) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-01-10 05:06:21 UTC (rev 12075) @@ -3,6 +3,8 @@ version=11.9.17_dev +# default atom size changed from 20%Jmol to 23%Auto for C atom size match in small molecules + # new feature: update of Babel VDW forces. We had been using Babel 1.0 numbers # that were changed long ago; # new feature: set defaultVDW BABEL21 -- older 2.1 numbers previously "BABEL" Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-01-10 04:56:12 UTC (rev 12074) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-01-10 05:06:21 UTC (rev 12075) @@ -220,7 +220,7 @@ axisX, axisY, axisZ, axisNX, axisNY, axisNZ }; public final static int XY_ZTOP = 100; // Z value for [x y] positioned echos and axis origin - public final static int DEFAULT_PERCENT_VDW_ATOM = 20; + public final static int DEFAULT_PERCENT_VDW_ATOM = 23; // matches C sizes of AUTO with 20 for Jmol set public final static float DEFAULT_BOND_RADIUS = 0.15f; public final static short DEFAULT_BOND_MILLIANGSTROM_RADIUS = (short) (DEFAULT_BOND_RADIUS * 1000); //angstroms of slop ... from OpenBabel ... mth 2003 05 26 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-01-28 03:27:00
|
Revision: 12252 http://jmol.svn.sourceforge.net/jmol/?rev=12252&view=rev Author: hansonr Date: 2010-01-28 03:26:54 +0000 (Thu, 28 Jan 2010) Log Message: ----------- version=11.9.23_dev # new feature: set strutsMultiple (default FALSE) allows multiple struts on a given atom Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StateManager.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-01-28 03:23:32 UTC (rev 12251) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-01-28 03:26:54 UTC (rev 12252) @@ -3,7 +3,7 @@ version=11.9.23_dev -# new feature: set strutsMultiple (default TRUE) allows multiple struts on a given atom +# new feature: set strutsMultiple (default FALSE) allows multiple struts on a given atom # new feature: set LOGFILE "name" -- log file will be "JmolLog_" + name # in the Jar file directory -- note that this is not # ever possible with the web-based version, even with the Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateManager.java 2010-01-28 03:23:32 UTC (rev 12251) +++ trunk/Jmol/src/org/jmol/viewer/StateManager.java 2010-01-28 03:26:54 UTC (rev 12252) @@ -948,7 +948,7 @@ int strutSpacing = 6; float strutLengthMaximum = 7.0f; float strutDefaultRadius = JmolConstants.DEFAULT_STRUT_RADIUS; - boolean strutsMultiple = true; + boolean strutsMultiple = false; //on a single position boolean isJmolVariable(String key) { return key.charAt(0) == '_' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-02-14 18:59:10
|
Revision: 12391 http://jmol.svn.sourceforge.net/jmol/?rev=12391&view=rev Author: hansonr Date: 2010-02-14 18:59:04 +0000 (Sun, 14 Feb 2010) Log Message: ----------- mutlitouch fix. Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/ActionManagerMT.java Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-02-14 18:58:47 UTC (rev 12390) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-02-14 18:59:04 UTC (rev 12391) @@ -452,8 +452,7 @@ ke.consume(); if (keyProcessing) return; - if (Logger.debugging) - Logger.debug("ActionmManager keyPressed: " + ke.getKeyCode()); + //System.out.println("ActionmManager keyPressed: " + ke.getKeyCode()); keyProcessing = true; int i = ke.getKeyCode(); switch(i) { @@ -492,8 +491,7 @@ } public void keyReleased(KeyEvent ke) { - if (Logger.debugging) - Logger.debug("ActionmManager keyReleased: " + ke.getKeyCode()); + //System.out.println("ActionmManager keyReleased: " + ke.getKeyCode()); ke.consume(); int i = ke.getKeyCode(); switch(i) { Modified: trunk/Jmol/src/org/jmol/viewer/ActionManagerMT.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManagerMT.java 2010-02-14 18:58:47 UTC (rev 12390) +++ trunk/Jmol/src/org/jmol/viewer/ActionManagerMT.java 2010-02-14 18:59:04 UTC (rev 12391) @@ -175,6 +175,7 @@ } public List getAllowedGestures(int groupID) { + //System.out.println("ActionManagerMT getAllowedGestures " + groupID); if (groupID != this.groupID || !viewer.allowMultiTouch()) return null; Vector list = new Vector(); @@ -183,8 +184,8 @@ //list.add(new Integer(SPIN_GESTURE)); //list.add(new Integer(DBLCLK_GESTURE)); list.add(TWO_POINT_GESTURE); - if (simulator == null) - list.add(SINGLE_POINT_GESTURE); + //if (simulator == null) + list.add(SINGLE_POINT_GESTURE); //list.add(new Integer(ZOOM_GESTURE)); //list.add(new Integer(FLICK_GESTURE)); //list.add(new Integer(RELATIVE_DRAG_GESTURE)); @@ -192,12 +193,17 @@ } public int getGroupID(int x, int y) { - int gid = (viewer.hasFocus() - || x < 0 || y < 0 || x >= viewer.getScreenWidth() - || y >= viewer.getScreenHeight() ? 0 : groupID); - if (resetNeeded) { - gid |= 0x10000000; - resetNeeded = false; + int gid = 0; + try { + if (viewer.hasFocus() && x >= 0 && y >= 0 && x < viewer.getScreenWidth() + && y < viewer.getScreenHeight()) + gid = groupID; + if (resetNeeded) { + gid |= 0x10000000; + resetNeeded = false; + } + } catch (Exception e) { + // ignore } return gid; } @@ -206,13 +212,14 @@ public void processEvent(int groupID, int eventType, int touchID, int iData, Point3f pt, long time) { - if (true || Logger.debugging) + if (Logger.debugging) Logger.info(this + " time=" + time + " groupID=" + groupID + " " + Integer.toHexString(groupID) + " eventType=" + eventType + "(" + getEventName(eventType) + ") iData=" + iData + " pt=" + pt); switch (eventType) { case DRIVER_NONE: - haveMultiTouchInput = false; + if (simulator == null) + haveMultiTouchInput = false; Logger.error("SparshUI reports no driver present"); viewer.log("SparshUI reports no driver present -- setting haveMultiTouchInput FALSE"); break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-02-15 13:31:43
|
Revision: 12396 http://jmol.svn.sourceforge.net/jmol/?rev=12396&view=rev Author: hansonr Date: 2010-02-15 13:31:37 +0000 (Mon, 15 Feb 2010) Log Message: ----------- version=11.9.30_dev # bug fix: selection after deletion includes unwanted atoms # bug fix: minimization after atom deletion problem Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/SelectionManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/SelectionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/SelectionManager.java 2010-02-15 13:28:15 UTC (rev 12395) +++ trunk/Jmol/src/org/jmol/viewer/SelectionManager.java 2010-02-15 13:31:37 UTC (rev 12396) @@ -47,10 +47,9 @@ private final BitSet bsHidden = new BitSet(); private final BitSet bsSelection = new BitSet(); - private final BitSet bsSelectionNotDeleted = new BitSet(); BitSet bsSubset; // set in Eval and only pointed to here - BitSet bsDeleted; + private BitSet bsDeleted; // this is a tri-state. the value -1 means unknown private final static int TRUE = 1; @@ -286,14 +285,13 @@ } BitSet getSelectionSet() { - if (bsDeleted == null) - return bsSelection; - bsSelectionNotDeleted.clear(); - bsSelectionNotDeleted.or(bsSelection); - bsSelectionNotDeleted.andNot(bsDeleted); - return bsSelectionNotDeleted; + return bsSelection; } + public BitSet getSelectionSubset() { + return bsSubset; + } + void excludeAtoms(BitSet bs, boolean ignoreSubset) { if (bsDeleted != null) bs.andNot(bsDeleted); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-02-15 13:28:15 UTC (rev 12395) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-02-15 13:31:37 UTC (rev 12396) @@ -1557,7 +1557,7 @@ } public BitSet getSelectionSubset() { - return selectionManager.bsSubset; + return selectionManager.getSelectionSubset(); } public void invertSelection() { @@ -7722,7 +7722,7 @@ } public BitSet getDeletedAtoms() { - return selectionManager.bsDeleted; + return selectionManager.getDeletedAtoms(); } public char getQuaternionFrame() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-02-18 18:14:04
|
Revision: 12407 http://jmol.svn.sourceforge.net/jmol/?rev=12407&view=rev Author: hansonr Date: 2010-02-18 18:13:57 +0000 (Thu, 18 Feb 2010) Log Message: ----------- version=11.9.30_dev # code: preliminary set useArcBall -- Ken Shoemake's idea for better mouse drag action Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-02-18 15:04:53 UTC (rev 12406) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-02-18 18:13:57 UTC (rev 12407) @@ -628,6 +628,8 @@ viewer.popupMenu(x, y); return; } + if (viewer.useArcBall()) + viewer.rotateArcBall(x, y, true); checkMotionRotateZoom(action, x, 0, 0, true); } @@ -809,7 +811,7 @@ * mouseDragFactor; if (isRotate) { if (viewer.useArcBall()) - viewer.rotateArcBall(x - deltaX, y - deltaY, x, y); + viewer.rotateArcBall(x, y, false); else viewer.rotateXYBy(degX, degY); } else { Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2010-02-18 15:04:53 UTC (rev 12406) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2010-02-18 18:13:57 UTC (rev 12407) @@ -346,24 +346,27 @@ final Vector3f arcBall0 = new Vector3f(); final Vector3f arcBall1 = new Vector3f(); final Vector3f arcBallAxis = new Vector3f(); + final Matrix3f arcBall0Rotation = new Matrix3f(); - void rotateArcBall(float x0, float y0, float x1, float y1) { + void rotateArcBall(float x, float y, boolean isInit) { float radius2 = (screenPixelCount >> 2) * screenPixelCount; - float x, y, z; - x = x0 - fixedTranslation.x; - y = y0 - fixedTranslation.y; - if (Float.isNaN(z = (float) Math.sqrt(radius2 - x * x - y * y))) + x -= fixedTranslation.x; + y -= fixedTranslation.y; + float z = (float) Math.sqrt(radius2 - x * x - y * y); + if (isInit) { + arcBall0Rotation.set(matrixRotate); + arcBall0.set(x, -y, z); + if (!Float.isNaN(z)) + arcBall0.normalize(); return; - arcBall0.set(x, -y, z); - x = x1 - fixedTranslation.x; - y = y1 - fixedTranslation.y; - if (Float.isNaN(z = (float) Math.sqrt(radius2 - x * x - y * y))) + } + if (Float.isNaN(arcBall0.z) || Float.isNaN(z)) return; arcBall1.set(x, -y, z); - arcBall0.normalize(); arcBall1.normalize(); arcBallAxis.cross(arcBall0, arcBall1); - axisangleT.set(arcBallAxis, (float) Math.acos(arcBall0.dot(arcBall1))); + axisangleT.set(arcBallAxis, 2 * (float) Math.acos(arcBall0.dot(arcBall1))); + matrixRotate.set(arcBall0Rotation); rotateAxisAngle(axisangleT, null); } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-02-18 15:04:53 UTC (rev 12406) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-02-18 18:13:57 UTC (rev 12407) @@ -7620,11 +7620,9 @@ else if (key.equals("rotateZBy")) rotateZBy(Parser.parseInt(tokens[2]), Parser.parseInt(tokens[3]), Parser.parseInt(tokens[4])); - break; - case 6: - if (key.equals("rotateArcBall")) + else if (key.equals("rotateArcBall")) rotateArcBall(Parser.parseInt(tokens[2]), Parser.parseInt(tokens[3]), - Parser.parseInt(tokens[4]),Parser.parseInt(tokens[5])); + Parser.parseInt(tokens[4]) == 1); break; case 7: if (key.equals("centerAt")) @@ -8133,13 +8131,12 @@ return global.useArcBall; } - void rotateArcBall(int x0, int y0, int x1, int y1) { - transformManager.rotateArcBall(x0, y0, x1, y1); + void rotateArcBall(int x, int y, boolean isInit) { + transformManager.rotateArcBall(x, y, isInit); refresh(2, statusManager.syncingMouse ? "Mouse: rotateArcBall " - + x0 + " " - + y0 + " " - + x1 + " " - + y1 + " " + + x + " " + + y + " " + + (isInit ? 1 : 0) : ""); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ahe...@us...> - 2010-02-28 01:09:08
|
Revision: 12505 http://jmol.svn.sourceforge.net/jmol/?rev=12505&view=rev Author: aherraez Date: 2010-02-28 00:23:17 +0000 (Sun, 28 Feb 2010) Log Message: ----------- all water should be in the 'solvent' set Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/JmolConstants.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-02-27 23:18:29 UTC (rev 12504) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-02-28 00:23:17 UTC (rev 12505) @@ -3,6 +3,8 @@ version=11.9.32_dev +# All water should be included in the 'solvent' set + # -------------------------------------------------------------- #version=11.9.31 Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-02-27 23:18:29 UTC (rev 12504) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-02-28 00:23:17 UTC (rev 12505) @@ -2782,8 +2782,10 @@ // // solvent // - "@solvent _g>="+GROUPID_WATER+" & _g<="+GROUPID_SULPHATE, // water or ions + // "@solvent _g>="+GROUPID_WATER+" & _g<="+GROUPID_SULPHATE, // water or ions + // but this does not include 'calculated' water (i.e. non-groupID water) "@ions _g="+(GROUPID_SULPHATE - 1)+",_g="+GROUPID_SULPHATE, + "@solvent water, ions", // I think this is better, all water should be solvent // // structure related This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-05-20 13:26:02
|
Revision: 13160 http://jmol.svn.sourceforge.net/jmol/?rev=13160&view=rev Author: hansonr Date: 2010-05-20 13:25:55 +0000 (Thu, 20 May 2010) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/TransformManager11.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-05-20 13:24:09 UTC (rev 13159) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-05-20 13:25:55 UTC (rev 13160) @@ -377,6 +377,7 @@ protected int clickedCount; private boolean drawMode = false; + private int dragAtomIndex = -1; private boolean labelMode = false; private boolean dragSelectedMode = false; private boolean measuresEnabled = true; @@ -459,7 +460,7 @@ switch(i) { case KeyEvent.VK_ALT: if (dragSelectedMode && isAltKeyReleased) - viewer.moveSelected(Integer.MIN_VALUE, 0, 0, 0, false); + viewer.moveSelected(Integer.MIN_VALUE, 0, 0, 0, null, false); isAltKeyReleased = false; moved.modifiers |= Binding.ALT; break; @@ -498,7 +499,7 @@ switch(i) { case KeyEvent.VK_ALT: if (dragSelectedMode) - viewer.moveSelected(Integer.MAX_VALUE, 0, 0, 0, false); + viewer.moveSelected(Integer.MAX_VALUE, 0, 0, 0, null, false); isAltKeyReleased = true; moved.modifiers &= ~Binding.ALT; break; @@ -572,7 +573,7 @@ setCurrent(time, x, y, modifiers); moved.setCurrent(); if (measurementPending != null || hoverActive) - checkPointOrAtomClicked(x, y, 0, 0); + checkPointOrAtomClicked(x, y, 0, 0, false); else if (isZoomArea(x)) checkMotionRotateZoom(Binding.getMouseAction(1, Binding.LEFT), 0, 0, 0, false); else if (viewer.getCursor() == Viewer.CURSOR_ZOOM)//if (dragSelectedMode) @@ -592,36 +593,42 @@ void mousePressed(long time, int x, int y, int mods) { setCurrent(time, x, y, mods); - pressedCount = (pressed.check(x, y, mods, time, MAX_DOUBLE_CLICK_MILLIS) - ? pressedCount + 1 : 1); + pressedCount = (pressed.check(x, y, mods, time, MAX_DOUBLE_CLICK_MILLIS) ? pressedCount + 1 + : 1); pressed.setCurrent(); dragged.setCurrent(); viewer.setFocus(); - boolean isSelectAndDrag = isBound(Binding.getMouseAction(Integer.MIN_VALUE, mods), ACTION_selectAndDrag); + boolean isSelectAndDrag = isBound(Binding.getMouseAction(Integer.MIN_VALUE, + mods), ACTION_selectAndDrag); int action = Binding.getMouseAction(pressedCount, mods); dragGesture.setAction(action, time); if (Binding.getModifiers(action) != 0) { action = viewer.notifyMouseClicked(x, y, action); if (action == 0) return; - } + } pressedAtomIndex = Integer.MAX_VALUE; if (checkUserAction(action, x, y, 0, 0, time, 0)) return; - if (drawMode && ( - isBound(action, ACTION_dragDrawObject) - || isBound(action, ACTION_dragDrawPoint)) - || labelMode && isBound(action, ACTION_dragLabel)) { + if (drawMode + && (isBound(action, ACTION_dragDrawObject) || isBound(action, + ACTION_dragDrawPoint)) || labelMode + && isBound(action, ACTION_dragLabel)) { viewer.checkObjectDragged(Integer.MIN_VALUE, 0, x, y, action); return; } + if (pickingMode == JmolConstants.PICKING_DRAG_ATOM) { + dragAtomIndex = viewer.findNearestAtomIndex(x, y); + return; + } if (dragSelectedMode) { haveSelection = true; if (isSelectAndDrag) { - haveSelection = checkPointOrAtomClicked(x, y, mods, pressedCount); + haveSelection = (viewer.findNearestAtomIndex(x, y) >= 0); + // checkPointOrAtomClicked(x, y, mods, pressedCount, true); } if (isBound(action, ACTION_dragSelected) && haveSelection) { - viewer.moveSelected(Integer.MIN_VALUE, 0, 0, 0, false); + viewer.moveSelected(Integer.MIN_VALUE, 0, 0, 0, null, false); } return; } @@ -648,6 +655,7 @@ void mouseReleased(long time, int x, int y, int mods) { setCurrent(time, x, y, mods); + dragAtomIndex = -1; viewer.spinXYBy(0, 0, 0); boolean dragRelease = !pressed.check(x, y, mods, time, Long.MAX_VALUE); viewer.setInMotion(false); @@ -683,7 +691,7 @@ } if (dragSelectedMode && isBound(action, ACTION_dragSelected) && haveSelection) - viewer.moveSelected(Integer.MAX_VALUE, 0, 0, 0, false); + viewer.moveSelected(Integer.MAX_VALUE, 0, 0, 0, null, false); if (dragRelease && checkUserAction(action, x, y, 0, 0, time, 2)) return; @@ -719,7 +727,7 @@ boolean isSelectAndDrag = isBound(Binding.getMouseAction(Integer.MIN_VALUE, mods), ACTION_selectAndDrag); if (isSelectAndDrag) return; - checkPointOrAtomClicked(x, y, mods, clickedCount); + checkPointOrAtomClicked(x, y, mods, clickedCount, false); } private boolean isRubberBandSelect(int action) { @@ -774,6 +782,14 @@ if (checkUserAction(action, x, y, deltaX, deltaY, time, mode)) return; + if (pickingMode == JmolConstants.PICKING_DRAG_ATOM && dragAtomIndex >= 0) { + checkMotion(Viewer.CURSOR_MOVE); + BitSet bs = new BitSet(); + bs.set(dragAtomIndex); + viewer.moveSelected(deltaX, deltaY, x, y, bs, true); + return; + } + if (!drawMode && !labelMode) { if (isBound(action, ACTION_translate)) { viewer.translateXYBy(deltaX, deltaY); @@ -797,10 +813,10 @@ if (dragSelectedMode && isBound(action, ACTION_dragSelected) && haveSelection) { checkMotion(Viewer.CURSOR_MOVE); - viewer.moveSelected(deltaX, deltaY, x, y, true); + viewer.moveSelected(deltaX, deltaY, x, y, null, true); return; } - + if (drawMode && (isBound(action, ACTION_dragDrawObject) || isBound(action, ACTION_dragDrawPoint)) || labelMode @@ -931,7 +947,7 @@ } private boolean checkPointOrAtomClicked(int x, int y, int mods, - int clickedCount) { + int clickedCount, boolean atomOnly) { if (!viewer.haveModelSet()) return false; // points are always picked up first, then atoms @@ -944,7 +960,7 @@ } Point3fi nearestPoint = null; int tokType = 0; - if (!drawMode) { + if (!drawMode && !atomOnly) { Token t = viewer.checkObjectClicked(x, y, action); if (t != null) { tokType = t.tok; @@ -1310,6 +1326,9 @@ } int n = 2; switch (pickingMode) { + case JmolConstants.PICKING_DRAG_ATOM: + // this is done in mouse drag, not mouse release + return; case JmolConstants.PICKING_OFF: return; case JmolConstants.PICKING_STRUTS: @@ -1365,6 +1384,7 @@ } if (ptClicked != null) return; + // atoms only here: switch (pickingMode) { case JmolConstants.PICKING_IDENTIFY: if (isBound(action, ACTION_pickAtom)) Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-05-20 13:24:09 UTC (rev 13159) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-05-20 13:25:55 UTC (rev 13160) @@ -3,6 +3,9 @@ version=12.0.RC13_dev +# new feature: set picking dragAtom +# code: TransformManager removing pointT +# bug fix: dragSelected could be off by 1 pixel # bug fix: working on the 1.5/1.4 problem -- all unnecessary 1.5 coding switched back to 1.4 format # including String.contains; parallel processing Executor class isolated from Viewer # bug fix: select within(SMILES,@x) not working Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-05-20 13:24:09 UTC (rev 13159) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-05-20 13:25:55 UTC (rev 13160) @@ -304,15 +304,16 @@ public final static int PICKING_NAVIGATE = 22; public final static int PICKING_CONNECT = 23; public final static int PICKING_STRUTS = 24; - + public final static int PICKING_DRAG_ATOM = 25; + private final static String[] pickingModeNames = { "off", "identify", "label", "center", "draw", "spin", "symmetry", "deleteatom", "deletebond", "atom", "group", "chain", "molecule", "polymer", "structure", "site", "model", "element", "measure", "distance", "angle", "torsion", "navigate", - "connect", "struts" + "connect", "struts", "dragatom" }; public final static String getPickingModeName(int pickingMode) { Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2010-05-20 13:24:09 UTC (rev 13159) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2010-05-20 13:25:55 UTC (rev 13160) @@ -285,7 +285,6 @@ private final AxisAngle4f axisangleT = new AxisAngle4f(); private final Vector3f vectorT = new Vector3f(); private final Vector3f vectorT2 = new Vector3f(); - protected final Point3f pointT = new Point3f(); private final Point3f pointT2 = new Point3f(); final static int MAXIMUM_ZOOM_PERCENTAGE = 200000; @@ -367,7 +366,7 @@ void rotateZBy(int zDelta, int x, int y) { if (x != Integer.MAX_VALUE && y != Integer.MAX_VALUE) - resetXYCenter(x, y, null); + resetXYCenter(x, y); rotateZRadians((float) (zDelta / degreesPerRadian)); } @@ -577,15 +576,16 @@ vectorT.set(internalRotationCenter); pointT2.set(fixedRotationCenter); pointT2.sub(vectorT); - matrixTemp4.transform(pointT2, pointT); + Point3f pt = new Point3f(); + matrixTemp4.transform(pointT2, pt); // return this point to the fixed frame - pointT.add(vectorT); + pt.add(vectorT); // it is the new fixed rotation center! - setRotationCenterAndRadiusXYZ(pointT, false); + setRotationCenterAndRadiusXYZ(pt, false); } /* *************************************************************** @@ -808,23 +808,20 @@ return; zoomRatio = factor; zoomPercentSetting *= factor; - resetXYCenter(x, y, null); + resetXYCenter(x, y); } - private void resetXYCenter(int x, int y, Point3f pt) { + private void resetXYCenter(int x, int y) { if (x == Integer.MAX_VALUE || y == Integer.MAX_VALUE) return; if (windowCentered) viewer.setBooleanProperty("windowCentered", false); - if (pt == null) { - transformPoint(fixedRotationCenter, pointT); - pointT.set(x, y, pointT.z); - unTransformPoint(pointT, pointT); - fixedTranslation.set(x, y, 0); - setFixedRotationCenter(pointT); - } else { - transformPoint(pt, pointT); - } + Point3f pt = new Point3f(); + transformPoint(fixedRotationCenter, pt); + pt.set(x, y, pt.z); + unTransformPoint(pt, pt); + fixedTranslation.set(x, y, 0); + setFixedRotationCenter(pt); } void zoomByPercent(float percentZoom) { @@ -1305,6 +1302,7 @@ ****************************************************************/ protected final Matrix4f matrixTransform = new Matrix4f(); + protected final Matrix4f matrixTransformInv = new Matrix4f(); Matrix4f getMatrixtransform() { return matrixTransform; @@ -1412,7 +1410,7 @@ matrixTransform.mul(matrixTemp, matrixTransform); //z-translate to set rotation center at midplane (Nav) or front plane (V10) matrixTransform.m23 += modelCenterOffset; - + matrixTransformInv.invert(matrixTransform); // note that the image is still centered at 0, 0 in the xy plane } @@ -1451,6 +1449,7 @@ return point3iScreenTemp; } + private final Point3f pointTsp = new Point3f(); private Point3i transformScreenPoint(Point3f ptXyp) { // just does the processing for [x y] and [x y %] if (ptXyp.z == -Float.MAX_VALUE) { @@ -1464,8 +1463,8 @@ point3iScreenTemp.x <<= 1; point3iScreenTemp.y <<= 1; } - matrixTransform.transform(fixedRotationCenter, pointT); - point3iScreenTemp.z = (int) pointT.z; + matrixTransform.transform(fixedRotationCenter, pointTsp); + point3iScreenTemp.z = (int) pointTsp.z; return point3iScreenTemp; } @@ -1510,45 +1509,41 @@ matrixTransform.transform(vectorAngstroms, vectorTransformed); } + final protected Point3f untransformedPoint = new Point3f(); void unTransformPoint(Point3f screenPt, Point3f coordPt) { //draw move2D - pointT.set(screenPt); + untransformedPoint.set(screenPt); switch (mode) { case MODE_NAVIGATION: - pointT.x -= navigationOffset.x; - pointT.y -= navigationOffset.y; + untransformedPoint.x -= navigationOffset.x; + untransformedPoint.y -= navigationOffset.y; break; case MODE_PERSPECTIVE_CENTER: - pointT.x -= perspectiveOffset.x; - pointT.y -= perspectiveOffset.y; + untransformedPoint.x -= perspectiveOffset.x; + untransformedPoint.y -= perspectiveOffset.y; break; case MODE_STANDARD: - pointT.x -= fixedRotationOffset.x; - pointT.y -= fixedRotationOffset.y; + untransformedPoint.x -= fixedRotationOffset.x; + untransformedPoint.y -= fixedRotationOffset.y; } if (perspectiveDepth) { - float factor = getPerspectiveFactor(pointT.z); - pointT.x /= factor; - pointT.y /= factor; + float factor = getPerspectiveFactor(untransformedPoint.z); + untransformedPoint.x /= factor; + untransformedPoint.y /= factor; } switch (mode) { case MODE_NAVIGATION: - pointT.x += navigationShiftXY.x; - pointT.y += navigationShiftXY.y; + untransformedPoint.x += navigationShiftXY.x; + untransformedPoint.y += navigationShiftXY.y; break; case MODE_PERSPECTIVE_CENTER: - pointT.x += perspectiveShiftXY.x; - pointT.y += perspectiveShiftXY.y; + untransformedPoint.x += perspectiveShiftXY.x; + untransformedPoint.y += perspectiveShiftXY.y; break; } - matrixUnTransform(pointT, coordPt); + matrixTransformInv.transform(untransformedPoint, coordPt); } - protected void matrixUnTransform(Point3f screen, Point3f angstroms) { - matrixTemp.invert(matrixTransform); - matrixTemp.transform(screen, angstroms); - } - /* *************************************************************** * move/moveTo support ****************************************************************/ @@ -2465,14 +2460,14 @@ } private void setRotationCenterAndRadiusXYZ(String relativeTo, Point3f pt) { - pointT.set(pt); + Point3f pt1 = new Point3f(pt); if (relativeTo == "average") - pointT.add(viewer.getAverageAtomPoint()); + pt1.add(viewer.getAverageAtomPoint()); else if (relativeTo == "boundbox") - pointT.add(viewer.getBoundBoxCenter()); + pt1.add(viewer.getBoundBoxCenter()); else if (relativeTo != "absolute") - pointT.set(rotationCenterDefault); - setRotationCenterAndRadiusXYZ(pointT, true); + pt1.set(rotationCenterDefault); + setRotationCenterAndRadiusXYZ(pt1, true); } void setNewRotationCenter(Point3f center, boolean doScale) { Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager11.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager11.java 2010-05-20 13:24:09 UTC (rev 13159) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager11.java 2010-05-20 13:25:55 UTC (rev 13160) @@ -314,10 +314,11 @@ // must just be (not so!) simple navigation // navigation center will initially move // but we center it by moving the rotation center instead - matrixTransform.transform(navigationCenter, pointT); - float z = pointT.z; - matrixTransform.transform(fixedRotationCenter, pointT); - modelCenterOffset = referencePlaneOffset + (pointT.z - z); + Point3f pt1 = new Point3f(); + matrixTransform.transform(navigationCenter, pt1); + float z = pt1.z; + matrixTransform.transform(fixedRotationCenter, pt1); + modelCenterOffset = referencePlaneOffset + (pt1.z - z); calcCameraFactors(); calcTransformMatrix(); break; @@ -333,10 +334,12 @@ // TODO // but if periodic, then the navigationCenter may have to be moved back a // notch + Point3f pt = new Point3f(navigationCenter); viewer.toUnitCell(navigationCenter, null); - if (pointT.distance(navigationCenter) > 0.01) { - matrixTransform.transform(navigationCenter, pointT); - float dz = navigationShiftXY.z - pointT.z; + // presuming here that pointT is still a molecular point?? + if (pt.distance(navigationCenter) > 0.01) { + matrixTransform.transform(navigationCenter, pt); + float dz = navigationShiftXY.z - pt.z; // the new navigation center determines the navigationZOffset modelCenterOffset += dz; calcCameraFactors(); @@ -406,17 +409,18 @@ // fixedRotationCenter, navigationOffset, navigationCenter mode = defaultMode; // get the rotation center's Z offset and move X and Y to 0,0 - transformPoint(fixedRotationCenter, pointT); - pointT.x -= navigationOffset.x; - pointT.y -= navigationOffset.y; + Point3f pt = new Point3f(); + transformPoint(fixedRotationCenter, pt); + pt.x -= navigationOffset.x; + pt.y -= navigationOffset.y; // unapply the perspective as if IT were the navigation center - float f = -getPerspectiveFactor(pointT.z); - pointT.x /= f; - pointT.y /= f; - pointT.z = referencePlaneOffset; + float f = -getPerspectiveFactor(pt.z); + pt.x /= f; + pt.y /= f; + pt.z = referencePlaneOffset; // now untransform that point to give the center that would // deliver this fixedModel position - matrixUnTransform(pointT, navigationCenter); + matrixTransformInv.transform(pt, navigationCenter); mode = MODE_NAVIGATION; } @@ -655,12 +659,13 @@ } void navTranslate(float seconds, Point3f pt) { - transformPoint(pt, pointT); + Point3f pt1 = new Point3f(); + transformPoint(pt, pt1); if (seconds > 0) { - navigateTo(seconds, null, Float.NaN, null, Float.NaN, pointT.x, pointT.y); + navigateTo(seconds, null, Float.NaN, null, Float.NaN, pt1.x, pt1.y); return; } - navTranslatePercent(-1, pointT.x, pointT.y); + navTranslatePercent(-1, pt1.x, pt1.y); } void navTranslatePercent(float seconds, float x, float y) { Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-05-20 13:24:09 UTC (rev 13159) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-05-20 13:25:55 UTC (rev 13160) @@ -2373,6 +2373,7 @@ stopAnimationThreads("stop from init model"); reset(); selectAll(); + movingSelected = false; noneSelected = false; hoverEnabled = true; transformManager.setCenter(); @@ -7233,15 +7234,16 @@ checkMinimization(); } - boolean movingSelected; - boolean showSelected; + private boolean movingSelected; + private boolean showSelected; void moveSelected(int deltaX, int deltaY, int x, int y, - boolean isTranslation) { + BitSet bsSelected, boolean isTranslation) { // cannot synchronize this -- it's from the mouse and the event queue if (isJmolDataFrame()) return; - BitSet bsSelected = selectionManager.getSelectionSet(); + if (bsSelected== null) + bsSelected = selectionManager.getSelectionSet(); if (deltaX == Integer.MIN_VALUE) { showSelected = true; loadShape(JmolConstants.SHAPE_HALOS); @@ -7259,11 +7261,14 @@ // note this does not sync with applets if (isTranslation) { Point3f ptCenter = getAtomSetCenter(bsSelected); - Point3i pti = transformPoint(ptCenter); - Point3f pt = new Point3f(pti.x + deltaX, pti.y + deltaY, pti.z); - unTransformPoint(pt, pt); - pt.sub(ptCenter); - modelSet.setAtomCoordRelative(pt, bsSelected); + Point3i ptScreen = transformPoint(ptCenter); + Point3f ptScreenNew = new Point3f(ptScreen.x + deltaX + 0.5f, ptScreen.y + deltaY + 0.5f, ptScreen.z); + Point3f ptNew = new Point3f(); + transformManager.finalizeTransformParameters(); + unTransformPoint(ptScreenNew, ptNew); +// script("draw ID 'pt" + Math.random() + "' " + Escape.escape(ptNew)); + ptNew.sub(ptCenter); + modelSet.setAtomCoordRelative(ptNew, bsSelected); } else { transformManager.setRotateMolecule(true); transformManager.rotateXYBy(deltaX, deltaY, bsSelected); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-06-16 13:09:22
|
Revision: 13393 http://jmol.svn.sourceforge.net/jmol/?rev=13393&view=rev Author: hansonr Date: 2010-06-16 13:09:12 +0000 (Wed, 16 Jun 2010) Log Message: ----------- version=12.0.RC19_dev # bug fix: MO using cartesian instead of spherical D orbitals. Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/JmolConstants.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-06-16 12:51:03 UTC (rev 13392) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-06-16 13:09:12 UTC (rev 13393) @@ -3,6 +3,7 @@ version=12.0.RC19_dev +# bug fix: MO using cartesian instead of spherical D orbitals. # bug fix: modelKitMode replacing atoms with H # bug fix: bioSMARTS X:Y problem # bug fix: set logLevel (with no arguments)/show logLevel Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-06-16 12:51:03 UTC (rev 13392) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-06-16 13:09:12 UTC (rev 13393) @@ -2599,8 +2599,10 @@ final public static int SHELL_F_SPHERICAL = 5; final public static int SHELL_F_CARTESIAN = 6; - final private static String[] quantumShellTags = {"S", "P", "SP", "L", - "5D", "D", "7F", "F"}; + final private static String[] quantumShellTags = { + "S", "P", "SP", "L", + "5D", "D", + "7F", "F"}; final private static int[] quantumShellIDs = { SHELL_S, SHELL_P, SHELL_SP, SHELL_L, @@ -2625,7 +2627,13 @@ final public static int getQuantumShellTagIDSpherical(String tag) { final int tagID = getQuantumShellTagID(tag); - return tagID + (tagID < SHELL_D_CARTESIAN ? 0 : tagID % 2); + switch (tagID) { + case SHELL_D_CARTESIAN: + return SHELL_D_SPHERICAL; + case SHELL_F_CARTESIAN: + return SHELL_F_SPHERICAL; + } + return tagID; } final public static String getQuantumShellTag(int shell) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-08-21 02:30:34
|
Revision: 14097 http://jmol.svn.sourceforge.net/jmol/?rev=14097&view=rev Author: hansonr Date: 2010-08-21 02:30:27 +0000 (Sat, 21 Aug 2010) Log Message: ----------- version=12.1.7_dev # new feature: getProperty can drill down a list for a hashtable entry: # print getProperty("shapeInfo.isosurface.id") # s2 # isosurface1 Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/PropertyManager.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-08-20 22:46:15 UTC (rev 14096) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-08-21 02:30:27 UTC (rev 14097) @@ -3,6 +3,11 @@ version=12.1.7_dev +# new feature: getProperty can drill down a list for a hashtable entry: +# print getProperty("shapeInfo.isosurface.id") +# s2 +# isosurface1 + # -------------------------------------------------------------- #version=12.1.6 Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2010-08-20 22:46:15 UTC (rev 14096) +++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2010-08-21 02:30:27 UTC (rev 14097) @@ -300,6 +300,14 @@ return extractProperty(h.get(key), args, ptr); return ""; } + if (property instanceof List<?>) { + List<Object> v = (List<Object>) property; + List<Object> v2 = new ArrayList<Object>(); + ptr--; + for (pt = 0; pt < v.size(); pt++) + v2.add(extractProperty(v.get(pt), args, ptr)); + return v2; + } break; } return property; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-08-21 04:19:06
|
Revision: 14105 http://jmol.svn.sourceforge.net/jmol/?rev=14105&view=rev Author: hansonr Date: 2010-08-21 04:19:00 +0000 (Sat, 21 Aug 2010) Log Message: ----------- version=12.1.7_dev # bug fix: mouse-based slab does not refresh Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-08-21 04:17:25 UTC (rev 14104) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-08-21 04:19:00 UTC (rev 14105) @@ -3,6 +3,7 @@ version=12.1.7_dev +# bug fix: mouse-based slab does not refresh # bug fix: JME reader misreading "Br+" # bug fix: Writing PDB file with residue number > 9999 trashes file. Now writes "0000" "0001" etc. Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-08-21 04:17:25 UTC (rev 14104) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-08-21 04:19:00 UTC (rev 14105) @@ -1098,16 +1098,20 @@ void slabByPixels(int pixels) { // MouseManager.mouseSinglePressDrag transformManager.slabByPercentagePoints(pixels); + refresh(3, "slabByPixels"); } void depthByPixels(int pixels) { // MouseManager.mouseDoublePressDrag transformManager.depthByPercentagePoints(pixels); + refresh(3, "depthByPixels"); + } void slabDepthByPixels(int pixels) { // MouseManager.mouseSinglePressDrag transformManager.slabDepthByPercentagePoints(pixels); + refresh(3, "slabDepthByPixels"); } public void slabToPercent(int percentSlab) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-09-06 01:18:49
|
Revision: 14247 http://jmol.svn.sourceforge.net/jmol/?rev=14247&view=rev Author: hansonr Date: 2010-09-06 01:18:44 +0000 (Mon, 06 Sep 2010) Log Message: ----------- version=12.1.10_dev # color structure for carbohydrate fails Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/JmolConstants.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-09-06 01:17:59 UTC (rev 14246) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-09-06 01:18:44 UTC (rev 14247) @@ -3,6 +3,7 @@ version=12.1.10_dev +# color structure for carbohydrate fails # new feature: reset SPIN # new feature: set slabRange 5.0 -- a zoom-independent slabbing plane # bug fix: reset should not reset spin (introduced in 11.7.47); new RESET SPIN includes reset spinning Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-09-06 01:17:59 UTC (rev 14246) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2010-09-06 01:18:44 UTC (rev 14247) @@ -1358,8 +1358,16 @@ 0xFFFF0080, // PROTEIN_STRUCTURE_HELIX 0xFFAE00FE, // PROTEIN_STRUCTURE_DNA 0xFFFD0162, // PROTEIN_STRUCTURE_RNA + 0xFFA6A6FA, // PROTEIN_STRUCTURE_CARBOHYDRATE }; + static { + if (proteinStructureNames.length != argbsStructure.length - 1) { + System.out.println("protineStructureNames.length != argbsStructure.length"); + throw new NullPointerException(); + } + } + public final static int[] argbsAmino = { 0xFFBEA06E, // default tan // note that these are the rasmol colors and names, not xwindows This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-09-20 23:24:36
|
Revision: 14349 http://jmol.svn.sourceforge.net/jmol/?rev=14349&view=rev Author: hansonr Date: 2010-09-20 23:24:29 +0000 (Mon, 20 Sep 2010) Log Message: ----------- version=12.1.13_dev # bug fix: Safari slideZoom issue upon leaving and returning to applet (mouse MOVE not issued by OS) Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/binding/Binding.java Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-09-20 12:54:20 UTC (rev 14348) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-09-20 23:24:29 UTC (rev 14349) @@ -461,7 +461,15 @@ protected int y = -1000; protected int modifiers = 0; protected long time = -1; + //private int type; + /** + * @param type -- for debugging + */ + protected Mouse(int type) { + //this.type = type; + } + protected void set(long time, int x, int y, int modifiers) { this.time = time; this.x = x; @@ -469,7 +477,10 @@ this.modifiers = modifiers; } - protected void setCurrent() { + /** + * @param why - for debugging purposes + */ + protected void setCurrent(int why) { time = current.time; x = current.x; y = current.y; @@ -485,11 +496,11 @@ } } - protected final Mouse current = new Mouse(); - protected final Mouse moved = new Mouse(); - private final Mouse clicked = new Mouse(); - private final Mouse pressed = new Mouse(); - private final Mouse dragged = new Mouse(); + protected final Mouse current = new Mouse(0); + protected final Mouse moved = new Mouse(1); + private final Mouse clicked = new Mouse(2); + private final Mouse pressed = new Mouse(3); + private final Mouse dragged = new Mouse(4); protected void setCurrent(long time, int x, int y, int mods) { hoverOff(); @@ -709,7 +720,7 @@ public void mouseMoved(long time, int x, int y, int modifiers) { setCurrent(time, x, y, modifiers); - moved.setCurrent(); + moved.setCurrent(Binding.MOVED); if (measurementPending != null || hoverActive) checkPointOrAtomClicked(x, y, 0, 0, false, Binding.MOVED); else if (isZoomArea(x)) @@ -733,8 +744,8 @@ setCurrent(time, x, y, mods); pressedCount = (pressed.check(x, y, mods, time, MAX_DOUBLE_CLICK_MILLIS) ? pressedCount + 1 : 1); - pressed.setCurrent(); - dragged.setCurrent(); + pressed.setCurrent(Binding.PRESSED); + dragged.setCurrent(Binding.PRESSED); viewer.setFocus(); boolean isSelectAndDrag = isBound(Binding.getMouseAction(Integer.MIN_VALUE, mods), ACTION_selectAndDrag); @@ -818,7 +829,7 @@ int deltaX = x - dragged.x; int deltaY = y - dragged.y; setCurrent(time, x, y, mods); - dragged.setCurrent(); + dragged.setCurrent(Binding.DRAGGED); if (atomPickingMode != PICKING_ASSIGN_ATOM) exitMeasurementMode(); int action = Binding.getMouseAction(pressedCount, mods); @@ -953,7 +964,7 @@ setCurrent(time, x, y, mods); clickedCount = (count > 1 ? count : clicked.check(x, y, mods, time, MAX_DOUBLE_CLICK_MILLIS) ? clickedCount + 1 : 1); - clicked.setCurrent(); + clicked.setCurrent(Binding.CLICKED); viewer.setFocus(); boolean isSelectAndDrag = isBound(Binding.getMouseAction(Integer.MIN_VALUE, mods), ACTION_selectAndDrag); if (isSelectAndDrag && atomPickingMode != PICKING_SELECT_ATOM) @@ -1230,18 +1241,14 @@ boolean isRotateZorZoom = isBound(action, ACTION_rotateZorZoom); if (!isSlideZoom && !isRotateXY && !isRotateZorZoom) return false; - boolean isZoom = false; - if (isRotateZorZoom) - isZoom = (deltaX == 0 || Math.abs(deltaY) > 5 * Math.abs(deltaX)); - if (isSlideZoom) - isZoom = isZoomArea(moved.x); - int cursor = (isZoom || isBound(action, ACTION_wheelZoom) ? Viewer.CURSOR_ZOOM + boolean isZoom = (isRotateZorZoom && (deltaX == 0 || Math.abs(deltaY) > 5 * Math.abs(deltaX))); + int cursor = (isZoom || isZoomArea(moved.x) || isBound(action, ACTION_wheelZoom) ? Viewer.CURSOR_ZOOM : isRotateXY || isRotateZorZoom ? Viewer.CURSOR_MOVE : Viewer.CURSOR_DEFAULT); if (viewer.getCursor() != Viewer.CURSOR_WAIT) viewer.setCursor(cursor); if (inMotion) viewer.setInMotion(true); - return isZoom; + return (isZoom || isSlideZoom && isZoomArea(pressed.x)); } private boolean isZoomArea(int x) { Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-09-20 12:54:20 UTC (rev 14348) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-09-20 23:24:29 UTC (rev 14349) @@ -3,6 +3,7 @@ version=12.1.13_dev +# bug fix: Safari slideZoom issue upon leaving and returning to applet (mouse MOVE not issued by OS) # bug fix: naming a variable after a function name such as "color" should be allowed # bug fix: "smilesString" changed to "_smilesString" and properly set # bug fix: Application filename for $xxxx not properly set Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2010-09-20 12:54:20 UTC (rev 14348) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2010-09-20 23:24:29 UTC (rev 14349) @@ -341,7 +341,7 @@ String sJmol = jmolScriptCallback(JmolConstants.CALLBACK_LOADSTRUCT); if (doCallback && notifyEnabled(JmolConstants.CALLBACK_LOADSTRUCT)) { String name = (String) viewer.getParameter("_smilesString"); - if (name != null) + if (name.length() != 0) fileName = name; jmolCallbackListener.notifyCallback(JmolConstants.CALLBACK_LOADSTRUCT, new Object[] { sJmol, Modified: trunk/Jmol/src/org/jmol/viewer/binding/Binding.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/binding/Binding.java 2010-09-20 12:54:20 UTC (rev 14348) +++ trunk/Jmol/src/org/jmol/viewer/binding/Binding.java 2010-09-20 23:24:29 UTC (rev 14349) @@ -146,22 +146,16 @@ int action = 0; desc = desc.toUpperCase(); - if (desc.indexOf("CTRL") >= 0) - action |= CTRL; - if (desc.indexOf("ALT") >= 0) - action |= ALT; - if (desc.indexOf("SHIFT") >= 0) - action |= SHIFT; - if (desc.indexOf("MIDDLE") >= 0) action |= MIDDLE; else if (desc.indexOf("RIGHT") >= 0) action |= RIGHT; else if (desc.indexOf("WHEEL") >= 0) action |= WHEEL; - else + else if (desc.indexOf("LEFT") >= 0) action |= LEFT; - + + boolean isDefaultButton = (action == 0); if (desc.indexOf("DOUBLE") >= 0) action |= DOUBLE_CLICK; @@ -169,7 +163,17 @@ action |= SINGLE_CLICK; else if (desc.indexOf("DOWN") >= 0) action |= DOWN; + + if (desc.indexOf("CTRL") >= 0) + action |= CTRL; + if (desc.indexOf("ALT") >= 0) + action |= ALT; + if (desc.indexOf("SHIFT") >= 0) + action |= SHIFT; + if (isDefaultButton && action != 0) + action |= LEFT; + return action; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-09-20 23:31:35
|
Revision: 14350 http://jmol.svn.sourceforge.net/jmol/?rev=14350&view=rev Author: hansonr Date: 2010-09-20 23:31:29 +0000 (Mon, 20 Sep 2010) Log Message: ----------- version=12.1.13_dev # bug fix: unbind unknownName unbinds LEFT mouse! Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-09-20 23:24:29 UTC (rev 14349) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2010-09-20 23:31:29 UTC (rev 14350) @@ -406,6 +406,8 @@ Point3f range2) { int jmolAction = getActionFromName(name); int mouseAction = Binding.getMouseAction(desc); + if (mouseAction == 0) + return; if (jmolAction >= 0) { binding.bind(mouseAction, jmolAction); } else { Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-09-20 23:24:29 UTC (rev 14349) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-09-20 23:31:29 UTC (rev 14350) @@ -3,6 +3,7 @@ version=12.1.13_dev +# bug fix: unbind unknownName unbinds LEFT mouse! # bug fix: Safari slideZoom issue upon leaving and returning to applet (mouse MOVE not issued by OS) # bug fix: naming a variable after a function name such as "color" should be allowed # bug fix: "smilesString" changed to "_smilesString" and properly set This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-11-06 13:04:53
|
Revision: 14592 http://jmol.svn.sourceforge.net/jmol/?rev=14592&view=rev Author: hansonr Date: 2010-11-06 13:04:47 +0000 (Sat, 06 Nov 2010) Log Message: ----------- version=12.1.17 # bug fix: no callback for ZAP model=1 Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-11-06 13:04:16 UTC (rev 14591) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2010-11-06 13:04:47 UTC (rev 14592) @@ -3,6 +3,7 @@ version=12.1.17 +# bug fix: no callback for ZAP model=1 # new feature: isosurface ROTATE <quaternion> # -- rotates an isosurface based on a quaternion # -- a display property, like OFFSET or SCALE3D Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-11-06 13:04:16 UTC (rev 14591) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2010-11-06 13:04:47 UTC (rev 14592) @@ -5067,8 +5067,11 @@ String strError) { setErrorMessage(strError); global.setParameterValue("_loadPoint", ptLoad); - boolean doCallback = (ptLoad == FILE_STATUS_MODELSET_CREATED - || ptLoad == FILE_STATUS_ZAPPED || ptLoad == FILE_STATUS_NOT_LOADED); + boolean doCallback = (ptLoad != FILE_STATUS_CREATING_MODELSET); +// ptLoad == FILE_STATUS_MODELSET_CREATED + // || ptLoad == FILE_STATUS_ZAPPED + // || ptLoad == FILE_STATUS_MODELS_DELETED + // || ptLoad == FILE_STATUS_NOT_LOADED); statusManager.setFileLoadStatus(fullPathName, fileName, modelName, strError, ptLoad, doCallback); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-03-08 19:38:24
|
Revision: 15253 http://jmol.svn.sourceforge.net/jmol/?rev=15253&view=rev Author: hansonr Date: 2011-03-08 19:38:17 +0000 (Tue, 08 Mar 2011) Log Message: ----------- version=12.1.38 # bug fix: load of model when animation is on may cause animation NEXT to fail Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/AnimationManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/src/org/jmol/viewer/AnimationManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/AnimationManager.java 2011-03-08 18:02:59 UTC (rev 15252) +++ trunk/Jmol/src/org/jmol/viewer/AnimationManager.java 2011-03-08 19:38:17 UTC (rev 15253) @@ -176,18 +176,15 @@ } void clear() { - clearAnimation(); - } - - void clearAnimation() { setAnimationOn(false); setCurrentModelIndex(0); + currentDirection = 1; setAnimationDirection(1); setAnimationFps(10); setAnimationReplayMode(0, 0, 0); initializePointers(0); } - + Map<String, Object> getAnimationInfo(){ Map<String, Object> info = new Hashtable<String, Object>(); info.put("firstModelIndex", Integer.valueOf(firstModelIndex)); Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2011-03-08 18:02:59 UTC (rev 15252) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2011-03-08 19:38:17 UTC (rev 15253) @@ -3,6 +3,7 @@ version=12.1.38 +# bug fix: load of model when animation is on may cause animation NEXT to fail # new feature: isosurface... map property x WITHIN x.y # -- allows a maximum distance to be defined; speeds up calculation # -- defaults to 5.0 when set isosurfacePropertySmoothing FALSE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-03-31 23:12:54
|
Revision: 15367 http://jmol.svn.sourceforge.net/jmol/?rev=15367&view=rev Author: hansonr Date: 2011-03-31 23:12:47 +0000 (Thu, 31 Mar 2011) Log Message: ----------- version=12.1.42_dev # bug fix - set picking identifyBond not implemented # bug fix - leaving modelKitMode does not leave bondPickingMode "ident" Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/ActionManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2011-03-31 23:12:31 UTC (rev 15366) +++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java 2011-03-31 23:12:47 UTC (rev 15367) @@ -288,6 +288,7 @@ public final static int PICKING_ASSIGN_ATOM = 31; public final static int PICKING_ASSIGN_BOND = 32; public final static int PICKING_ROTATE_BOND = 33; + public final static int PICKING_IDENTIFY_BOND = 34; @@ -300,7 +301,7 @@ "navigate", "connect", "struts", "dragmolecule", "dragatom", "dragminimize", "dragminimizemolecule", - "invertstereo", "assignatom", "assignbond", "rotatebond" + "invertstereo", "assignatom", "assignbond", "rotatebond", "identifybond" }; public final static String getPickingModeName(int pickingMode) { @@ -1650,10 +1651,11 @@ public void setPickingMode(int pickingMode) { switch (pickingMode) { - case -1: - bondPickingMode = PICKING_OFF; + case -1: // from set modelkit OFF + bondPickingMode = PICKING_IDENTIFY_BOND; pickingMode = PICKING_IDENTIFY; break; + case PICKING_IDENTIFY_BOND: case PICKING_ROTATE_BOND: case PICKING_ASSIGN_BOND: viewer.setBooleanProperty("bondPicking", true); Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2011-03-31 23:12:31 UTC (rev 15366) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2011-03-31 23:12:47 UTC (rev 15367) @@ -3,6 +3,7 @@ version=12.1.42_dev +# bug fix - set picking identifyBond not implemented # bug fix - leaving modelKitMode does not leave bondPickingMode "ident" # new feature: for (var x in [....]) {...} # -- array option This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |