From: Bob H. <ha...@st...> - 2006-11-17 06:51:27
|
I just wanted to say that I have spent the last couple of days putting 10.9.99 through the paces. In association with this work I went through all the shape code and did a lot of consolidation. The result is a much leaner code with essentially no duplication of effort anywhere. And the Jar file dropped in size by 60K. I must say that without Miguel's strong preference for "self-explanatory code" -- that is, code that looks like this: int setShapeByNameParameter(int index) throws ScriptException { String objectName = objectNameParameter(index); int shapeType = viewer.getShapeIdFromObjectName(objectName); if (shapeType < 0) objectNameExpected(); viewer.setShapeProperty(shapeType, "thisID", objectName); return shapeType; } and not this: DO 50 I=1,NVIBS WI=VIBS(I) EWJ=EXP(-WI*C1) QV=QV/(1-EWJ) HV=HV+WI*EWJ/(1-EWJ) E0=E0+WI CPV=CPV+WI*WI*EWJ/(1-EWJ)/(1-EWJ) SV1=SV1+LOG(1.0D0-EWJ) 50 SV2=SV2+WI*EWJ/(1-EWJ) I could never have attempted this were it not for how well this was written in the first place. I know there isn't a lot of commenting or documentation in a formal sense in this code, but it just amazes me how easy it is to navigate, especially with Eclipse. You'll be happy to know that I've pretty much run out of places to look for tightening up the code. So that was that. It's nice now to see things like this: class Stars extends AtomShape { } [that's all -- think about it] or class Hsticks extends Sticks { void initShape() { myMask = JmolConstants.BOND_HYDROGEN_MASK; } String getShapeState() { return ""; } } Here is the status of the classes that extend Shape: * AtomShape * Balls, Dots, Halos, Labels, Polyhedra, Stars, Vectors * * Dipoles * * FontLineShape * Axes, Bbcage, Frank, Uccage * * Measures * * MeshCollection * Draw, Isosurface, Pmesh * |______________ LcaoCartoon, MolecularOrbital * * Mps * Backbone, Cartoon, MeshRibbon, Ribbons, Rockets, Strands, Trace * * Sticks * Hsticks, Sssticks * * TextShape * Echo, Hover Nico, let's get this prerelease out. Bob |