From: <ha...@us...> - 2009-11-10 17:15:39
|
Revision: 11710 http://jmol.svn.sourceforge.net/jmol/?rev=11710&view=rev Author: hansonr Date: 2009-11-10 17:15:30 +0000 (Tue, 10 Nov 2009) Log Message: ----------- version=11.8.9_dev # bug fix: labels offset using set picking select label not saved in state properly; # added "set labelOffsetExact" Modified Paths: -------------- branches/v11_8/Jmol/src/org/jmol/shape/Labels.java branches/v11_8/Jmol/src/org/jmol/viewer/Jmol.properties branches/v11_8/Jmol/src/org/jmol/viewer/ScriptEvaluator.java Modified: branches/v11_8/Jmol/src/org/jmol/shape/Labels.java =================================================================== --- branches/v11_8/Jmol/src/org/jmol/shape/Labels.java 2009-11-10 16:13:17 UTC (rev 11709) +++ branches/v11_8/Jmol/src/org/jmol/shape/Labels.java 2009-11-10 17:15:30 UTC (rev 11710) @@ -177,12 +177,13 @@ return; } - if ("offset" == propertyName) { + if ("offset" == propertyName || "offsetexact" == propertyName) { int offset = ((Integer) value).intValue(); // 0 must be the default, because we initialize the array // in segments and so there will be extra 0s. // but this "0" only means that "zero" offset; you // can change the default to anything you want. + boolean isExact = (propertyName == "offsetexact"); if (offset == 0) offset = Short.MAX_VALUE; else if (offset == zeroOffset) @@ -190,7 +191,7 @@ if (!setDefaults) for (int i = atomCount; --i >= 0;) if (bsSelected.get(i)) - setOffsets(i, offset); + setOffsets(i, offset, isExact); if (setDefaults || !defaultsOnlyForNone) defaultOffset = offset; return; @@ -347,7 +348,7 @@ text.setText(label); } if (defaultOffset != zeroOffset) - setOffsets(i, defaultOffset); + setOffsets(i, defaultOffset, false); if (defaultAlignment != Object2d.ALIGN_LEFT) setAlignment(i, defaultAlignment); if ((defaultZPos & FRONT_FLAG) != 0) @@ -416,7 +417,7 @@ final static int FLAGS = 0xFF; final static int FLAG_OFFSET = 8; - private void setOffsets(int i, int offset) { + private void setOffsets(int i, int offset, boolean isExact) { //entry is just xxxxxxxxyyyyyyyy // 3 2 1 // 10987654321098765432109876543210 @@ -434,6 +435,8 @@ offsets = ArrayUtil.ensureLength(offsets, i + 1); } offsets[i] = (offsets[i] & FLAGS) | (offset << FLAG_OFFSET); + if (isExact) + offsets[i] |= EXACT_OFFSET_FLAG; text = getLabel(i); if (text != null) text.setOffset(offset); @@ -550,7 +553,9 @@ setStateInfo(temp2, i, "set labelScaleReference " + (10000f / sppm)); if (offsets != null && offsets.length > i) { int offsetFull = offsets[i]; - setStateInfo(temp2, i, "set labelOffset " + Object2d.getXOffset(offsetFull >> FLAG_OFFSET) + setStateInfo(temp2, i, "set " + ((offsetFull & EXACT_OFFSET_FLAG) == EXACT_OFFSET_FLAG + ? "labelOffsetExact " : "labelOffset ") + + Object2d.getXOffset(offsetFull >> FLAG_OFFSET) + " " + (-Object2d.getYOffset(offsetFull >> FLAG_OFFSET))); String align = Object2d.getAlignment(offsetFull >> 2); String pointer = Object2d.getPointer(offsetFull); @@ -618,8 +623,7 @@ offset = Short.MAX_VALUE; else if (offset == zeroOffset) offset = 0; - setOffsets(pickedAtom, offset); - offsets[pickedAtom] |= EXACT_OFFSET_FLAG; + setOffsets(pickedAtom, offset, true); } } Modified: branches/v11_8/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v11_8/Jmol/src/org/jmol/viewer/Jmol.properties 2009-11-10 16:13:17 UTC (rev 11709) +++ branches/v11_8/Jmol/src/org/jmol/viewer/Jmol.properties 2009-11-10 17:15:30 UTC (rev 11710) @@ -4,6 +4,8 @@ version=11.8.9_dev +# bug fix: labels offset using set picking select label not saved in state properly; +# added "set labelOffsetExact" # bug fix: set picking select label shifting label causes jump and not saved in state reproducibly # bug fix: set toggleLabel inappropriately resets label to default setting # bug fix: moveto QUATERNION (undocumented for 11.8) not distinguishing between Modified: branches/v11_8/Jmol/src/org/jmol/viewer/ScriptEvaluator.java =================================================================== --- branches/v11_8/Jmol/src/org/jmol/viewer/ScriptEvaluator.java 2009-11-10 16:13:17 UTC (rev 11709) +++ branches/v11_8/Jmol/src/org/jmol/viewer/ScriptEvaluator.java 2009-11-10 17:15:30 UTC (rev 11710) @@ -9270,7 +9270,7 @@ if (key.toLowerCase().indexOf("label") == 0 && Parser .isOneOf(key.substring(5).toLowerCase(), - "front;group;atom;offset;pointer;alignment;toggle;scalereference")) { + "front;group;atom;offset;offsetexact;pointer;alignment;toggle;scalereference")) { if (setLabel(key.substring(5))) return; } @@ -9965,7 +9965,7 @@ propertyValue = new Float(scaleAngstromsPerPixel); break; } - if (str.equals("offset")) { + if (str.equals("offset") || str.equals("offsetexact")) { int xOffset = intParameter(2, -127, 127); int yOffset = intParameter(3, -127, 127); propertyValue = new Integer(Object2d.getOffset(xOffset, yOffset)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |