Class ModelLoader

java.lang.Object
org.jmol.modelset.ModelLoader

public final class ModelLoader extends Object
  • Field Details

    • vwr

      private Viewer vwr
    • ms

      public ModelSet ms
    • modelSet0

      private ModelSet modelSet0
    • merging

      private boolean merging
    • appendNew

      private boolean appendNew
    • jmolData

      private String jmolData
    • group3Lists

      public String[] group3Lists
    • group3Counts

      public int[][] group3Counts
    • specialAtomIndexes

      public int[] specialAtomIndexes
    • someModelsHaveUnitcells

      private boolean someModelsHaveUnitcells
    • someModelsAreModulated

      private boolean someModelsAreModulated
    • is2D

      private boolean is2D
    • isMOL2D

      private boolean isMOL2D
    • isMutate

      private boolean isMutate
    • isTrajectory

      public boolean isTrajectory
    • isPyMOLsession

      private boolean isPyMOLsession
    • doMinimize

      private boolean doMinimize
    • doAddPDBHydrogens

      private boolean doAddPDBHydrogens
    • fileHeader

      private String fileHeader
    • jbr

      private BioResolver jbr
    • groups

      public Group[] groups
    • groupCount

      private int groupCount
    • modulationTUV

      private javajs.util.P3 modulationTUV
    • isSupercell

      private boolean isSupercell
    • noH

      private boolean noH
    • htAtomMap

      private final Map<Object,Atom> htAtomMap
    • defaultGroupCount

      private static final int defaultGroupCount
      See Also:
    • chainOf

      private Chain[] chainOf
    • group3Of

      private String[] group3Of
    • seqcodes

      private int[] seqcodes
    • firstAtomIndexes

      private int[] firstAtomIndexes
    • iModel

      private int iModel
    • model

      private Model model
    • currentChainID

      private int currentChainID
    • isNewChain

      private boolean isNewChain
    • currentChain

      private Chain currentChain
    • currentGroupSequenceNumber

      private int currentGroupSequenceNumber
    • currentGroupInsertionCode

      private char currentGroupInsertionCode
    • currentGroup3

      private String currentGroup3
    • nullGroup

      private Group nullGroup
    • baseModelIndex

      public int baseModelIndex
    • baseModelCount

      private int baseModelCount
    • baseAtomIndex

      public int baseAtomIndex
    • baseGroupIndex

      public int baseGroupIndex
    • baseTrajectoryCount

      private int baseTrajectoryCount
    • adapterModelCount

      private int adapterModelCount
    • adapterTrajectoryCount

      private int adapterTrajectoryCount
    • noAutoBond

      private boolean noAutoBond
    • modulationOn

      private boolean modulationOn
    • htGroup1

      private Map<String,String> htGroup1
    • appendToModelIndex

      private Integer appendToModelIndex
    • mergeGroups

      private Group[] mergeGroups
    • iChain

      private int iChain
    • vStereo

      private javajs.util.Lst<Bond> vStereo
    • lastModel

      private int lastModel
    • structuresDefinedInFile

      public javajs.util.BS structuresDefinedInFile
    • stereodir

      private int stereodir
  • Constructor Details

    • ModelLoader

      public ModelLoader(Viewer vwr, String modelSetName, javajs.util.SB loadScript, Object asc, ModelSet modelSet0, javajs.util.BS bsNew)
  • Method Details

    • initializeInfo

      private void initializeInfo(String name, Map<String,Object> info)
    • newTrajectory

      private Trajectory newTrajectory(ModelSet ms, javajs.util.Lst<javajs.util.P3[]> steps)
    • getGroup3

      public String getGroup3(int iGroup)
    • getFirstAtomIndex

      public int getFirstAtomIndex(int iGroup)
    • getAtomCount

      public int getAtomCount()
    • createModelSet

      private void createModelSet(JmolAdapter adapter, Object asc, javajs.util.BS bs2D)
    • mergeTrajAndVib

      private void mergeTrajAndVib(ModelSet oldSet, ModelSet newSet)
    • setDefaultRendering

      private void setDefaultRendering(int maxAtoms)
    • setAtomProperties

      private void setAtomProperties()
    • initializeAtomBondModelCounts

      private void initializeAtomBondModelCounts(int nAtoms)
    • mergeGroups

      private void mergeGroups()
    • iterateOverAllNewModels

      private void iterateOverAllNewModels(JmolAdapter adapter, Object asc)
    • setModelNameNumberProperties

      private void setModelNameNumberProperties(int modelIndex, int trajectoryBaseIndex, String modelName, int modelNumber, Properties modelProperties, Map<String,Object> modelAuxiliaryInfo, String jmolData)
    • finalizeModels

      private void finalizeModels(int baseModelCount)
      Model numbers are considerably more complicated in Jmol 11. int modelNumber The adapter gives us a modelNumber, but that is not necessarily what the user accesses. If a single files is loaded this is: a) single file context: 1) the sequential number of the model in the file , or 2) if a PDB file and "MODEL" record is present, that model number b) multifile context: always 1000000 * (fileIndex + 1) + (modelIndexInFile + 1) int fileIndex The 0-based reference to the file containing this model. Used when doing "_modelnumber3.2" in a multifile context int modelFileNumber An integer coding both the file and the model: file * 1000000 + modelInFile (1-based) Used all over the place. Note that if there is only one file, then modelFileNumber invalid input: '<' 1000000. String modelNumberDotted A number the user can use "1.3" String modelNumberForAtomLabel Either the dotted number or the PDB MODEL number, if there is only one file
      Parameters:
      baseModelCount -
    • iterateOverAllNewAtoms

      private void iterateOverAllNewAtoms(JmolAdapter adapter, Object asc, boolean haveBonds)
    • getAtomSiteBase

      private int getAtomSiteBase(javajs.util.BS mbs)
    • addJmolDataProperties

      private void addJmolDataProperties(Model m, Map<String,float[]> jmolDataProperties)
    • getPdbCharge

      private int getPdbCharge(String group3, String name)
      Adjust known N and O atom formal charges. Note that this does not take care of ligands.
      Parameters:
      group3 -
      name -
      Returns:
      0, 1, or -1
    • addAtom

      private Atom addAtom(boolean isPDB, javajs.util.BS atomSymmetry, int atomSite, int atomicAndIsotopeNumber, String atomName, int formalCharge, float partialCharge, javajs.util.Lst<Object> tensors, float occupancy, float bfactor, javajs.util.P3 xyz, boolean isHetero, int atomSerial, int atomSeqID, String group3, javajs.util.V3 vib, char alternateLocationID, float radius, float bondRadius)
    • checkNewGroup

      private void checkNewGroup(JmolAdapter adapter, int chainID, String group3, int groupSequenceNumber, char groupInsertionCode, boolean addH, boolean isLegacyHAddition)
    • getOrAllocateChain

      private Chain getOrAllocateChain(Model model, int chainID)
    • iterateOverAllNewBonds

      private void iterateOverAllNewBonds(JmolAdapterBondIterator iterBond)
    • bondAtoms

      private Bond bondAtoms(Object atomUid1, Object atomUid2, short order)
    • initializeUnitCellAndSymmetry

      private void initializeUnitCellAndSymmetry()
    • initializeBonding

      private void initializeBonding()
    • finalizeGroupBuild

      private void finalizeGroupBuild()
    • distinguishAndPropagateGroup

      private void distinguishAndPropagateGroup(int groupIndex, Chain chain, String group3, int seqcode, int firstAtomIndex, int lastAtomIndex)
    • addGroup

      private void addGroup(Chain chain, Group group)
    • countGroup

      private void countGroup(int modelIndex, String code, String group3)
    • freeze

      private void freeze()
    • findElementsPresent

      private void findElementsPresent()
    • applyStereochemistry

      private void applyStereochemistry()
    • set2DLengths

      private void set2DLengths(int iatom1, int iatom2)
    • set2dZ

      private void set2dZ(int iatom1, int iatom2, javajs.util.V3 v)
    • getBranch2dZ

      private javajs.util.BS getBranch2dZ(int atomIndex, int atomIndexNot, javajs.util.BS bs0, javajs.util.BS bsBranch, javajs.util.V3 v, javajs.util.V3 v0, javajs.util.V3 v1, int dir)
      Parameters:
      atomIndex -
      atomIndexNot -
      bs0 -
      bsBranch -
      v -
      v0 -
      v1 -
      dir -
      Returns:
      atom bitset
    • setBranch2dZ

      private static void setBranch2dZ(Atom atom, javajs.util.BS bs, javajs.util.BS bsToTest, javajs.util.V3 v, javajs.util.V3 v0, javajs.util.V3 v1, int dir)
    • setAtom2dZ

      private static void setAtom2dZ(Atom atomRef, Atom atom2, javajs.util.V3 v, javajs.util.V3 v0, javajs.util.V3 v1, int dir)
      set the z based on a cos relationship to the y axis. Specifically, theta = acos(v.dot.v0) z = 0.8 * sin(4 theta) so: theta 4 theta y 0 0 x pi/2 2 pi -y pi 4 pi -x pi/2 2 pi y -1/4 -pi/4 x +1/4 pi/4 -y -1/4 3pi/4 -x +1/4 -pi/4
      Parameters:
      atomRef -
      atom2 -
      v -
      v0 -
      v1 -
      dir -
    • finalizeShapes

      private void finalizeShapes()
    • undeleteAtom

      public void undeleteAtom(int iAtom)
      called from org.jmol.modelsetbio.resolver when adding hydrogens.
      Parameters:
      iAtom -
    • createAtomDataSet

      public static String createAtomDataSet(Viewer vwr, ModelSet modelSet, int tokType, Object asc, javajs.util.BS bsSelected)