scripps.vvm.graphics
Class BASShape

java.lang.Object
  |
  +--harmonic.mz.data.ModelNode
        |
        +--harmonic.mz.data.ShapeNode
              |
              +--scripps.vvm.graphics.VVM_Shape
                    |
                    +--scripps.vvm.graphics.VVM_RepShape
                          |
                          +--scripps.vvm.graphics.BASShape
All Implemented Interfaces:
java.awt.event.ActionListener, AtomListener, harmonic.mz.data.DataNode, harmonic.mz.gui.Documentable, java.util.EventListener, harmonic.mz.data.Interpolater, harmonic.meshGeom.math.MarkableObject, harmonic.mz.event.NodeListener, harmonic.viewer3D.ShapeOwner, harmonic.mz.data.Transformable

public class BASShape
extends VVM_RepShape

The Ball and Stick shape definition is the traditional ball and stick visual model. It represents atoms with balls and bonds with sticks.


Field Summary
 harmonic.mz.data.TableNode atomProps
          Holdes the per element properties for atoms.
 harmonic.mz.data.fields.BooleanField autoBond
          Renders bonds between all bonded atoms if true
 harmonic.mz.data.TableNode bondProps
          Holdes the per element properties for bonds.
 harmonic.mz.data.fields.ColorField defaultBondColor
          Color of auto bonded bonds
 harmonic.mz.data.fields.BooleanField defaultBondHalfness
          Halfness for auto-bonded bonds
 harmonic.mz.data.fields.ScalarField defaultBondThickness
          Radius of auto bonded bonds
 harmonic.mz.data.fields.IntField maxBalls
          Maximum balls to alow
 harmonic.mz.data.fields.IntField sphereDis
          Fineness of sphere shapes
 
Fields inherited from class scripps.vvm.graphics.VVM_RepShape
molField, type
 
Fields inherited from class harmonic.mz.data.ShapeNode
ANY_GEOM, ARRAY_GEOM, ATTRIBUTE_FIELD_TYPE, bAssignMaterialColors, bAttribsValid, bBaseGeometryValid, bSelectionValid, bTSelectionValid, bVisibilityValid, coordSystem, COORDSYSTEM_FIELD_TYPE, existingPainters, fastPainters, GEOMETRY_FIELD_TYPE, LINES_GEOM, localKludge, material, painters, POINT_GEOM, POLYGON_GEOM, REGION_GEOM, SOLID_GEOM, SURFACE_GEOM, transparency, visibility
 
Fields inherited from class harmonic.mz.data.ModelNode
_fileRoot_, _thread_, ATTRIB_CONTROL_WIDGET, ATTRIB_LISTABLE, ATTRIB_PRESENTABLE, ATTRIB_PRIVATE, ATTRIB_REMOVEABLE, ATTRIB_RENAMEABLE, ATTRIB_SHOW_CONTEXT_MENU, ATTRIB_TYPE_FILTER, ATTRIB_USERGROUP, ATTRIB_VALUE_GROUP, ATTRIB_VE_LISTENER, bCustomCS, bDebug, bValid, name
 
Constructor Summary
BASShape()
          Constructs a BASShape without adding it to database.
BASShape(Molecule mol)
          Constructs a BASShape without adding it to database.
 
Method Summary
 java.lang.String areFieldsValid()
           
 Atom atomAtPart(harmonic.viewer3D.PaintStruct p, int iPart, harmonic.meshGeom.math.Pnt3f pickedPoint)
          Used by the picking system.
 void atomChanged(AtomEvent event)
           
 Bond bondAtPart(harmonic.viewer3D.PaintStruct p, int iPart, harmonic.meshGeom.math.Pnt3f pickedPoint)
          Used by the picking system.
 void fullInvalidate()
           
 java.lang.String[] getDomains()
          Return a list of domains used by this class
 harmonic.mz.data.TableNode getElementDataTable(java.lang.String domainType)
          Like getElementProps() except return the ElementListNode object at the domain
 java.util.Vector getElementProps(java.lang.String domainType)
          Return vector of meta data objects for the domain.
 harmonic.mz.data.ModelNode makePrototype()
           
 void nodeChanged(harmonic.mz.event.NodeEvent event)
           
 void setAtomColor(TreeNodeSet set, harmonic.meshGeom.math.Clr3f clr)
          Set atom color shown by this ball and stick for the given set
 void setAtomColor(TreeNodeSet set, Scheme scheme)
          Set atom color shown by this ball and stick for the given set
 void setAtomRadius(TreeNodeSet set, float radius)
          Set atom radius shown by this ball and stick for the given set
 void setAtomRadius(TreeNodeSet set, Scheme scheme)
          Set atom radius shown by this ball and stick for the given set
 void setBondColor(TreeNodeSet set, harmonic.meshGeom.math.Clr3f clr)
          Set bond color shown by this ball and stick for the given set
 void setBondColor(TreeNodeSet set, Scheme scheme)
          Set bond color shown by this ball and stick for the given set
 void setBondHalfness(TreeNodeSet set, boolean bShow)
          Set bond halfness shown by this ball and stick for the given set
 void setBondHalfness(TreeNodeSet set, Scheme scheme)
          Set bond halfness shown by this ball and stick for the given set
 void setBondThickness(TreeNodeSet set, float radius)
          Set bond thickness shown by this ball and stick for the given set
 void setBondThickness(TreeNodeSet set, Scheme scheme)
          Set bond thickness shown by this ball and stick for the given set
 void validateGeometry()
          Looking at both bond and atom proporties, incremenetally validate geometry.
 
Methods inherited from class scripps.vvm.graphics.VVM_RepShape
defineTable, expectedValidationTime, getMol, prop, purge, selfNodeChanged, setDefaultProps, setMol, validateMol
 
Methods inherited from class scripps.vvm.graphics.VVM_Shape
residueAtPart
 
Methods inherited from class harmonic.mz.data.ShapeNode
addFastGeometry, addFastGeometry, addFastGeometry, addFastGeometry, addFastPainter, addGeometry, addGeometry, addGeometry, addGeometry, addNetworkOutput, addPainter, addWithUndo, beginTransform, bigValidation, calcGeometricProps, calcSurfaceArea, calcVolume, checkRequirements, clearFastGeometries, clearFastPainters, clearGeometries, clearGeometryCache, clearPainters, defaultPickPriority, endTransform, fastPainterCount, findPointSnaps, getCachedGeometries, getCachedGeometry, getChildRequirements, getCoordSystem, getDataTransfer, getDataTransferTypes, getDragable, getEdges, getFastPainter, getFastPainters, getFitable, getGDIEdges, getGeom, getGeom, getGeomAt, getGeoms, getGeoms, getGeoms, getGlobalPerLocal, getILAEdges, getMoveableCoordSystem, getObjectChildren, getPainter, getPainter, getPainters, getPainters, getPainters, getPaintOnTransient, getPickable, getPointSnaps, getRequirements, getSerializeGeometry, getShapeDefOwner, getTransformable, getTypeImage, getViewpointDependantGeometry, getVisibility, hasFixedCS, hasGeometryLock, hide, hide, invalidate, invalidateAttribs, invalidateCoordSystem, invalidateGeometry, invalidateGeometryDependants, isAttribsValid, isGeomComposite, isGeometryValid, isSelectionValid, isTentativeSelectionValid, isVisibilityValid, makeContextMenu_ShapeFns, makeContextMenu, painterCount, processMouseDragged, processMouseEntered, processMouseExited, processMouseMoved, processMousePressed, processMouseReleased, purgeFinal, removeFastPainter, removePainter, scaleCoordSystem, setDragable, setExclusiveVisibility, setFieldCoordSystems, setFitable, setMoveableCoordSystem, setPaintOnTransient, setPickable, setPickPriority, setSelect, setSerializeGeometry, setTempVisibility, setTentativeSelect, setTransform, setTransient, setViewpointDependantGeometry, setVisibility, shouldSpawnThread, show, show, transferAttributes, transferAttributes, transform, transformFields, translateCoordSystem, validate, validateAttribs, validateSelection, validateTransform
 
Methods inherited from class harmonic.mz.data.ModelNode
actionPerformed, addAll, addAlphaed, addField, addField, addField, addFields, addNetworkInput, addNode, addNodeListener, addNodeListener, addNodes, addNodes, addToCurrent, addToGlobals, addToNetworkEditor, addToTemps, allFieldsAreFinal, applyDataTransfer, assignFromMetaFields, assignFromXMLAttributes, assignFromXMLString, assignToMetaFields, assignToXMLAttributes, assignToXMLString, at, bind, canSelect, castSelection, checkFileRead, checkNetworkInput, childCount, clean, clearAttrib, clearNotified, compare, copyFrom, createControlWidget, createCopy, createXMLElement, deepCopy, defeatNodeEvents, disableEvents, enableEvents, fileRoot, finalize, findFieldElement, findNode, fromXMLNodes, getAttrib, getBound, getCatagory, getControlWidget, getCurrentNames, getDeleted, getDirectInputs, getDirectOutputs, getEffectors, getEntryListener, getErrorState, getFilterType, getFullName, getHandles, getInstanceURL, getInterpolater, getIsLeaf, getListable, getMark, getMetaFields, getName, getNodeChildren_V, getNodeChildren, getNodeID, getNodeParent, getObjectRep, getPresentable, getPrivate, getReferencePoolName, getRemoteOwner, getRemoveable, getRenameable, getSaveable, getSavedChildren, getSelect, getSeparateDirectInputs, getSeparateDirectOutputs, getSequenced, getSerialNo, getTags, getTentativeSelect, getTransformableParent, getTransient, getTreeName, getTypeURL, getUnfoldedChildren, getUpdateTime, getUserGroup, getValidates, getValue, getXMLNodes, hasDependants, hasExternalRef, hashKey, hasValidationLock, hideControlWidget, indexOf, initControlWidget, insertNode, interpolate_Linear, interpolate_Quadratic, isField, isFinal, isInSubtree, isInTree, isLinked, isNotified, isPurged, isSet, isTemporary, isValid, linkedTo, linksChildren, makeFixed, makeReferenced, makeUnreferenced, makeVisibleInGUI, markNotified, mayValidate, notifyListeners, postAssignFromXMLElement, preAssignToXMLElement, printChildren, printTags, printTree, printTree, pythonString, remove, removeAll, removeAll, removeHandles, removeNetworkInput, removeNetworkOutput, removeNode, removeNode, removeNode, removeNodeListener, replace, set, setActualName, setAttrib, setBound, setCatagory, setChildrenExcept, setCoordSystem, setCurrentControlWidget, setCurrentNames, setDeleted, setEntryListener, setErrorState, setFromPrototype, setIsField, setIsLeaf, setIsSet, setListable, setMark, setMetaFields, setName, setNodeParent, setPresentable, setPrivate, setRemoteOwner, setRemoveable, setRenameable, setSaveable, setSelect, setSequenced, setSerialNo, setTentativeSelect, setToLink, setTransientChildren, setUpdateTime, setUserGroup, setValidates, setValidationLock, setValue, setValueGroup, showControlWidget, showControlWidget, showControlWidget, showHandles, startRename, tag, toString, unlinkListeners, unmarkNotified, untag, updateBindable, valChanged, valChanged, valueString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bondProps

public harmonic.mz.data.TableNode bondProps
Holdes the per element properties for bonds. These include:
BondColorProp
BondThicknessProp
BondHalfnessProp


atomProps

public harmonic.mz.data.TableNode atomProps
Holdes the per element properties for atoms. These include:
AtomColorProp
AtomRadiusProp


maxBalls

public harmonic.mz.data.fields.IntField maxBalls
Maximum balls to alow


sphereDis

public harmonic.mz.data.fields.IntField sphereDis
Fineness of sphere shapes


autoBond

public harmonic.mz.data.fields.BooleanField autoBond
Renders bonds between all bonded atoms if true


defaultBondHalfness

public harmonic.mz.data.fields.BooleanField defaultBondHalfness
Halfness for auto-bonded bonds


defaultBondColor

public harmonic.mz.data.fields.ColorField defaultBondColor
Color of auto bonded bonds


defaultBondThickness

public harmonic.mz.data.fields.ScalarField defaultBondThickness
Radius of auto bonded bonds

Constructor Detail

BASShape

public BASShape(Molecule mol)
Constructs a BASShape without adding it to database.


BASShape

public BASShape()
Constructs a BASShape without adding it to database. The super classes 'mol' field needs to be set to a loaded Molecule. No atoms or bonds are shown by default.

Method Detail

setAtomColor

public void setAtomColor(TreeNodeSet set,
                         harmonic.meshGeom.math.Clr3f clr)
Set atom color shown by this ball and stick for the given set


setAtomColor

public void setAtomColor(TreeNodeSet set,
                         Scheme scheme)
Set atom color shown by this ball and stick for the given set


setAtomRadius

public void setAtomRadius(TreeNodeSet set,
                          float radius)
Set atom radius shown by this ball and stick for the given set


setAtomRadius

public void setAtomRadius(TreeNodeSet set,
                          Scheme scheme)
Set atom radius shown by this ball and stick for the given set


setBondColor

public void setBondColor(TreeNodeSet set,
                         harmonic.meshGeom.math.Clr3f clr)
Set bond color shown by this ball and stick for the given set


setBondColor

public void setBondColor(TreeNodeSet set,
                         Scheme scheme)
Set bond color shown by this ball and stick for the given set


setBondThickness

public void setBondThickness(TreeNodeSet set,
                             float radius)
Set bond thickness shown by this ball and stick for the given set


setBondThickness

public void setBondThickness(TreeNodeSet set,
                             Scheme scheme)
Set bond thickness shown by this ball and stick for the given set


setBondHalfness

public void setBondHalfness(TreeNodeSet set,
                            boolean bShow)
Set bond halfness shown by this ball and stick for the given set


setBondHalfness

public void setBondHalfness(TreeNodeSet set,
                            Scheme scheme)
Set bond halfness shown by this ball and stick for the given set


areFieldsValid

public java.lang.String areFieldsValid()
Overrides:
areFieldsValid in class harmonic.mz.data.ModelNode

makePrototype

public harmonic.mz.data.ModelNode makePrototype()
Overrides:
makePrototype in class harmonic.mz.data.ModelNode

fullInvalidate

public void fullInvalidate()
Overrides:
fullInvalidate in class VVM_RepShape

nodeChanged

public void nodeChanged(harmonic.mz.event.NodeEvent event)
Specified by:
nodeChanged in interface harmonic.mz.event.NodeListener
Overrides:
nodeChanged in class VVM_RepShape

atomChanged

public void atomChanged(AtomEvent event)
Specified by:
atomChanged in interface AtomListener
Overrides:
atomChanged in class VVM_RepShape

validateGeometry

public void validateGeometry()
Looking at both bond and atom proporties, incremenetally validate geometry. A bond may need to be replaced if the bond or either surrounding atom property has changed. An atom may need to be replace if the color or radius changed. Loop over bonds, and for each bond consider redoing the bond section and either atom. Need to check if an atom has already been done by this call of the function, by another bond. Make sure to not get confused and compare against previous calls to this function. To do this, mark all atoms as 0 to start, mark as 1 when it handled.

Overrides:
validateGeometry in class harmonic.mz.data.ShapeNode

atomAtPart

public Atom atomAtPart(harmonic.viewer3D.PaintStruct p,
                       int iPart,
                       harmonic.meshGeom.math.Pnt3f pickedPoint)
Description copied from class: VVM_Shape
Used by the picking system. Return atom reference or null

Overrides:
atomAtPart in class VVM_Shape

bondAtPart

public Bond bondAtPart(harmonic.viewer3D.PaintStruct p,
                       int iPart,
                       harmonic.meshGeom.math.Pnt3f pickedPoint)
Description copied from class: VVM_Shape
Used by the picking system. Return bond reference or null

Overrides:
bondAtPart in class VVM_Shape

getDomains

public java.lang.String[] getDomains()
Description copied from class: VVM_RepShape
Return a list of domains used by this class

Overrides:
getDomains in class VVM_RepShape

getElementProps

public java.util.Vector getElementProps(java.lang.String domainType)
Description copied from class: VVM_RepShape
Return vector of meta data objects for the domain. The meta data objects are sub classes of the ElementProperty class

Overrides:
getElementProps in class VVM_RepShape

getElementDataTable

public harmonic.mz.data.TableNode getElementDataTable(java.lang.String domainType)
Description copied from class: VVM_RepShape
Like getElementProps() except return the ElementListNode object at the domain

Overrides:
getElementDataTable in class VVM_RepShape