PyMOLScene
Date: 2019-10-22

org.jmol.adapter.readers.pymol

## Class PyMOLScene

- java.lang.Object
- - org.jmol.adapter.readers.pymol.PyMOLScene

- All Implemented Interfaces:
    JmolSceneGenerator

      class PyMOLScene
      extends java.lang.Object
      implements JmolSceneGenerator

  A class to allow manipulation of scenes dissociated from file loading. A "scene" in this context is a distillation of PyMOL information into a Hashtable for easier retrieval using RESTORE SCENE name.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private javajs.util.Lst<java.lang.Integer>` | `atomColorList`
    `private int` | `baseAtomIndex`
    `private int` | `baseModelIndex`
    `private int` | `bgRgb`
    `private javajs.util.BS` | `bsAtoms`
    `private javajs.util.BS` | `bsCartoon`
    `private javajs.util.BS` | `bsCarve`
    `(package private) javajs.util.BS` | `bsHidden`
    `(package private) javajs.util.BS` | `bsHydrogen`
    `(package private) javajs.util.BS` | `bsLabeled`
    `private javajs.util.BS` | `bsLineBonds`
    `(package private) javajs.util.BS` | `bsNonbonded`
    `(package private) javajs.util.BS` | `bsNoSurface`
    `(package private) javajs.util.BS` | `bsNucleic`
    `private javajs.util.BS` | `bsStickBonds`
    `private javajs.util.BS` | `bsUniqueBonds`
    `private int` | `cartoonColor`
    `private boolean` | `cartoonLadderMode`
    `private boolean` | `cartoonRockets`
    `private float` | `cartoonTranslucency`
    `private int[]` | `cartoonTypes`
    `private short[]` | `colixes`
    `(package private) int` | `currentAtomSetIndex`
    `(package private) boolean` | `doCache`
    `private int` | `dotColor`
    `private JmolObject` | `frameObj`
    `private java.util.Map<java.lang.String,PyMOLGroup>` | `groups`
    `private boolean` | `haveNucleicLadder`
    `private boolean` | `haveScenes`
    `private java.util.Map<java.lang.String,int[]>` | `htAtomMap`
    `private java.util.Map<java.lang.String,javajs.util.BS>` | `htCarveSets`
    `private java.util.Map<java.lang.String,javajs.util.BS>` | `htDefinedAtoms`
    `private java.util.Map<java.lang.String,java.lang.Boolean>` | `htHiddenObjects`
    `private java.util.Map<java.lang.String,MeasurementData[]>` | `htMeasures`
    `private java.util.Map<java.lang.String,javajs.util.BS>` | `htObjectAtoms`
    `private java.util.Map<java.lang.String,java.lang.String>` | `htObjectGroups`
    `private java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>>` | `htObjectSettings`
    `private java.util.Map<java.lang.Float,javajs.util.BS>` | `htSpacefill`
    `private java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>>` | `htStateSettings`
    `private javajs.util.Lst<JmolObject>` | `jmolObjects`
    `private int` | `labelColor`
    `private int` | `labelFontId`
    `private javajs.util.P3` | `labelPosition`
    `private javajs.util.P3` | `labelPosition0`
    `private java.util.Map<java.lang.Integer,Text>` | `labels`
    `private float` | `labelSize`
    `private static int[]` | `MEAS_DIGITS`
    `(package private) java.lang.String` | `mepList`
    `private float` | `meshWidth`
    `private javajs.util.Lst<java.lang.String>` | `moleculeNames`
    `private boolean[]` | `newChain`
    `private float` | `nonbondedSize`
    `private float` | `nonbondedTranslucency`
    `private boolean` | `objectHidden`
    `private java.util.Map<java.lang.String,java.lang.Object[]>` | `objectInfo`
    `private java.lang.String` | `objectJmolName`
    `private java.lang.String` | `objectName`
    `private java.lang.String` | `objectNameID`
    `private java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>` | `objectSettings`
    `private int` | `objectType`
    `private java.util.Map<java.lang.String,java.lang.Boolean>` | `occludedObjects`
    `private javajs.util.P3` | `ptTemp`
    `private int` | `pymolVersion`
    `private float[]` | `radii`
    `private PymolAtomReader` | `reader`
    `private int` | `ribbonColor`
    `private float` | `ribbonTranslucency`
    `private int[]` | `sequenceNumbers`
    `private javajs.util.Lst<java.lang.Object>` | `settings`
    `private boolean` | `solventAccessible`
    `private int` | `sphereColor`
    `private float` | `sphereScale`
    `private float` | `sphereTranslucency`
    `private java.util.Map<java.lang.String,javajs.util.BS>` | `ssMapAtom`
    `private int` | `stateCount`
    `private java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>` | `stateSettings`
    `private float` | `stickTranslucency`
    `private int` | `surfaceColor`
    `(package private) java.lang.String` | `surfaceInfoName`
    `private int` | `surfaceMode`
    `private int` | `thisState`
    `private float` | `transparency`
    `private int[]` | `uniqueIDs`
    `private java.util.Map<java.lang.Integer,java.lang.Integer>` | `uniqueList`
    `private java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>` | `uniqueSettings`
    `private Viewer` | `vwr`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PyMOLScene(PymolAtomReader reader, Viewer vwr, javajs.util.Lst<java.lang.Object> settings, java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> uniqueSettings, int pymolVersion, boolean haveScenes, int baseAtomIndex, int baseModelIndex, boolean doCache, java.lang.String filePath)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) java.lang.String` | `addCGO(javajs.util.Lst<java.lang.Object> data, int color)`
    `(package private) PyMOLGroup` | `addGroup(javajs.util.Lst<java.lang.Object> object, java.lang.String parent, int type, javajs.util.BS bsAtoms)` Create a hierarchical list of named groups as generally seen on the PyMOL app's right-hand object menu.
    `(package private) JmolObject` | `addIsosurface(java.lang.String objectName)`
    `private JmolObject` | `addJmolObject(int id, javajs.util.BS bsAtoms, java.lang.Object info)`
    `(package private) void` | `addLabel(int atomIndex, int uniqueID, int atomColor, float[] labelPos, java.lang.String label)`
    `(package private) boolean` | `addMeasurements(MeasurementData[] mdList, int nCoord, javajs.util.Lst<java.lang.Object> list, javajs.util.BS bsReps, int color, javajs.util.Lst<java.lang.Object> offsets, boolean haveLabels)`
    `(package private) void` | `addMesh(int tok, javajs.util.Lst<java.lang.Object> obj, java.lang.String objName, boolean isMep)`
    `private JmolObject` | `addObject(JmolObject obj)`
    `private void` | `addSetting(int key, int type, java.lang.Object val)`
    `(package private) boolean` | `booleanSetting(int i)`
    `(package private) void` | `buildScene(java.lang.String name, javajs.util.Lst<java.lang.Object> thisScene, java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object>> htObjNames, java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object>> htSecrets)` Build a scene at file reading time.
    `private void` | `checkNucleicObject(javajs.util.BS bs, boolean isTrace)`
    `private void` | `cleanSingletons(javajs.util.BS bs)` PyMOL does not display cartoons or traces for single-residue runs.
    `private void` | `clearReaderData()`
    `private int` | `colorSetting(int i)`
    `private void` | `createCartoonObject(java.lang.String key, int sizeID)`
    `private void` | `createPuttyObject(javajs.util.BS bs)` "Putty" shapes scaled in a variety of ways.
    `private void` | `createRibbonObject(javajs.util.BS bs)` PyMOL "ribbons" could be Jmol backbone or trace, depending upon the value of PyMOL.ribbon_sampling.
    `private void` | `createShapeObject(int shapeID, javajs.util.BS bs)` Create JmolObjects for each shape.
    `(package private) void` | `createShapeObjects(javajs.util.BS[] reps, boolean allowSurface, int ac0, int ac)` create all objects for a given molecule or scene
    `private void` | `createSpacefillObjects()` Create a BALLS JmolObject for each radius.
    `private void` | `createTraceObject(javajs.util.BS bs)` trace, or cartoon in the case of cartoon ladders.
    `private void` | `defineAtoms(java.lang.String name, javajs.util.BS bs)`
    `(package private) void` | `ensureCapacity(int n)`
    `private void` | `finalizeObjects()` Finally, we turn each JmolObject into its Jmol equivalent.
    `private void` | `finalizeUniqueBonds()`
    `(package private) void` | `finalizeVisibility()` Create group JmolObjects, and set hierarchical visibilities
    `private java.lang.String` | `fixName(java.lang.String name)`
    `private void` | `fixReps(javajs.util.BS[] reps)`
    `(package private) float` | `floatSetting(int i)`
    `private void` | `generateColors(java.lang.Object[] colors)` Set PyMOL "atom-wise" colors -- the colors that are defined initially as element colors but possibly set with the PyMOL 'color' command and are used when representation colors (cartoon, dots, etc.) are not defined (-1).
    `void` | `generateScene(java.util.Map<java.lang.String,java.lang.Object> scene)` Generate the saved scene using file settings preserved here and scene-specific information including frame, view, colors, visibilities, .
    `private void` | `generateShapes(java.lang.Object[] reps)` Create all Jmol shape objects.
    `private void` | `generateVisibilities(java.util.Map<java.lang.String,java.lang.Object> vis)` Hide everything, then just make visible the sets of atoms specified in the visibility (i.e.
    `private javajs.util.BS` | `getBS(javajs.util.Lst<java.lang.Object> list)`
    `private void` | `getBsAtoms(javajs.util.Lst<java.lang.Object> list, int[] atomMap, javajs.util.BS bs)`
    `(package private) short` | `getColix(int colorIndex, float translucency)`
    `(package private) PyMOLGroup` | `getGroup(java.lang.String name)`
    `private java.lang.String` | `getJmolName(java.lang.String name)`
    `private JmolObject` | `getJmolObject(int id, javajs.util.BS bsAtoms, java.lang.Object info)`
    `(package private) java.lang.String` | `getObjectID(java.lang.String name)`
    `(package private) javajs.util.Lst<java.lang.Object>` | `getObjectSetting(int i)`
    `private void` | `getObjectSettings()`
    `private int` | `getObjectType(java.lang.String name)`
    `private float[]` | `getPymolView(javajs.util.Lst<java.lang.Object> view, boolean isViewObj)` adds depth_cue, fog, and fog_start
    `private javajs.util.BS` | `getSelectionAtoms(javajs.util.Lst<java.lang.Object> molecules, int istate, javajs.util.BS bs)` Add selected atoms to a growing bit set.
    `private javajs.util.Lst<java.lang.Object>` | `getSetting(int i)`
    `(package private) javajs.util.BS` | `getSSMapAtom(java.lang.String ssType)`
    `(package private) float` | `getUniqueFloatDef(int id, int key, float defaultValue)`
    `(package private) javajs.util.P3` | `getUniquePoint(int id, int key, javajs.util.P3 pt)`
    `(package private) javajs.util.SB` | `getViewScript(javajs.util.Lst<java.lang.Object> view)`
    `(package private) float` | `globalSetting(int i)`
    `private void` | `listToSettings(javajs.util.Lst<java.lang.Object> list, java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> objectSettings)`
    `(package private) boolean` | `needSelections()`
    `private Text` | `newTextLabel(java.lang.String label, float[] labelOffset, int colorIndex, int fontID, float fontSize)`
    `(package private) void` | `offsetObjects()`
    `private javajs.util.P3` | `pointSetting(int i)`
    `(package private) void` | `processSelection(javajs.util.Lst<java.lang.Object> selection)` process the selection sets (sele), (...)
    `private void` | `selectAllAtoms(javajs.util.Lst<java.lang.Object> obj, int istate, javajs.util.BS bs)` Collect all the atoms specified by an object state into a bit set.
    `(package private) void` | `setAtomColor(int atomColor)`
    `(package private) java.util.Map<java.lang.String,java.lang.Object>` | `setAtomDefs()`
    `(package private) void` | `setAtomInfo(int[] uniqueIDs, int[] cartoonTypes, int[] sequenceNumbers, boolean[] newChain, float[] radii)`
    `(package private) javajs.util.BS` | `setAtomMap(int[] atomMap, int ac0)`
    `(package private) void` | `setBondParameters(Bond b, int modelIndex, float rad, float pymolValence, int argb, float trans)` used in PyMOL reader to set unique bond settings and for valence
    `(package private) void` | `setCarveSets(java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object>> htObjNames)`
    `(package private) void` | `setFrameObject(int type, java.lang.Object info)`
    `private void` | `setGroupVisibilities()`
    `private void` | `setGroupVisible(PyMOLGroup g, boolean parentVis)` Iterate through groups, setting visibility flags.
    `(package private) float[]` | `setLabelPosition(javajs.util.P3 offset, float[] labelPos)`
    `(package private) void` | `setReaderObjectInfo(java.lang.String name, int type, java.lang.String groupName, boolean isHidden, javajs.util.Lst<java.lang.Object> listObjSettings, javajs.util.Lst<java.lang.Object> listStateSettings, java.lang.String ext)`
    `(package private) void` | `setReaderObjects()`
    `private void` | `setSceneObject(java.lang.String name, int istate)` Set scene object/state-specific global fields and settings based on the name and state or stored values from when the file was loaded.
    `(package private) void` | `setStateCount(int stateCount)`
    `(package private) void` | `setUniqueBond(int index, int uniqueID)`
    `(package private) void` | `setUniqueBonds(javajs.util.BS bsBonds, boolean isSticks)`
    `private JmolObject` | `setUniqueObjects(int shape, javajs.util.BS bs, int setColor, int color, int setTrans, float trans, int setSize, float size, float f)`
    `private void` | `setVersionSettings()` Attempt to adjust for PyMOL versions.
    `(package private) java.lang.String` | `stringSetting(int i)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### vwr

          private Viewer vwr

    - #### pymolVersion

          private int pymolVersion

    - #### bsHidden

          javajs.util.BS bsHidden

    - #### bsNucleic

          javajs.util.BS bsNucleic

    - #### bsNonbonded

          javajs.util.BS bsNonbonded

    - #### bsLabeled

          javajs.util.BS bsLabeled

    - #### bsHydrogen

          javajs.util.BS bsHydrogen

    - #### bsNoSurface

          javajs.util.BS bsNoSurface

    - #### htSpacefill

          private java.util.Map<java.lang.Float,javajs.util.BS> htSpacefill

    - #### ssMapAtom

          private java.util.Map<java.lang.String,javajs.util.BS> ssMapAtom

    - #### atomColorList

          private javajs.util.Lst<java.lang.Integer> atomColorList

    - #### occludedObjects

          private java.util.Map<java.lang.String,java.lang.Boolean> occludedObjects

    - #### labels

          private java.util.Map<java.lang.Integer,Text> labels

    - #### colixes

          private short[] colixes

    - #### frameObj

          private JmolObject frameObj

    - #### groups

          private java.util.Map<java.lang.String,PyMOLGroup> groups

    - #### objectSettings

          private java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> objectSettings

    - #### bsCartoon

          private javajs.util.BS bsCartoon

    - #### htCarveSets

          private java.util.Map<java.lang.String,javajs.util.BS> htCarveSets

    - #### htDefinedAtoms

          private java.util.Map<java.lang.String,javajs.util.BS> htDefinedAtoms

    - #### htHiddenObjects

          private java.util.Map<java.lang.String,java.lang.Boolean> htHiddenObjects

    - #### moleculeNames

          private javajs.util.Lst<java.lang.String> moleculeNames

    - #### jmolObjects

          private javajs.util.Lst<JmolObject> jmolObjects

    - #### htAtomMap

          private java.util.Map<java.lang.String,int[]> htAtomMap

    - #### htObjectAtoms

          private java.util.Map<java.lang.String,javajs.util.BS> htObjectAtoms

    - #### htObjectGroups

          private java.util.Map<java.lang.String,java.lang.String> htObjectGroups

    - #### htMeasures

          private java.util.Map<java.lang.String,MeasurementData[]> htMeasures

    - #### htObjectSettings

          private java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>> htObjectSettings

    - #### objectInfo

          private java.util.Map<java.lang.String,java.lang.Object[]> objectInfo

    - #### settings

          private javajs.util.Lst<java.lang.Object> settings

    - #### htStateSettings

          private java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>>> htStateSettings

    - #### stateSettings

          private java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> stateSettings

    - #### uniqueSettings

          private java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> uniqueSettings

    - #### uniqueList

          private java.util.Map<java.lang.Integer,java.lang.Integer> uniqueList

    - #### bsUniqueBonds

          private javajs.util.BS bsUniqueBonds

    - #### bgRgb

          private int bgRgb

    - #### dotColor

          private int dotColor

    - #### surfaceMode

          private int surfaceMode

    - #### surfaceColor

          private int surfaceColor

    - #### cartoonColor

          private int cartoonColor

    - #### ribbonColor

          private int ribbonColor

    - #### sphereColor

          private int sphereColor

    - #### labelFontId

          private int labelFontId

    - #### labelColor

          private int labelColor

    - #### cartoonTranslucency

          private float cartoonTranslucency

    - #### ribbonTranslucency

          private float ribbonTranslucency

    - #### labelSize

          private float labelSize

    - #### meshWidth

          private float meshWidth

    - #### nonbondedSize

          private float nonbondedSize

    - #### nonbondedTranslucency

          private float nonbondedTranslucency

    - #### sphereScale

          private float sphereScale

    - #### sphereTranslucency

          private float sphereTranslucency

    - #### stickTranslucency

          private float stickTranslucency

    - #### transparency

          private float transparency

    - #### cartoonLadderMode

          private boolean cartoonLadderMode

    - #### cartoonRockets

          private boolean cartoonRockets

    - #### haveNucleicLadder

          private boolean haveNucleicLadder

    - #### labelPosition

          private javajs.util.P3 labelPosition

    - #### labelPosition0

          private javajs.util.P3 labelPosition0

    - #### objectName

          private java.lang.String objectName

    - #### objectNameID

          private java.lang.String objectNameID

    - #### objectJmolName

          private java.lang.String objectJmolName

    - #### objectType

          private int objectType

    - #### bsAtoms

          private javajs.util.BS bsAtoms

    - #### objectHidden

          private boolean objectHidden

    - #### reader

          private PymolAtomReader reader

    - #### uniqueIDs

          private int[] uniqueIDs

    - #### cartoonTypes

          private int[] cartoonTypes

    - #### sequenceNumbers

          private int[] sequenceNumbers

    - #### newChain

          private boolean[] newChain

    - #### radii

          private float[] radii

    - #### baseModelIndex

          private int baseModelIndex

    - #### baseAtomIndex

          private int baseAtomIndex

    - #### stateCount

          private int stateCount

    - #### mepList

          java.lang.String mepList

    - #### doCache

          boolean doCache

    - #### haveScenes

          private boolean haveScenes

    - #### bsCarve

          private javajs.util.BS bsCarve

    - #### solventAccessible

          private boolean solventAccessible

    - #### bsLineBonds

          private javajs.util.BS bsLineBonds

    - #### bsStickBonds

          private javajs.util.BS bsStickBonds

    - #### thisState

          private int thisState

    - #### currentAtomSetIndex

          int currentAtomSetIndex

    - #### surfaceInfoName

          java.lang.String surfaceInfoName

    - #### ptTemp

          private final javajs.util.P3 ptTemp

    - #### MEAS_DIGITS

          private static final int[] MEAS_DIGITS

  - ### Constructor Detail

    - #### PyMOLScene

          PyMOLScene(PymolAtomReader reader,
                     Viewer vwr,
                     javajs.util.Lst<java.lang.Object> settings,
                     java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> uniqueSettings,
                     int pymolVersion,
                     boolean haveScenes,
                     int baseAtomIndex,
                     int baseModelIndex,
                     boolean doCache,
                     java.lang.String filePath)

  - ### Method Detail

    - #### clearReaderData

          private void clearReaderData()

    - #### setUniqueBond

          void setUniqueBond(int index,
                             int uniqueID)

    - #### setStateCount

          void setStateCount(int stateCount)

    - #### colorSetting

          private int colorSetting(int i)

    - #### pointSetting

          private javajs.util.P3 pointSetting(int i)

    - #### ensureCapacity

          void ensureCapacity(int n)

    - #### setReaderObjectInfo

          void setReaderObjectInfo(java.lang.String name,
                                   int type,
                                   java.lang.String groupName,
                                   boolean isHidden,
                                   javajs.util.Lst<java.lang.Object> listObjSettings,
                                   javajs.util.Lst<java.lang.Object> listStateSettings,
                                   java.lang.String ext)

    - #### listToSettings

          private void listToSettings(javajs.util.Lst<java.lang.Object> list,
                                      java.util.Map<java.lang.Integer,javajs.util.Lst<java.lang.Object>> objectSettings)

    - #### getObjectSettings

          private void getObjectSettings()

    - #### setAtomInfo

          void setAtomInfo(int[] uniqueIDs,
                           int[] cartoonTypes,
                           int[] sequenceNumbers,
                           boolean[] newChain,
                           float[] radii)

    - #### setSceneObject

          private void setSceneObject(java.lang.String name,
                                      int istate)

      Set scene object/state-specific global fields and settings based on the name and state or stored values from when the file was loaded.
      Parameters:
        `name` -
        `istate` -

    - #### buildScene

          void buildScene(java.lang.String name,
                          javajs.util.Lst<java.lang.Object> thisScene,
                          java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object>> htObjNames,
                          java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object>> htSecrets)

      Build a scene at file reading time. We only implement frame-specific scenes. Creates a map of information that can be used later and will also be a reference to this instance of PyMOLScene, which is an implementation of JmolSceneGenerator.
      Parameters:
        `name` -
        `thisScene` -
        `htObjNames` -
        `htSecrets` -

    - #### generateScene

          public void generateScene(java.util.Map<java.lang.String,java.lang.Object> scene)

      Generate the saved scene using file settings preserved here and scene-specific information including frame, view, colors, visibilities, . Called by StateManager via implemented JmolSceneGenerator.
      Specified by:
        `generateScene` in interface `JmolSceneGenerator`
      Parameters:
        `scene` -

    - #### generateColors

          private void generateColors(java.lang.Object[] colors)

      Set PyMOL "atom-wise" colors -- the colors that are defined initially as element colors but possibly set with the PyMOL 'color' command and are used when representation colors (cartoon, dots, etc.) are not defined (-1). This is the same as Jmol's inherited atom color.
      Parameters:
        `colors` -

    - #### processSelection

          void processSelection(javajs.util.Lst<java.lang.Object> selection)

      process the selection sets (sele), (...)
      Parameters:
        `selection` -

    - #### getSelectionAtoms

          private javajs.util.BS getSelectionAtoms(javajs.util.Lst<java.lang.Object> molecules,
                                                   int istate,
                                                   javajs.util.BS bs)

      Add selected atoms to a growing bit set.
      Parameters:
        `molecules` -
        `istate` -
        `bs` -
      Returns:
        bs for convenience

    - #### selectAllAtoms

          private void selectAllAtoms(javajs.util.Lst<java.lang.Object> obj,
                                      int istate,
                                      javajs.util.BS bs)

      Collect all the atoms specified by an object state into a bit set.
      Parameters:
        `obj` -
        `istate` - 0 for "all states"
        `bs` -

    - #### generateVisibilities

          private void generateVisibilities(java.util.Map<java.lang.String,java.lang.Object> vis)

      Hide everything, then just make visible the sets of atoms specified in the visibility (i.e. "activity") list within scene_dict.
      Parameters:
        `vis` -

    - #### generateShapes

          private void generateShapes(java.lang.Object[] reps)

      Create all Jmol shape objects.
      Parameters:
        `reps` -

    - #### getBS

          private javajs.util.BS getBS(javajs.util.Lst<java.lang.Object> list)

    - #### getBsAtoms

          private void getBsAtoms(javajs.util.Lst<java.lang.Object> list,
                                  int[] atomMap,
                                  javajs.util.BS bs)

    - #### setReaderObjects

          void setReaderObjects()

    - #### finalizeObjects

          private void finalizeObjects()

      Finally, we turn each JmolObject into its Jmol equivalent.

    - #### offsetObjects

          void offsetObjects()

    - #### getJmolObject

          private JmolObject getJmolObject(int id,
                                           javajs.util.BS bsAtoms,
                                           java.lang.Object info)

    - #### addJmolObject

          private JmolObject addJmolObject(int id,
                                           javajs.util.BS bsAtoms,
                                           java.lang.Object info)

    - #### getPymolView

          private float[] getPymolView(javajs.util.Lst<java.lang.Object> view,
                                       boolean isViewObj)

      adds depth_cue, fog, and fog_start
      Parameters:
        `view` -
        `isViewObj` -
      Returns:
        22-element array

    - #### globalSetting

          float globalSetting(int i)

    - #### addGroup

          PyMOLGroup addGroup(javajs.util.Lst<java.lang.Object> object,
                              java.lang.String parent,
                              int type,
                              javajs.util.BS bsAtoms)

      Create a hierarchical list of named groups as generally seen on the PyMOL app's right-hand object menu.
      Parameters:
        `object` -
        `parent` -
        `type` -
        `bsAtoms` -
      Returns:
        group

    - #### getGroup

          PyMOLGroup getGroup(java.lang.String name)

    - #### finalizeVisibility

          void finalizeVisibility()

      Create group JmolObjects, and set hierarchical visibilities

    - #### setCarveSets

          void setCarveSets(java.util.Map<java.lang.String,javajs.util.Lst<java.lang.Object>> htObjNames)

    - #### setGroupVisibilities

          private void setGroupVisibilities()

    - #### defineAtoms

          private void defineAtoms(java.lang.String name,
                                   javajs.util.BS bs)

    - #### getJmolName

          private java.lang.String getJmolName(java.lang.String name)

    - #### createShapeObjects

          void createShapeObjects(javajs.util.BS[] reps,
                                  boolean allowSurface,
                                  int ac0,
                                  int ac)

      create all objects for a given molecule or scene
      Parameters:
        `reps` -
        `allowSurface` -
        `ac0` - > 0 for a molecule; -1 for a scene
        `ac` -

    - #### addLabel

          void addLabel(int atomIndex,
                        int uniqueID,
                        int atomColor,
                        float[] labelPos,
                        java.lang.String label)

    - #### getUniqueFloatDef

          float getUniqueFloatDef(int id,
                                  int key,
                                  float defaultValue)

    - #### getUniquePoint

          javajs.util.P3 getUniquePoint(int id,
                                        int key,
                                        javajs.util.P3 pt)

    - #### getObjectSetting

          javajs.util.Lst<java.lang.Object> getObjectSetting(int i)

    - #### booleanSetting

          boolean booleanSetting(int i)

    - #### floatSetting

          float floatSetting(int i)

    - #### stringSetting

          java.lang.String stringSetting(int i)

    - #### getSetting

          private javajs.util.Lst<java.lang.Object> getSetting(int i)

    - #### setLabelPosition

          float[] setLabelPosition(javajs.util.P3 offset,
                                   float[] labelPos)

    - #### addCGO

          java.lang.String addCGO(javajs.util.Lst<java.lang.Object> data,
                                  int color)

    - #### addMeasurements

          boolean addMeasurements(MeasurementData[] mdList,
                                  int nCoord,
                                  javajs.util.Lst<java.lang.Object> list,
                                  javajs.util.BS bsReps,
                                  int color,
                                  javajs.util.Lst<java.lang.Object> offsets,
                                  boolean haveLabels)

    - #### getViewScript

          javajs.util.SB getViewScript(javajs.util.Lst<java.lang.Object> view)

    - #### getColix

          short getColix(int colorIndex,
                         float translucency)

    - #### setAtomColor

          void setAtomColor(int atomColor)

    - #### setFrameObject

          void setFrameObject(int type,
                              java.lang.Object info)

    - #### fixName

          private java.lang.String fixName(java.lang.String name)

    - #### getObjectID

          java.lang.String getObjectID(java.lang.String name)

    - #### getObjectType

          private int getObjectType(java.lang.String name)

    - #### setAtomMap

          javajs.util.BS setAtomMap(int[] atomMap,
                                    int ac0)

    - #### newTextLabel

          private Text newTextLabel(java.lang.String label,
                                    float[] labelOffset,
                                    int colorIndex,
                                    int fontID,
                                    float fontSize)

    - #### setVersionSettings

          private void setVersionSettings()

      Attempt to adjust for PyMOL versions. See PyMOL layer3.Executive.c

    - #### addSetting

          private void addSetting(int key,
                                  int type,
                                  java.lang.Object val)

    - #### fixReps

          private void fixReps(javajs.util.BS[] reps)

    - #### cleanSingletons

          private void cleanSingletons(javajs.util.BS bs)

      PyMOL does not display cartoons or traces for single-residue runs. This two-pass routine first sets bits in a residue bitset, then it clears out all singletons, and in a second pass all atom bits for not-represented residues are cleared.
      Parameters:
        `bs` -

    - #### createShapeObject

          private void createShapeObject(int shapeID,
                                         javajs.util.BS bs)

      Create JmolObjects for each shape. Note that LINES and STICKS are done initially, then all the others are processed.
      Parameters:
        `shapeID` -
        `bs` -

    - #### setUniqueObjects

          private JmolObject setUniqueObjects(int shape,
                                              javajs.util.BS bs,
                                              int setColor,
                                              int color,
                                              int setTrans,
                                              float trans,
                                              int setSize,
                                              float size,
                                              float f)

    - #### createSpacefillObjects

          private void createSpacefillObjects()

      Create a BALLS JmolObject for each radius.

    - #### createTraceObject

          private void createTraceObject(javajs.util.BS bs)

      trace, or cartoon in the case of cartoon ladders.
      Parameters:
        `bs` -

    - #### checkNucleicObject

          private void checkNucleicObject(javajs.util.BS bs,
                                          boolean isTrace)

    - #### createPuttyObject

          private void createPuttyObject(javajs.util.BS bs)

      "Putty" shapes scaled in a variety of ways.
      Parameters:
        `bs` -

    - #### createRibbonObject

          private void createRibbonObject(javajs.util.BS bs)

      PyMOL "ribbons" could be Jmol backbone or trace, depending upon the value of PyMOL.ribbon_sampling.
      Parameters:
        `bs` -

    - #### createCartoonObject

          private void createCartoonObject(java.lang.String key,
                                           int sizeID)

    - #### addObject

          private JmolObject addObject(JmolObject obj)

    - #### setGroupVisible

          private void setGroupVisible(PyMOLGroup g,
                                       boolean parentVis)

      Iterate through groups, setting visibility flags.
      Parameters:
        `g` -
        `parentVis` -

    - #### getSSMapAtom

          javajs.util.BS getSSMapAtom(java.lang.String ssType)

    - #### setAtomDefs

          java.util.Map<java.lang.String,java.lang.Object> setAtomDefs()

    - #### needSelections

          boolean needSelections()

    - #### setUniqueBonds

          void setUniqueBonds(javajs.util.BS bsBonds,
                              boolean isSticks)

    - #### finalizeUniqueBonds

          private void finalizeUniqueBonds()

    - #### setBondParameters

          void setBondParameters(Bond b,
                                 int modelIndex,
                                 float rad,
                                 float pymolValence,
                                 int argb,
                                 float trans)

      used in PyMOL reader to set unique bond settings and for valence
      Parameters:
        `modelIndex` -
        `b` -
        `rad` -
        `pymolValence` - 1 for "show multiple bonds"
        `argb` -
        `trans` -

    - #### addMesh

          void addMesh(int tok,
                       javajs.util.Lst<java.lang.Object> obj,
                       java.lang.String objName,
                       boolean isMep)

    - #### addIsosurface

          JmolObject addIsosurface(java.lang.String objectName)