Revision: 18282 http://sourceforge.net/p/jmol/code/18282 Author: hansonr Date: 2013-06-05 03:55:27 +0000 (Wed, 05 Jun 2013) Log Message: ----------- ___JmolVersion="13.1.16_dev_2013.06.04"
Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLScene.java trunk/Jmol/src/org/jmol/api/JmolAdapter.java trunk/Jmol/src/org/jmol/modelset/BondCollection.java trunk/Jmol/src/org/jmol/modelset/ModelLoader.java trunk/Jmol/src/org/jmol/modelset/Text.java trunk/Jmol/src/org/jmol/render/LabelsRenderer.java trunk/Jmol/src/org/jmol/render/SticksRenderer.java trunk/Jmol/src/org/jmol/shape/Labels.java trunk/Jmol/src/org/jmol/util/JmolEdge.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StateCreator.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -126,7 +126,8 @@ } @SuppressWarnings("unchecked") - void finalizeObject(PyMOLScene pymolScene, ModelSet m, String mepList, boolean doCache) { + void finalizeObject(PyMOLScene pymolScene, ModelSet m, String mepList, + boolean doCache) { ShapeManager sm = m.shapeManager; int modelIndex = getModelIndex(m); String sID; @@ -152,8 +153,7 @@ } sm.viewer.setObjectProp((String) info, id); } else { - sm.viewer.displayAtoms(bsAtoms, id == T.display, false, T.add, - true); + sm.viewer.displayAtoms(bsAtoms, id == T.display, false, T.add, true); } return; case T.define: @@ -190,7 +190,9 @@ case JC.SHAPE_STICKS: if (size != -1) { sm.setShapeSizeBs(JC.SHAPE_STICKS, size, null, bsAtoms); - pymolScene.setUniqueBonds(((BS[])sm.getShapePropertyIndex(JC.SHAPE_STICKS, "sets", 0))[1], id == JC.SHAPE_STICKS); + BS bsBonds = ((BS[]) sm.getShapePropertyIndex(JC.SHAPE_STICKS, "sets", + 0))[1]; + pymolScene.setUniqueBonds(bsBonds, id == JC.SHAPE_STICKS); size = -1; } id = JC.SHAPE_STICKS; @@ -245,10 +247,8 @@ if (doCache) sb.append(";isosurface cache"); } else { - //if (argb == 0) - //sm.setShapePropertyBs(JC.SHAPE_BALLS, "colors", colors, bsAtoms); - String lighting = (String)((Object[]) info)[0]; - String only = (String)((Object[]) info)[1]; + String lighting = (String) ((Object[]) info)[0]; + String only = (String) ((Object[]) info)[1]; only = " only"; BS bsCarve = (BS) ((Object[]) info)[2]; float carveDistance = ((Float) ((Object[]) info)[3]).floatValue(); @@ -261,16 +261,15 @@ } boolean haveMep = Parser.isOneOf(sID, mepList); String model = m.models[modelIndex].getModelNumberDotted(); -// BS bsIgnore = sm.viewer.getAtomsWithinRadius(0.1f, bsAtoms, true, -// new RadiusData(null, 0.1f, EnumType.ABSOLUTE, null)); -// bsIgnore.andNot(bsAtoms); -// String ignore = " ignore " + Escape.eBS(bsIgnore); + // BS bsIgnore = sm.viewer.getAtomsWithinRadius(0.1f, bsAtoms, true, + // new RadiusData(null, 0.1f, EnumType.ABSOLUTE, null)); + // bsIgnore.andNot(bsAtoms); + // String ignore = " ignore " + Escape.eBS(bsIgnore); String ignore = ""; String type = (size < 0 ? " sasurface " : " solvent "); - sb.append(" model ") - .append(model).append( - resolution).append(" select ").append(Escape.eBS(bsAtoms)) - .append(only).append(ignore).append(type).appendF(Math.abs(size / 1000f)); + sb.append(" model ").append(model).append(resolution) + .append(" select ").append(Escape.eBS(bsAtoms)).append(only) + .append(ignore).append(type).appendF(Math.abs(size / 1000f)); if (!haveMep) { if (argb == 0) sb.append(" map property color"); @@ -281,7 +280,7 @@ if (translucency > 0) sb.append(";color isosurface translucent " + translucency); if (bsCarve != null && !bsCarve.isEmpty()) - sb.append(";isosurface slab within " + carveDistance + " {" + model + sb.append(";isosurface slab within " + carveDistance + " {" + model + " and " + Escape.eBS(bsCarve) + "}"); if (doCache && !haveMep) sb.append(";isosurface cache"); Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -33,6 +33,7 @@ import org.jmol.adapter.smarter.Atom; import org.jmol.adapter.smarter.Bond; import org.jmol.adapter.smarter.Structure; +import org.jmol.api.JmolAdapter; import org.jmol.api.JmolDocument; import org.jmol.api.PymolAtomReader; import org.jmol.constant.EnumStructure; @@ -703,8 +704,9 @@ return; JmolList<Object> data = listAt(listAt(pymolObject, 2), 0); int color = PyMOL.getRGB(intAt(listAt(pymolObject, 0), 2)); - pymolScene.addCGO(data, color); - appendLoadNote("CGO " + PyMOLScene.fixName(objectName)); + String name = pymolScene.addCGO(data, color); + if (name != null) + appendLoadNote("CGO " + name); } /** @@ -736,7 +738,7 @@ volumeData = new Hashtable<String, JmolList<Object>>(); volumeData.put(objectName, pymolObject); if (!isHidden && !isStateScript) - addJmolObject(T.isosurface, null, objectName); + pymolScene.addIsosurface(objectName); } pymolObject.addLast(objectName); } @@ -847,6 +849,7 @@ } addBonds(bonds); addMolStructures(); + atoms = atomSetCollection.getAtoms(); if (!isStateScript) createShapeObjects(); ssMapSeq = null; @@ -879,11 +882,11 @@ */ private JmolList<Bond> getBondList(JmolList<Object> bonds) { JmolList<Bond> bondList = new JmolList<Bond>(); - boolean valence = pymolScene.booleanSetting(PyMOL.valence); + int asSingle = (pymolScene.booleanSetting(PyMOL.valence) ? 0 : JmolAdapter.ORDER_AS_SINGLE); int n = bonds.size(); for (int i = 0; i < n; i++) { JmolList<Object> b = listAt(bonds, i); - int order = (valence ? intAt(b, 2) : 1); + int order = intAt(b, 2) | asSingle; if (order < 1 || order > 3) order = 1; int ia = intAt(b, 0); @@ -1151,18 +1154,16 @@ * */ private void createShapeObjects() { - atoms = atomSetCollection.getAtoms(); pymolScene.createShapeObjects(reps, allowSurface && !isHidden, atomCount0, atomCount); } ////// end of molecule-specific JmolObjects ////// - + ///// final processing ///// - + /** - * Create mesh or mep JmolObjects. - * Caching the volumeData, because it will be needed - * by org.jmol.jvxl.readers.PyMOLMeshReader + * Create mesh or mep JmolObjects. Caching the volumeData, because it will be + * needed by org.jmol.jvxl.readers.PyMOLMeshReader * */ private void processMeshes() { @@ -1192,18 +1193,11 @@ if (surface == null) continue; obj.addLast(mapName); - appendLoadNote("PyMOL object " + objName + " references map " + mapName); volumeData.put(objName, obj); volumeData.put("__pymolSurfaceData__", obj); - if (!isStateScript) { - JmolObject jo = addJmolObject(tok, null, obj); - if (isMep) { - } else { - jo.setSize(pymolScene.globalSetting(PyMOL.mesh_width)); - jo.argb = PyMOL.getRGB(intAt(listAt(obj, 0), 2)); - } - jo.translucency = pymolScene.globalSetting(PyMOL.transparency); - } + if (!isStateScript) + pymolScene.addMesh(tok, obj, objName, isMep); + appendLoadNote("PyMOL object " + objName + " references map " + mapName); } } @@ -1276,10 +1270,6 @@ pymolScene.setAtomInfo(uniqueIDs, cartoonTypes, sequenceNumbers, newChain, radii); } - private JmolObject addJmolObject(int id, BS bsAtoms, Object info) { - return pymolScene.addJmolObject(id, bsAtoms, info); - } - // generally useful static methods private static int intAt(JmolList<Object> list, int i) { Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLScene.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLScene.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLScene.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -434,13 +434,14 @@ bs = null; String info = objectSelectionName; switch (objectType) { + case 0: // doesn't have selected state + case PyMOL.OBJECT_GROUP: + continue; case PyMOL.OBJECT_MOLECULE: bs = viewer.getDefinedAtomSet(info); if (bs.nextSetBit(0) < 0) continue; break; - case PyMOL.OBJECT_GROUP: - continue; case PyMOL.OBJECT_MEASURE: if (tok == T.display) { MeasurementData[] mdList = htMeasures.get(name); @@ -465,7 +466,7 @@ objectName = name; objectType = getObjectType(name); objectSelectionName = getSelectionName(name); - objectNameID = (istate == 0 ? getObjectID(name) : objectSelectionName + "_" + objectNameID = (istate == 0 && objectType != 0 ? getObjectID(name) : objectSelectionName + "_" + istate); objectAtoms = htObjectAtoms.get(name); objectSettings = htObjectSettings.get(name); @@ -720,7 +721,8 @@ colixes[i] = (short) atomColorList.get(i).intValue(); jo.setColors(colixes, 0); jo.setSize(0); - jo = addJmolObject(JC.SHAPE_STICKS, objectAtoms, null); + jo = addJmolObject(JC.SHAPE_STICKS, objectAtoms, + Float.valueOf(floatSetting(PyMOL.valence))); jo.setSize(0); } createShapeObject(PyMOL.REP_LINES, reps[PyMOL.REP_LINES]); @@ -885,11 +887,12 @@ return labelPos; } - void addCGO(JmolList<Object> data, int color) { + String addCGO(JmolList<Object> data, int color) { data.addLast(objectName); JmolObject jo = addJmolObject(JC.SHAPE_CGO, null, data); jo.argb = color; jo.translucency = floatSetting(PyMOL.cgo_transparency); + return fixName(objectName); } boolean addMeasurements(MeasurementData[] mdList, int nCoord, @@ -1002,7 +1005,7 @@ frameObj = null; } - static String fixName(String name) { + private static String fixName(String name) { char[] chars = name.toLowerCase().toCharArray(); for (int i = chars.length; --i >= 0;) if (!Character.isLetterOrDigit(chars[i])) @@ -1014,8 +1017,9 @@ return (String) objectInfo.get(name)[0]; } - int getObjectType(String name) { - return ((Integer) objectInfo.get(name)[1]).intValue(); + private int getObjectType(String name) { + Object[] o = objectInfo.get(name); + return (o == null ? 0 : ((Integer) o[1]).intValue()); } BS setAtomMap(int[] atomMap, int atomCount0) { @@ -1568,9 +1572,24 @@ int c = (int) getUniqueFloatDef(id, PyMOL.stick_color, Integer.MAX_VALUE); if (c != Integer.MAX_VALUE) c = PyMOL.getRGB(c); + float valence = getUniqueFloatDef(id, PyMOL.valence, Float.NaN); float t = getUniqueFloatDef(id, PyMOL.stick_transparency, Float.NaN); - viewer.setBondParameters(thisState - 1, i, rad, c, t); + viewer.setBondParameters(thisState - 1, i, null, rad, valence, c, t); } } + public void addMesh(int tok, JmolList<Object> obj, String objName, boolean isMep) { + JmolObject jo = addJmolObject(tok, null, obj); + setObject(objName, -1); + if (!isMep) { + jo.setSize(floatSetting(PyMOL.mesh_width)); + jo.argb = PyMOL.getRGB(intAt(listAt(obj, 0), 2)); + } + jo.translucency = floatSetting(PyMOL.transparency); + } + + public void addIsosurface(String objectName) { + addJmolObject(T.isosurface, null, objectName); + } + } Modified: trunk/Jmol/src/org/jmol/api/JmolAdapter.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolAdapter.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/api/JmolAdapter.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -56,20 +56,21 @@ ****************************************************************/ public abstract class JmolAdapter { - public final static short ORDER_COVALENT_SINGLE = JmolEdge.BOND_COVALENT_SINGLE; - public final static short ORDER_COVALENT_DOUBLE = JmolEdge.BOND_COVALENT_DOUBLE; - public final static short ORDER_COVALENT_TRIPLE = JmolEdge.BOND_COVALENT_TRIPLE; - public final static short ORDER_AROMATIC = JmolEdge.BOND_AROMATIC; - public final static short ORDER_AROMATIC_SINGLE = JmolEdge.BOND_AROMATIC_SINGLE; - public final static short ORDER_AROMATIC_DOUBLE = JmolEdge.BOND_AROMATIC_DOUBLE; - public final static short ORDER_HBOND = JmolEdge.BOND_H_REGULAR; - public final static short ORDER_STEREO_NEAR = JmolEdge.BOND_STEREO_NEAR; - public final static short ORDER_STEREO_FAR = JmolEdge.BOND_STEREO_FAR; - public final static short ORDER_PARTIAL01 = JmolEdge.BOND_PARTIAL01; - public final static short ORDER_PARTIAL12 = JmolEdge.BOND_PARTIAL12; - public final static short ORDER_PARTIAL23 = JmolEdge.BOND_PARTIAL23; - public final static short ORDER_PARTIAL32 = JmolEdge.BOND_PARTIAL32; - public final static short ORDER_UNSPECIFIED = JmolEdge.BOND_ORDER_UNSPECIFIED; + public final static int ORDER_COVALENT_SINGLE = JmolEdge.BOND_COVALENT_SINGLE; + public final static int ORDER_COVALENT_DOUBLE = JmolEdge.BOND_COVALENT_DOUBLE; + public final static int ORDER_COVALENT_TRIPLE = JmolEdge.BOND_COVALENT_TRIPLE; + public final static int ORDER_AROMATIC = JmolEdge.BOND_AROMATIC; + public final static int ORDER_AROMATIC_SINGLE = JmolEdge.BOND_AROMATIC_SINGLE; + public final static int ORDER_AROMATIC_DOUBLE = JmolEdge.BOND_AROMATIC_DOUBLE; + public final static int ORDER_HBOND = JmolEdge.BOND_H_REGULAR; + public final static int ORDER_STEREO_NEAR = JmolEdge.BOND_STEREO_NEAR; + public final static int ORDER_STEREO_FAR = JmolEdge.BOND_STEREO_FAR; + public final static int ORDER_PARTIAL01 = JmolEdge.BOND_PARTIAL01; + public final static int ORDER_PARTIAL12 = JmolEdge.BOND_PARTIAL12; + public final static int ORDER_PARTIAL23 = JmolEdge.BOND_PARTIAL23; + public final static int ORDER_PARTIAL32 = JmolEdge.BOND_PARTIAL32; + public final static int ORDER_UNSPECIFIED = JmolEdge.BOND_ORDER_UNSPECIFIED; + public final static int ORDER_AS_SINGLE = JmolEdge.BOND_AS_SINGLE; public final static EnumQuantumShell getShellEnumeration(int i) { return EnumQuantumShell.getItem(i); } public final static int[][] getNewDfCoefMap() { return EnumQuantumShell.getNewDfCoefMap(); } Modified: trunk/Jmol/src/org/jmol/modelset/BondCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/BondCollection.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/modelset/BondCollection.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -849,14 +849,28 @@ } /** - * used in PyMOL reader to set unique bond settings + * used in PyMOL reader to set unique bond settings and for valence + * * @param modelIndex - * @param i + * @param iBond + * @param bsBonds * @param rad + * @param pymolValence 1 for "show multiple bonds * @param argb * @param trans */ - public void setBondParameters(int modelIndex, int i, float rad, int argb, float trans) { + public void setBondParametersBS(int modelIndex, int iBond, BS bsBonds, + float rad, float pymolValence, int argb, + float trans) { + if (bsBonds == null) + setBondParameters(modelIndex, iBond, rad, pymolValence, argb, trans); + else + for (int i = bsBonds.nextSetBit(0); i >= 0; i = bsBonds.nextSetBit(i + 1)) + setBondParameters(modelIndex, i, rad, pymolValence, argb, trans); + } + + public void setBondParameters(int modelIndex, int i, float rad, float pymolValence, + int argb, float trans) { if (i < 0 || i >= bondCount) return; Bond b = bonds[i]; @@ -871,6 +885,10 @@ b.colix = C.getColixTranslucent3(colix, trans != 0, trans); else if (b.colix != colix) b.colix = C.copyColixTranslucency(b.colix, colix); + if (pymolValence == 1) + b.order &= ~JmolEdge.BOND_AS_SINGLE; + else if (pymolValence == 0) + b.order |= JmolEdge.BOND_AS_SINGLE; } Modified: trunk/Jmol/src/org/jmol/modelset/ModelLoader.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelLoader.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/modelset/ModelLoader.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -889,30 +889,37 @@ return model.chains[model.chainCount++] = new Chain(model, chainID); } - private void iterateOverAllNewBonds(JmolAdapter adapter, Object atomSetCollection) { - JmolAdapterBondIterator iterBond = adapter.getBondIterator(atomSetCollection); + private void iterateOverAllNewBonds(JmolAdapter adapter, + Object atomSetCollection) { + JmolAdapterBondIterator iterBond = adapter + .getBondIterator(atomSetCollection); if (iterBond == null) return; short mad = viewer.getMadBond(); - short order; modelSet.defaultCovalentMad = (jmolData == null ? mad : 0); boolean haveMultipleBonds = false; while (iterBond.hasNext()) { - order = (short) iterBond.getEncodedOrder(); - Bond b = bondAtoms(iterBond.getAtomUniqueID1(), iterBond.getAtomUniqueID2(), order); + int iOrder = iterBond.getEncodedOrder(); + short order = (short) iOrder; + Bond b = bondAtoms(iterBond.getAtomUniqueID1(), iterBond + .getAtomUniqueID2(), order); if (b != null) { - if (order > 1 && order != JmolEdge.BOND_STEREO_NEAR && order != JmolEdge.BOND_STEREO_FAR) - haveMultipleBonds = true; + if (order > 1 && order != JmolEdge.BOND_STEREO_NEAR + && order != JmolEdge.BOND_STEREO_FAR) + haveMultipleBonds = true; float radius = iterBond.getRadius(); if (radius > 0) b.setMad((short) (radius * 2000)); short colix = iterBond.getColix(); if (colix >= 0) b.setColix(colix); + b.order |= (iOrder & JmolEdge.BOND_AS_SINGLE); } } - if (haveMultipleBonds && modelSet.someModelsHaveSymmetry && !viewer.getBoolean(T.applysymmetrytobonds)) - Logger.info("ModelSet: use \"set appletSymmetryToBonds TRUE \" to apply the file-based multiple bonds to symmetry-generated atoms."); + if (haveMultipleBonds && modelSet.someModelsHaveSymmetry + && !viewer.getBoolean(T.applysymmetrytobonds)) + Logger + .info("ModelSet: use \"set appletSymmetryToBonds TRUE \" to apply the file-based multiple bonds to symmetry-generated atoms."); modelSet.defaultCovalentMad = mad; } Modified: trunk/Jmol/src/org/jmol/modelset/Text.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/Text.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/modelset/Text.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -39,14 +39,8 @@ public float fontScale; - public String text; - public String textUnformatted; - public String getText() { - return text; - } - public boolean doFormatText; public String[] lines; @@ -59,6 +53,10 @@ private int textWidth; private int textHeight; + private String text; + public String getText() { + return text; + } private int[] widths; Modified: trunk/Jmol/src/org/jmol/render/LabelsRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/LabelsRenderer.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/render/LabelsRenderer.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -105,7 +105,8 @@ if (!atom.isVisible(myVisibilityFlag)) continue; String label = labelStrings[i]; - if (label == null || label.length() == 0 || labels.mads != null + if (label == null + || label.length() == 0 || labels.mads != null && labels.mads[i] < 0) continue; labelColix = labels.getColix2(i, atom, false); Modified: trunk/Jmol/src/org/jmol/render/SticksRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/SticksRenderer.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/render/SticksRenderer.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -87,10 +87,13 @@ if (multipleBondSpacing == 0 && isCartesianExport) multipleBondSpacing = 0.2f; multipleBondRadiusFactor = viewer.getFloat(T.multiplebondradiusfactor); - showMultipleBonds = multipleBondSpacing != 0 - && viewer.getBoolean(T.showmultiplebonds); modeMultipleBond = viewer.getModeMultipleBond(); - renderWireframe = viewer.getInMotion(true) && viewer.getBoolean(T.wireframerotation); + showMultipleBonds = (multipleBondSpacing != 0 + && modeMultipleBond != JC.MULTIBOND_NEVER + && viewer.getBoolean(T.showmultiplebonds)); + + renderWireframe = viewer.getInMotion(true) + && viewer.getBoolean(T.wireframerotation); ssbondsBackbone = viewer.getBoolean(T.ssbondsbackbone); hbondsBackbone = viewer.getBoolean(T.hbondsbackbone); bondsBackbone = hbondsBackbone | ssbondsBackbone; @@ -192,8 +195,9 @@ bondOrder &= ~JmolEdge.BOND_SULFUR_MASK; if ((bondOrder & JmolEdge.BOND_COVALENT_MASK) != 0) { if (!showMultipleBonds - || modeMultipleBond == JC.MULTIBOND_NEVER - || (modeMultipleBond == JC.MULTIBOND_NOTSMALL && mad > JC.madMultipleBondSmallMaximum)) { + || (modeMultipleBond == JC.MULTIBOND_NOTSMALL && mad > JC.madMultipleBondSmallMaximum) + || (bondOrder & JmolEdge.BOND_AS_SINGLE) != 0 + ) { bondOrder = 1; } } Modified: trunk/Jmol/src/org/jmol/shape/Labels.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Labels.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/shape/Labels.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -440,7 +440,7 @@ if (isScaled) { text = Text.newLabel(gdata, null, label, (short) 0, (short) 0, 0, scalePixelsPerMicron, null); putLabel(i, text); - } else if (text != null) { + } else if (text != null && label != null) { text.setText(label); } if (defaultOffset != zeroOffset) Modified: trunk/Jmol/src/org/jmol/util/JmolEdge.java =================================================================== --- trunk/Jmol/src/org/jmol/util/JmolEdge.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/util/JmolEdge.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -37,6 +37,7 @@ // 11 1111 1100 0000 0000 // 76 5432 1098 7654 3210 // | new connection 1 << 17 0x20000 + // | render as single 1 << 16 0x10000 // | strut 1 << 15 0x08000 // ||| | Hydrogen bond 0x3800 F << 11 // |Stereo 0x400 1 << 10 @@ -68,10 +69,11 @@ public final static int BOND_COVALENT_TRIPLE = 3; public final static int BOND_COVALENT_QUADRUPLE = 4; public final static int BOND_ORDER_UNSPECIFIED = 0x11; - public final static int BOND_ORDER_ANY = 0xFFFF; + public final static int BOND_ORDER_ANY = 0x0FFFF; public final static int BOND_ORDER_NULL = 0x1FFFF; + public static final int BOND_STRUT = 0x08000; + public final static int BOND_AS_SINGLE = 0x10000; public final static int BOND_NEW = 0x20000; - public static final int BOND_STRUT = 0x8000; public final static int BOND_HBOND_SHIFT = 11; public final static int BOND_HYDROGEN_MASK = 0xF << 11; public final static int BOND_H_REGULAR = 1 << 11; Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2013-06-05 03:55:27 UTC (rev 18282) @@ -11,6 +11,8 @@ ___JmolVersion="13.1.16_dev_2013.06.04" +TODO: PyMOL sphere_color -- will require color spacefill ... + PyMOL: better scene restore; bug fix: "display add" by itself should not do anything bug fix: Hall translation initialization problem Modified: trunk/Jmol/src/org/jmol/viewer/StateCreator.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateCreator.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/viewer/StateCreator.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -1267,7 +1267,8 @@ private String getTextState(Text t) { SB s = new SB(); - if (t.text == null || t.isLabelOrHover || t.target.equals("error")) + String text = t.getText(); + if (text == null || t.isLabelOrHover || t.target.equals("error")) return ""; //set echo top left //set echo myecho x y @@ -1305,7 +1306,7 @@ s.append("; ").append(echoCmd).append(" IMAGE /*file*/"); else s.append("; echo "); - s.append(Escape.eS(t.text)); // was textUnformatted, but that is not really the STATE + s.append(Escape.eS(text)); // was textUnformatted, but that is not really the STATE s.append(";\n"); if (isImage && t.imageScale != 1) s.append(" ").append(echoCmd).append(" scale ").appendF(t.imageScale).append(";\n"); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2013-06-04 23:48:28 UTC (rev 18281) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2013-06-05 03:55:27 UTC (rev 18282) @@ -10005,8 +10005,8 @@ } } - public void setBondParameters(int modelIndex, int i, float rad, int argb, float trans) { - modelSet.setBondParameters(modelIndex, i, rad, argb, trans); + public void setBondParameters(int modelIndex, int i, BS bsBonds, float rad, float pymolValence, int argb, float trans) { + modelSet.setBondParametersBS(modelIndex, i, bsBonds, rad, pymolValence, argb, trans); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. A cloud service to automate IT design, transition and operations 2. Dashboards that offer high-level views of enterprise services 3. A single system of record for all IT processes http://p.sf.net/sfu/servicenow-d2d-j _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits