From: <ha...@us...> - 2006-11-08 23:24:30
|
Revision: 6140 http://svn.sourceforge.net/jmol/?rev=6140&view=rev Author: hansonr Date: 2006-11-08 15:24:11 -0800 (Wed, 08 Nov 2006) Log Message: ----------- still working here.... Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/AtomShape.java trunk/Jmol/src/org/jmol/viewer/Balls.java trunk/Jmol/src/org/jmol/viewer/Dipoles.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Hsticks.java trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/Labels.java trunk/Jmol/src/org/jmol/viewer/ModelManager.java trunk/Jmol/src/org/jmol/viewer/Mps.java trunk/Jmol/src/org/jmol/viewer/Shape.java trunk/Jmol/src/org/jmol/viewer/Sssticks.java trunk/Jmol/src/org/jmol/viewer/StateManager.java trunk/Jmol/src/org/jmol/viewer/Sticks.java Modified: trunk/Jmol/src/org/jmol/viewer/AtomShape.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/AtomShape.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/AtomShape.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -105,19 +105,22 @@ } String getShapeState() { + if (bsSizeSet == null) + return ""; Hashtable temp = new Hashtable(); + Hashtable temp2 = new Hashtable(); String type = JmolConstants.shapeClassBases[shapeID]; for (int i = frame.atomCount; --i >= 0;) { - if (bsSizeSet != null && bsSizeSet.get(i)) + if (bsSizeSet.get(i)) setStateInfo(temp, i, type + " " + (mads[i] / 2000f)); if (bsColixSet != null && bsColixSet.get(i)) { - setStateInfo(temp, i, "color " + type + " [x" + setStateInfo(temp2, i, "color " + type + " [x" + viewer.getHexColorFromIndex(colixes[i]) + "]"); if (Graphics3D.isColixTranslucent(colixes[i])) - setStateInfo(temp, i, "color " + type + " translucent"); + setStateInfo(temp2, i, "color " + type + " translucent"); } } - return getShapeCommands(temp); + return getShapeCommands(temp, temp2); } } Modified: trunk/Jmol/src/org/jmol/viewer/Balls.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Balls.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Balls.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -118,7 +118,7 @@ Atom[] atoms = frame.atoms; Hashtable temp = new Hashtable(); for (int i = 0; i < atomCount; i++) { - if (bsSizeSet != null && bsSizeSet.get(i)) + if (bsSizeSet.get(i)) setStateInfo(temp, i, "spacefill " + (atoms[i].madAtom / 2000f)); if (bsColixSet != null && bsColixSet.get(i)) { setStateInfo(temp, i, "color atoms [x" @@ -127,6 +127,6 @@ setStateInfo(temp, i, "color translucent"); } } - return getShapeCommands(temp); + return getShapeCommands(temp, null); } } Modified: trunk/Jmol/src/org/jmol/viewer/Dipoles.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Dipoles.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Dipoles.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -205,8 +205,8 @@ if ("color" == propertyName) { colix = Graphics3D.getColix(value); if (isBond) { - setColixDipole(colix, (colix != Graphics3D.UNRECOGNIZED) ? null - : (String) value, JmolConstants.BOND_COVALENT_MASK, bs); + int pid = (value instanceof Byte ? ((Byte) value).intValue() : -1); + setColixDipole(colix, pid, JmolConstants.BOND_COVALENT_MASK, bs); } else if (value != null) { if (currentDipole != null) currentDipole.colix = colix; @@ -296,17 +296,15 @@ return (dipoles[i].isBondType()); } - private void setColixDipole(short colix, String palette, short bondTypeMask, + private void setColixDipole(short colix, int pid, short bondTypeMask, BitSet bs) { - if (colix != Graphics3D.UNRECOGNIZED) { - BondIterator iter = frame.getBondIterator(bondTypeMask, bs); - while (iter.hasNext()) { - Dipole d = findBondDipole(iter.next()); - if (d != null) - d.colix = colix; - } - } else { - Logger.debug("setColixDipole called with palette:" + palette); + if (colix == Graphics3D.UNRECOGNIZED) + return; // not implemented + BondIterator iter = frame.getBondIterator(bondTypeMask, bs); + while (iter.hasNext()) { + Dipole d = findBondDipole(iter.next()); + if (d != null) + d.colix = colix; } } Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -2365,9 +2365,9 @@ colorvalue = (argb == 0 ? null : new Integer(argb)); } else { // "cpk" value would be "spacefill" - int pid = (tok == Token.cpk ? JmolConstants.PALETTE_CPK : - JmolConstants.getPaletteID((String) statement[itoken].value)); - if (pid < 0) + int pid = (tok == Token.cpk ? JmolConstants.PALETTE_CPK + : JmolConstants.getPaletteID((String) statement[itoken].value)); + if (pid < 0 || pid == JmolConstants.PALETTE_TYPE && shapeType != JmolConstants.SHAPE_HSTICKS) invalidArgument(); colorvalue = new Byte((byte)pid); } Modified: trunk/Jmol/src/org/jmol/viewer/Hsticks.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Hsticks.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Hsticks.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -24,44 +24,9 @@ package org.jmol.viewer; - -import java.util.BitSet; - -import org.jmol.g3d.Graphics3D; - class Hsticks extends Sticks { - void setSize(int size, BitSet bsSelected) { - //Logger.debug("Hsticks.setSize()"); - //frame.calcHbonds(); - short mad = (short)size; - setMadBond(mad, JmolConstants.BOND_HYDROGEN_MASK, bsSelected); - } - - void setProperty(String propertyName, Object value, - BitSet bsSelected) { - if ("color" == propertyName) { - short colix = Graphics3D.getColix(value); - if (colix == Graphics3D.UNRECOGNIZED && "type" == (String)value) { - BondIterator iter = - frame.getBondIterator(JmolConstants.BOND_HYDROGEN_MASK, - bsSelected); - while (iter.hasNext()) { - Bond bond = iter.next(); - bond.setColix(viewer.getColixHbondType(bond.order)); - } - return; - } - setColixBond(colix, - (colix != Graphics3D.UNRECOGNIZED) ? null : (String)value, - JmolConstants.BOND_HYDROGEN_MASK, - bsSelected); - return; - } - if ("translucency" == propertyName) { - setTranslucencyBond(value == "translucent", - JmolConstants.BOND_HYDROGEN_MASK, bsSelected); - return; - } - } + void initShape() { + myMask = JmolConstants.BOND_HYDROGEN_MASK; + } } Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -1157,7 +1157,8 @@ /* 0 */ "none", "cpk", "partialCharge", "formalCharge", "temperature", /* 5 */ "fixedTemperature", "surfaceDistance", "structure", "amino", /* 9 */ "shapely", "chain", "group", "monomer", "molecule", "altloc", - /*15 */ "insertion", "jmol", "rasmol" + /*15 */ "insertion", "jmol", "rasmol", + /*18 */ "type" // hbonds only }; public final static int PALETTE_NONE = 0; @@ -1181,6 +1182,7 @@ public final static int PALETTE_INSERTION = 15; public final static int PALETTE_JMOL = 16; public final static int PALETTE_RASMOL = 17; + public final static int PALETTE_TYPE = 18; private final static int paletteCount = paletteNames.length; Modified: trunk/Jmol/src/org/jmol/viewer/Labels.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Labels.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Labels.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -296,29 +296,30 @@ String getShapeState() { Hashtable temp = new Hashtable(); + Hashtable temp2 = new Hashtable(); for (int i = frame.atomCount; --i >= 0;) { if (bsSizeSet == null || !bsSizeSet.get(i)) continue; setStateInfo(temp, i, "label " + formats[i]); if (bsColixSet != null && bsColixSet.get(i)) - setStateInfo(temp, i, "color label [x" + setStateInfo(temp2, i, "color label [x" + viewer.getHexColorFromIndex(colixes[i]) + "]"); if (bsBgColixSet != null && bsBgColixSet.get(i)) - setStateInfo(temp, i, "background label [x" + setStateInfo(temp2, i, "background label [x" + viewer.getHexColorFromIndex(bgcolixes[i]) + "]"); if (offsets != null && offsets.length > i) { - setStateInfo(temp, i, "set labelOffset " + setStateInfo(temp2, i, "set labelOffset " + Text.getXOffset(offsets[i] >> 2) + " " + (-Text.getYOffset(offsets[i] >> 2))); - setStateInfo(temp, i, "set labelAlignment " + setStateInfo(temp2, i, "set labelAlignment " + Text.getAlignment(offsets[i])); } if (bsFontSet != null && bsFontSet.get(i)) { Font3D font = Font3D.getFont3D(fids[i]); - setStateInfo(temp, i, "font label " + font.fontSize + " " + setStateInfo(temp2, i, "font label " + font.fontSize + " " + font.fontFace + " " + font.fontStyle); } } - return getShapeCommands(temp); + return getShapeCommands(temp, temp2); } } Modified: trunk/Jmol/src/org/jmol/viewer/ModelManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -1194,119 +1194,49 @@ return returnInfo; } - Hashtable getAllStateInfo(BitSet bs) { + Hashtable getAllStateInfo(BitSet bsUnused) { + BitSet bs; + Hashtable info = new Hashtable(); + if (frame == null) + return info; + StringBuffer commands = new StringBuffer(); + String cmd; + Hashtable temp = new Hashtable(); - /* - * The idea here is to create a running list that only shows - * differences between atoms and bonds, taken sequentially. - * This isn't perfect -- but it might be OK. - * - * The visibility flags give detailed information - * - */ - Hashtable stateInfo = new Hashtable(); - Vector V = new Vector(); - int atomCount = viewer.getAtomCount(); - short colix = -1; - short lastColix = -1; - int shapeVisibilityFlags = 0; - int lastVisibilityFlags = -1; - int mad = 0; - int lastMad = -1; - int defaultMadCode = viewer.getMadAtom(); - boolean isFirst = true; - Hashtable elementInfo = new Hashtable(); - for (int i = 0; i < atomCount; i++) { - if (! bs.get(i)) - continue; - boolean isChanged = false; - Hashtable info = new Hashtable(); - Atom atom = frame.getAtomAt(i); - String element = getElementSymbol(i); - if (!elementInfo.containsKey(element)) { - Hashtable Htable = new Hashtable(); - Htable.put("mad","" + atom.convertEncodedMad(defaultMadCode)); - elementInfo.put(element, Htable); - } - Hashtable thisElementInfo = (Hashtable)elementInfo.get(element); - String value; - String str; - - str = "" + atom.madAtom; - value = (String)thisElementInfo.get("mad"); - if (! str.equals(value)) { - thisElementInfo.put("mad",str); - info.put("mad", new Integer(atom.madAtom)); - isChanged = true; - } - - if (atom.colixAtom >= 0) { - str = "" + atom.colixAtom; - value = (String)thisElementInfo.get("colix"); - if (! str.equals(value)) { - thisElementInfo.put("colix",str); - info.put("colix", new Integer(atom.colixAtom)); - String strColor = viewer.getHexColorFromIndex(atom.colixAtom); - if(strColor != null) - info.put("color", strColor); - isChanged = true; - } - } - - shapeVisibilityFlags = atom.shapeVisibilityFlags; - if (isFirst || shapeVisibilityFlags != lastVisibilityFlags) - info.put("visibilityFlags", new Integer(shapeVisibilityFlags)); - - if (!info.isEmpty()) { - info.put("element", element); - info.put("_ipt", new Integer(i)); - V.add(info); - } - - lastVisibilityFlags = shapeVisibilityFlags; - isFirst = false; - if (isChanged) { - elementInfo.put(element, thisElementInfo); - } + // hidden atoms and displayed frames + temp.put("hide selected", viewer.getHiddenSet()); + cmd = StateManager.getCommands(temp); + if (cmd != null) + commands.append(cmd); + int modelIndex = viewer.getDisplayModelIndex(); + switch (modelIndex) { + case -1: + if (frame.modelCount > 1) + commands.append("frame all;"); + break; + case -2: + commands.append("background model " + + getModelNumber(viewer.getBackgroundModelIndex()) + ";"); + default: + commands.append("frame " + getModelNumber(modelIndex) + ";"); } - stateInfo.put("atomState",V); + // frame range? + info.put("visibilityCommands", commands); - isFirst = true; - V = new Vector(); - int bondCount = getBondCountInModel(-1); - for (int i = 0; i < bondCount; i++) { - if (! bs.get(frame.getBondAt(i).getAtom1().atomIndex) - || bs.get(frame.getBondAt(i).getAtom2().atomIndex)) - continue; - Bond bond = frame.getBondAt(i); - Hashtable info = new Hashtable(); - mad = bond.mad; - if (isFirst || mad != lastMad) - info.put("mad", new Integer(mad)); - colix = bond.colix; - if (isFirst || colix >= 0 && colix != lastColix) { - info.put("colix", new Integer(bond.colix)); - String strColor = viewer.getHexColorFromIndex(bond.colix); - if(strColor != null) - info.put("color", strColor); + // shape construction + + commands = new StringBuffer(); + for (int i = 0; i < JmolConstants.SHAPE_MAX; ++i) { + Shape shape = frame.shapes[i]; + if (shape != null) { + cmd = shape.getShapeState(); + if (cmd != null) + commands.append(cmd); } - if (!info.isEmpty()) { - info.put("_ipt", new Integer(i)); - V.add(info); - } - - //not taking into account possible connection changes here - - lastMad = mad; - lastColix = colix; - isFirst = false; } - stateInfo.put("bondState", V); - stateInfo.put("shapeInfo", getShapeInfo()); - stateInfo.put("modelInfo", getModelInfo()); - stateInfo.put("animationInfo", viewer.getAnimationInfo()); - stateInfo.put("polymerInfo",getAllPolymerInfo(bs)); - return stateInfo; + if (commands.length() > 0) + info.put("shapeCommands", commands.toString()); + return info; } Hashtable getBoundBoxInfo() { @@ -1374,12 +1304,7 @@ Shape shape = frame.shapes[i]; if (shape != null) { String shapeType = JmolConstants.shapeClassBases[i]; - //shapeinfo.put("index", new Integer(i)); - //shapeinfo.put("myVisibilityFlag", new Integer(shape.myVisibilityFlag)); - String cmd = shape.getShapeState(); - if (cmd != null) - commands.append(cmd); - else if ("Draw,Dipoles,Isosurface,LcaoOrbital,MolecularOrbital".indexOf(shapeType) >= 0) { + if ("Draw,Dipoles,Isosurface,LcaoOrbital,MolecularOrbital".indexOf(shapeType) >= 0) { Hashtable shapeinfo = new Hashtable(); shapeinfo.put("obj", shape.getShapeDetail()); info.put(shapeType, shapeinfo); Modified: trunk/Jmol/src/org/jmol/viewer/Mps.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Mps.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Mps.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -340,31 +340,27 @@ if (bsSizeSet == null) return ""; Hashtable temp = new Hashtable(); + Hashtable temp2 = new Hashtable(); String type = JmolConstants.shapeClassBases[shapeID]; for (int i = 0; i < monomerCount; i++) { - int atomIndex = monomers[i].getLeadAtomIndex(); - if (bsSizeSet.get(i)) - setStateInfo(temp, atomIndex, type + " " + (mads[i] / 2000f)); - } - String s = getShapeCommands(temp); - temp.clear(); - for (int i = 0; i < monomerCount; i++) { - int atomIndex = monomers[i].getLeadAtomIndex(); + int atomIndex1 = monomers[i].firstAtomIndex; + int atomIndex2 = monomers[i].lastAtomIndex; if (!bsSizeSet.get(i)) continue; + setStateInfo(temp, atomIndex1, atomIndex2, type + " " + (mads[i] / 2000f)); if (bsColixSet != null && bsColixSet.get(i)) { if (paletteIDs[i] >= 0) - setStateInfo(temp, atomIndex, "color " + type + " " + setStateInfo(temp2, atomIndex1, atomIndex2, "color " + type + " " + JmolConstants.getPaletteName(paletteIDs[i])); else - setStateInfo(temp, atomIndex, "color " + type + " [x" + setStateInfo(temp2, atomIndex1, atomIndex2, "color " + type + " [x" + viewer.getHexColorFromIndex(colixes[i]) + "]"); if (Graphics3D.isColixTranslucent(colixes[i])) - setStateInfo(temp, atomIndex, "color " + type + " translucent"); + setStateInfo(temp2, atomIndex1, atomIndex2, "color " + type + " translucent"); } } - return s + getShapeCommands(temp); + return getShapeCommands(temp, temp2); } void falsifyMesh(int index, boolean andNearby) { Modified: trunk/Jmol/src/org/jmol/viewer/Shape.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Shape.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Shape.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -32,7 +32,6 @@ import java.util.BitSet; import java.util.Vector; import java.util.Hashtable; -import java.util.Enumeration; abstract class Shape { @@ -98,30 +97,23 @@ void setVisibilityFlags(BitSet bs) { } - static void setStateInfo(Hashtable temp, int i, String key) { - if (!temp.containsKey(key)) { - BitSet bs = new BitSet(); - bs.set(i); - temp.put(key, bs); - } - ((BitSet) (temp.get(key))).set(i); + static void setStateInfo(Hashtable ht, int i, String key) { + setStateInfo(ht, i, i, key); } - static String getShapeCommands(Hashtable temp) { - StringBuffer s = new StringBuffer(); - String setPrev = null; - Enumeration e = temp.keys(); - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - String set = StateManager.encodeBitset((BitSet) temp.get(key)); - if (!set.equals(setPrev)) { - s.append("select ("); - s.append(set); - s.append(");"); - } - setPrev = set; - s.append(key + ";"); + static void setStateInfo(Hashtable ht, int i1, int i2, String key) { + BitSet bs; + if (ht.containsKey(key)) { + bs = (BitSet) ht.get(key); + } else { + bs = new BitSet(); + ht.put(key, bs); } - return s.toString(); + for (int i = i1; i<= i2; i++) + bs.set(i); } -} + + static String getShapeCommands(Hashtable htDefine, Hashtable htMore) { + return StateManager.getCommands(htDefine, htMore); + } + } Modified: trunk/Jmol/src/org/jmol/viewer/Sssticks.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Sssticks.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Sssticks.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -24,44 +24,9 @@ package org.jmol.viewer; - -import java.util.BitSet; - -import org.jmol.g3d.Graphics3D; - class Sssticks extends Sticks { - void setSize(int size, BitSet bsSelected) { - short mad = (short)size; - setMadBond(mad, JmolConstants.BOND_SULFUR_MASK, bsSelected); - } - - void setProperty(String propertyName, Object value, - BitSet bsSelected) { - if ("color" == propertyName) { - short colix = Graphics3D.getColix(value); - setColixBond(colix, - (colix != Graphics3D.UNRECOGNIZED) ? null : (String)value, - JmolConstants.BOND_SULFUR_MASK, - bsSelected); - return; - } - if ("translucency" == propertyName) { - setTranslucencyBond(value == "translucent", - JmolConstants.BOND_SULFUR_MASK, bsSelected); - return; - } - /* - perhaps broken because of elminiation of colorScheme - if ("colorScheme" == propertyName) { - if (value instanceof String) { - if ("cpk" == (String)value) { - setColixBond((short)0, JmolConstants.BOND_SULFUR_MASK, bsSelected); - return; - } - } - return; - } - */ - } + void initShape() { + myMask = JmolConstants.BOND_SULFUR_MASK; + } } Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateManager.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/StateManager.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -492,4 +492,35 @@ return measureDistanceUnits; } } + + static String getCommands(Hashtable ht) { + return getCommands(ht, null); + } + + static String getCommands(Hashtable htDefine, Hashtable htMore) { + StringBuffer s = new StringBuffer(); + String setPrev = getCommands(htDefine, s, null); + if (htMore != null) + getCommands(htMore, s, setPrev); + return s.toString(); + } + + static String getCommands(Hashtable ht, StringBuffer s, String setPrev) { + if (ht == null) + return ""; + Enumeration e = ht.keys(); + while (e.hasMoreElements()) { + String key = (String) e.nextElement(); + String set = StateManager.encodeBitset((BitSet) ht.get(key)); + if (!set.equals(setPrev)) { + s.append("select ("); + s.append(set); + s.append(");"); + } + setPrev = set; + s.append(key + ";"); + } + return setPrev; + } + } Modified: trunk/Jmol/src/org/jmol/viewer/Sticks.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Sticks.java 2006-11-08 21:32:15 UTC (rev 6139) +++ trunk/Jmol/src/org/jmol/viewer/Sticks.java 2006-11-08 23:24:11 UTC (rev 6140) @@ -33,54 +33,49 @@ class Sticks extends Shape { + short myMask; + + void initShape() { + myMask = JmolConstants.BOND_COVALENT_MASK; + } + void setSize(int size, BitSet bsSelected) { - short mad = (short)size; - setMadBond(mad, JmolConstants.BOND_COVALENT_MASK, bsSelected); + BondIterator iter = frame.getBondIterator(myMask, bsSelected); + short mad = (short) size; + while (iter.hasNext()) + iter.next().setMad(mad); } - void setProperty(String propertyName, Object value, - BitSet bsSelected) { - Logger.debug(propertyName+" "+value+" "+bsSelected); + void setProperty(String propertyName, Object value, BitSet bsSelected) { + Logger.debug(propertyName + " " + value + " " + bsSelected); if ("color" == propertyName) { short colix = Graphics3D.getColix(value); - setColixBond(colix, - (colix != Graphics3D.UNRECOGNIZED) ? null : (String)value, - JmolConstants.BOND_COVALENT_MASK, - bsSelected); + int pid = (value instanceof Byte ? ((Byte) value).intValue() : -1); + if (pid == JmolConstants.PALETTE_TYPE) { + BondIterator iter = frame.getBondIterator(myMask, bsSelected); + while (iter.hasNext()) { + Bond bond = iter.next(); + bond.setColix(viewer.getColixHbondType(bond.order)); + } + return; + } + if (colix == Graphics3D.UNRECOGNIZED) + return; //palettes not implemented for bonds + BondIterator iter = frame.getBondIterator(myMask, bsSelected); + while (iter.hasNext()) + iter.next().setColix(colix); return; } if ("translucency" == propertyName) { - setTranslucencyBond(value == "translucent", - JmolConstants.BOND_COVALENT_MASK, bsSelected); + boolean isTranslucent = (((String)value).equals("translucent")); + BondIterator iter = frame.getBondIterator(myMask, bsSelected); + while (iter.hasNext()) + iter.next().setTranslucent(isTranslucent); return; } super.setProperty(propertyName, value, bsSelected); } - void setMadBond(short mad, short bondTypeMask, BitSet bs) { - BondIterator iter = frame.getBondIterator(bondTypeMask, bs); - while (iter.hasNext()) - iter.next().setMad(mad); - } - - void setColixBond(short colix, String palette, - short bondTypeMask, BitSet bs) { - if (colix != Graphics3D.UNRECOGNIZED) { - BondIterator iter = frame.getBondIterator(bondTypeMask, bs); - while (iter.hasNext()) - iter.next().setColix(colix); - } else { - Logger.error("setColixBond called with palette:" + palette); - } - } - - void setTranslucencyBond(boolean isTranslucent, - short bondTypeMask, BitSet bs) { - BondIterator iter = frame.getBondIterator(bondTypeMask, bs); - while (iter.hasNext()) - iter.next().setTranslucent(isTranslucent); - } - void setModelClickability() { Bond[] bonds = frame.bonds; for (int i = frame.bondCount; --i >= 0;) { @@ -93,6 +88,4 @@ bond.atom2.clickabilityFlags |= myVisibilityFlag; } } - } - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |