From: Miguel <mic...@us...> - 2004-05-14 13:13:43
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/managers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25058/src/org/openscience/jmol/viewer/managers Modified Files: ModelManager.java Log Message: fixed implementation of center - looked like very old code :-) Index: ModelManager.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/managers/ModelManager.java,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- ModelManager.java 25 Apr 2004 22:22:58 -0000 1.74 +++ ModelManager.java 14 May 2004 13:13:33 -0000 1.75 @@ -146,22 +146,25 @@ return (frame == null) ? 0 : frame.getBondCount(); } - public void setCenterAsSelected() { + private final Point3f pointT = new Point3f(); + public void setCenterBitSet(BitSet bsCenter) { if (frame == null) return; - int countSelected = 0; - Point3f center = new Point3f(); // defaults to 0,00, - BitSet bsSelection = viewer.getSelectionSet(); - for (int i = getAtomCount(); --i >= 0; ) { - if (!bsSelection.get(i)) - continue; - ++countSelected; - center.add(frame.getAtomPoint3f(i)); - } - if (countSelected > 0) { - center.scale(1.0f / countSelected); // just divide by the quantity - } else { - center = null; + Point3f center = null; + if (bsCenter != null) { + int countSelected = 0; + center = pointT; + center.set(0,0,0); + for (int i = getAtomCount(); --i >= 0; ) { + if (! bsCenter.get(i)) + continue; + ++countSelected; + center.add(frame.getAtomPoint3f(i)); + } + if (countSelected > 0) + center.scale(1.0f / countSelected); // just divide by the quantity + else + center = null; } frame.setRotationCenter(center); } |