Class ScriptParam

java.lang.Object
org.jmol.script.ScriptError
org.jmol.script.ScriptParam
All Implemented Interfaces:
JmolScriptEvaluator
Direct Known Subclasses:
ScriptExpr

public abstract class ScriptParam extends ScriptError
The ScriptParam class holds methods used to parse parameters in Jmol scripts.
  • Field Details

    • contextVariables

      public Map<String,SV> contextVariables
    • contextFunctions

      public Map<String,ScriptFunction> contextFunctions
    • thisContext

      public ScriptContext thisContext
    • iToken

      public int iToken
    • theTok

      public int theTok
    • theToken

      public T theToken
    • st

      public T[] st
    • slen

      public int slen
    • fractionalPoint

      public javajs.util.P3 fractionalPoint
      set in getPointOrPlane
    • coordinatesAreFractional

      public boolean coordinatesAreFractional
      set in getPointOrPlane
    • isBondSet

      public boolean isBondSet
    • MODE_P3

      public static final int MODE_P3
      See Also:
    • MODE_P4

      protected static final int MODE_P4
      See Also:
    • MODE_P34

      public static final int MODE_P34
      See Also:
    • MODE_P_INT_ONLY

      protected static final int MODE_P_INT_ONLY
      See Also:
    • MODE_P_ALLOW_FRACTIONAL

      public static final int MODE_P_ALLOW_FRACTIONAL
      See Also:
    • MODE_P_CONVERT_TO_CARTESIAN

      protected static final int MODE_P_CONVERT_TO_CARTESIAN
      See Also:
    • MODE_P_IMPLICIT_FRACTIONAL

      protected static final int MODE_P_IMPLICIT_FRACTIONAL
      See Also:
    • MODE_P_NULL_ON_ERROR

      protected static final int MODE_P_NULL_ON_ERROR
      See Also:
  • Constructor Details

    • ScriptParam

      public ScriptParam()
  • Method Details

    • getToken

      public T getToken(int i) throws ScriptException
      Throws:
      ScriptException
    • tokAt

      public int tokAt(int i)
    • checkToken

      protected boolean checkToken(int i)
    • getParameter

      public Object getParameter(String key, int tokType, boolean nullAsString)
    • getVarParameter

      protected Object getVarParameter(String var, boolean orReturnName)
    • getContextVariableAsVariable

      public SV getContextVariableAsVariable(String var, boolean isLocal)
    • paramAsStr

      public String paramAsStr(int i) throws ScriptException
      Throws:
      ScriptException
    • stringParameter

      public String stringParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • stringParameterSet

      public String[] stringParameterSet(int i) throws ScriptException
      Throws:
      ScriptException
    • objectNameParameter

      public String objectNameParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • atomCenterOrCoordinateParameter

      public javajs.util.P3 atomCenterOrCoordinateParameter(int i, Object[] ret) throws ScriptException
      Parameters:
      i -
      ret - return P3 or BS to ret[0]; on input, passing a BS as ret[1] indicates that it should be ANDED with this BS prior to calculation (SHOW/DRAW SYMOP)
      Returns:
      point -- ORIGINAL, non-copied atom, if a single atom
      Throws:
      ScriptException
    • isCenterParameter

      public boolean isCenterParameter(int i)
    • centerParameter

      public javajs.util.P3 centerParameter(int i, Object[] ret) throws ScriptException
      Throws:
      ScriptException
    • centerParameterForModel

      protected javajs.util.P3 centerParameterForModel(int i, int modelIndex, Object[] ret) throws ScriptException
      Throws:
      ScriptException
    • planeParameter

      public javajs.util.P4 planeParameter(int i, boolean isBest) throws ScriptException
      Throws:
      ScriptException
    • getAtomsStartingAt

      public javajs.util.BS getAtomsStartingAt(int i) throws ScriptException
      Throws:
      ScriptException
    • getPointOrCenterVector

      public javajs.util.Lst<javajs.util.P3> getPointOrCenterVector(T t) throws ScriptException
      Throws:
      ScriptException
    • hklParameter

      public javajs.util.P4 hklParameter(int i, javajs.util.Lst<javajs.util.P3> pts, boolean allowOffset) throws ScriptException
      Throws:
      ScriptException
    • getHklPlane

      public javajs.util.P4 getHklPlane(javajs.util.T3 pt, float offset, javajs.util.Lst<javajs.util.P3> pts)
    • getPointOrPlane

      public javajs.util.T3 getPointOrPlane(int index, int mode) throws ScriptException
      Get the point or plane at an index
      Parameters:
      index -
      mode - some combination of MODE_P options
      Returns:
      P3 or P4 or null
      Throws:
      ScriptException
    • isPoint3f

      public boolean isPoint3f(int i)
    • getPoint3f

      public javajs.util.P3 getPoint3f(int i, boolean allowFractional, boolean throwE) throws ScriptException
      Get an {x,y,z} value, possibly fractional, with option to throw an error. Will set fractionalCoords and coordinatesAreFractional
      Parameters:
      i -
      allowFractional -
      throwE -
      Returns:
      P3
      Throws:
      ScriptException
    • getFractionalPoint

      public javajs.util.T3 getFractionalPoint(int i) throws ScriptException
      Could return a P4 for large 1100100100 type indicators
      Parameters:
      i -
      Returns:
      P3 or P4
      Throws:
      ScriptException
    • getPoint4f

      public javajs.util.P4 getPoint4f(int i) throws ScriptException
      Throws:
      ScriptException
    • xypParameter

      public javajs.util.P3 xypParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • xyzpParameter

      public javajs.util.P4 xyzpParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • optParameterAsString

      public String optParameterAsString(int i) throws ScriptException
      Throws:
      ScriptException
    • intParameter

      public int intParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • isFloatParameter

      public boolean isFloatParameter(int index)
    • floatParameter

      public float floatParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • getPointArray

      public javajs.util.P3[] getPointArray(int i, int nPoints, boolean allowNull) throws ScriptException
      may return null values in some cases
      Parameters:
      i -
      nPoints - -1 for unspecified number of points
      allowNull - if allowing null values (as in setting atom properties such as vxyz or xyz)
      Returns:
      array of P3, with possible null values
      Throws:
      ScriptException
    • listParameter

      public javajs.util.Lst<Object> listParameter(int i, int nMin, int nMax) throws ScriptException
      Throws:
      ScriptException
    • listParameter4

      public javajs.util.Lst<Object> listParameter4(int i, int nMin, int nMax, boolean allowString) throws ScriptException
      Throws:
      ScriptException
    • floatParameterSet

      public float[] floatParameterSet(int i, int nMin, int nMax) throws ScriptException
      process a general string or set of parameters as an array of floats, allowing for relatively free form input
      Parameters:
      i -
      nMin -
      nMax -
      Returns:
      array of floats
      Throws:
      ScriptException
    • isArrayParameter

      public boolean isArrayParameter(int i)
    • getQuaternionParameter

      public javajs.util.Quat getQuaternionParameter(int i, javajs.util.BS bsAtoms, boolean divideByCurrent) throws ScriptException
      Throws:
      ScriptException
    • checkLast

      public int checkLast(int i) throws ScriptException
      Throws:
      ScriptException
    • checkLength

      public int checkLength(int length) throws ScriptException
      Throws:
      ScriptException
    • checkLengthErrorPt

      public int checkLengthErrorPt(int length, int errorPt) throws ScriptException
      Throws:
      ScriptException
    • checkLength23

      public int checkLength23() throws ScriptException
      Throws:
      ScriptException
    • checkLength34

      protected int checkLength34() throws ScriptException
      Throws:
      ScriptException
    • modelNumberParameter

      public int modelNumberParameter(int index) throws ScriptException
      Throws:
      ScriptException
    • getMadParameter

      public int getMadParameter() throws ScriptException
      Throws:
      ScriptException
    • intParameterRange

      public int intParameterRange(int i, int min, int max) throws ScriptException
      Throws:
      ScriptException
    • floatParameterRange

      protected float floatParameterRange(int i, float min, float max) throws ScriptException
      Throws:
      ScriptException
    • getPointVector

      public javajs.util.Lst<javajs.util.P3> getPointVector(T t, int i) throws ScriptException
      Throws:
      ScriptException
    • getFloatEncodedInt

      static int getFloatEncodedInt(String strDecimal)
      Encodes a string such as "2.10" as an integer instead of a float so as to distinguish "2.1" from "2.10" used for model numbers and partial bond orders. 2147483647 is maxvalue, so this allows loading simultaneously up to 2147 files, each with 999999 models (or trajectories)
      Parameters:
      strDecimal -
      Returns:
      float encoded as an integer
    • getPartialBondOrderFromFloatEncodedInt

      public static int getPartialBondOrderFromFloatEncodedInt(int bondOrderInteger)
      reads standard n.m float-as-integer n*1000000 + m and returns (n % 7) << 5 + (m % 0x1F)
      Parameters:
      bondOrderInteger -
      Returns:
      Bond order partial mask
    • getBondOrderFromString

      public static int getBondOrderFromString(String s)
    • getPartialBondOrderFromString

      private static int getPartialBondOrderFromString(String s)
    • isColorParam

      public boolean isColorParam(int i)
    • getArgbParam

      public int getArgbParam(int index) throws ScriptException
      Throws:
      ScriptException
    • getArgbParamLast

      protected int getArgbParamLast(int index, boolean allowNone) throws ScriptException
      Throws:
      ScriptException
    • getArgbParamOrNone

      public int getArgbParamOrNone(int index, boolean allowNone) throws ScriptException
      Throws:
      ScriptException
    • getColorTriad

      private int getColorTriad(int i) throws ScriptException
      Throws:
      ScriptException
    • tickParamAsStr

      public TickInfo tickParamAsStr(int index, boolean allowUnitCell, boolean allowScale, boolean allowFirst) throws ScriptException
      Parameters:
      index -
      allowUnitCell - IGNORED
      allowScale -
      allowFirst -
      Returns:
      TickInfo
      Throws:
      ScriptException
    • setBooleanProperty

      public void setBooleanProperty(String key, boolean value)
    • setIntProperty

      protected boolean setIntProperty(String key, int value)
    • setFloatProperty

      protected boolean setFloatProperty(String key, float value)
    • setStringProperty

      protected void setStringProperty(String key, String value)
    • checkHKL

      public javajs.util.T3 checkHKL(javajs.util.T3 pt) throws ScriptException
      Note - this check does not allow a 0 for h, k, or l.
      Parameters:
      pt -
      Returns:
      pt or throw invArg
      Throws:
      ScriptException
    • planeValue

      public javajs.util.P4 planeValue(T x)