Package org.jmol.script
Class SV
- java.lang.Object
-
- org.jmol.script.T
-
- org.jmol.script.SV
-
- All Implemented Interfaces:
javajs.api.JSONEncodable
public class SV extends T implements javajs.api.JSONEncodable
ScriptVariable class
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classSV.Sort
-
Field Summary
Fields Modifier and Type Field Description intindexStringmyNameprivate static javajs.util.P3pt0static SVvFstatic SVvT-
Fields inherited from class org.jmol.script.T
__, abs, absolute, acos, add, addhydrogens, adjust, adpmax, adpmin, align, all, allconnected, allfloat, allowaudio, allowembeddedscripts, allowgestures, allowkeystrokes, allowmodelkit, allowmoveatoms, allowmultitouch, allowrotateselected, altloc, ambientocclusion, ambientpercent, amino, andequals, angle, angstroms, animation, animationfps, animationmode, anisotropy, antialiasdisplay, antialiasimages, antialiastranslucent, append, appendnew, appletproxy, applysymmetrytobonds, arc, area, aromatic, array, arrow, as, assign, astrType, async, atomExpressionCommand, atomicorbital, atomid, atomindex, atomname, atomno, atompicking, atomproperty, atoms, atomtype, atomtypes, atomx, atomy, atomz, audio, auto, autobond, autofps, autoplaymovie, average, axes, axescolor, axesmode, axesmolecular, axesoffset, axesorientationrasmol, axesscale, axesunitcell, axeswindow, axis, axis1color, axis2color, axis3color, axisangle, babel, babel21, back, backbone, background, backgroundcolor, backgroundmodel, backlit, backshell, balls, barb, barray, basemodel, basepair, best, beta, bin, binary, bind, bitset, blockdata, bondcount, bonded, bondingradius, bondingversion, bondmode, bondmodeor, bondorder, bondpicking, bondradiusmilliangstroms, bonds, bondset, bondtolerance, booleanparam, bottom, boundbox, boundboxcolor, branch, breakcmd, brillouin, cache, calculate, cameradepth, cancel, cap, capture, carbohydrate, cartoon, cartoonbaseedges, cartoonblockheight, cartoonblocks, cartoonladders, cartoonribose, cartoonrockets, cartoonsfancy, cartoonsteps, casecmd, catchcmd, cavity, cd, cell, celshading, celshadingpower, center, centerat, centroid, cgo, chain, chaincasesensitive, chainno, check, chemical, chemicalshift, chirality, ciprule, ciprule6full, circle, clash, clear, clickable, clipboard, col, collapsed, colon, color, colorrasmol, colorscheme, comma, command, commands, comparator, compare, configuration, connect, connected, console, constraint, contact, context, contextdepthmax, continuecmd, contour, contourlines, contours, coord, corners, cos, count, covalentradius, create, criterion, cross, crossed, currentlocalpath, curve, cutoff, cylinder, data, dataseparator, debug, debughigh, debugscript, decimal, defaultanglelabel, defaultcmd, defaultcolorscheme, defaultdirectory, defaultdistancelabel, defaultdrawarrowscale, defaultdropscript, defaultlabelpdb, defaultlabelxyz, defaultlattice, defaultloadfilter, defaultloadscript, defaultON, defaults, defaultstructuredssp, defaulttorsionlabel, defaulttranslucent, defaultvdw, define, delay, delaymaximumms, delete, density, deprecatedparam, depth, diameter, diffusepercent, dipole, dipolescale, direction, disablepopupmenu, discrete, displacement, display, displaycellparameters, displayed, distance, distancefactor, div, divide, dna, dollarsign, domains, dot, dotdensity, dots, dotscale, dotsselectedonly, dotsurface, dotted, downsample, dragselected, draw, drawfontsize, drawhover, drawing, drawpicking, dssp, dsspcalchydrogen, dssr, dynamicmeasurements, eccentricity, echo, ed, edges, edgesonly, eds, edsdiff, element, elemisono, elemno, ellipsoid, ellipsoidarcs, ellipsoidarrows, ellipsoidaxes, ellipsoidaxisdiameter, ellipsoidball, ellipsoiddotcount, ellipsoiddots, ellipsoidfill, elsecmd, elseif, end, endifcmd, energy, energyunits, error, eta, eval, exit, exitjmol, exportscale, expressionBegin, expressionEnd, facecenteroffset, file, filecachedirectory, filecaching, fill, filter, find, first, fixed, fixedtemp, flat, floatparam, floatproperty, flowCommand, font, fontcaching, fontscaling, fontsize, forceautobond, forcefield, forcmd, formalcharge, format, fps, fractionalrelative, fracx, fracxyz, fracy, fracz, frame, frank, from, front, frontedges, frontlit, frontonly, full, fullplane, fullylit, function, functionxy, functionxyz, fux, fuxyz, fuy, fuz, geosurface, gestureswipefactor, getproperty, gotocmd, greyscalerendering, gridpoints, group, group1, groupid, groupindex, halo, hash, hbond, hbondsangleminimum, hbondsbackbone, hbondsdistancemaximum, hbondsrasmol, hbondssolid, helix, helix310, helixalpha, helixpi, helixstep, help, helppath, hermitelevel, hetero, hidden, hiddenlinesdashed, hide, hidenameinpopup, hidenavigationpoint, hidenotselected, highlight, highresolution, history, historylevel, hkl, homo, hover, hoverdelay, hoverlabel, hydrogen, hydrophobicity, id, identifier, identify, ifcmd, ignore, image, imagestate, implicitStringCommand, in, inchi, inchikey, increment, info, infofontsize, initialize, inline, inscode, insertion, insideout, integer, interior, intermolecular, internal, intersection, intparam, intproperty, intramolecular, intValue, invertSelected, isaromatic, iskiosk, isosurface, isosurfacekey, isosurfacepropertysmoothing, isosurfacepropertysmoothingpower, javascript, jmol, jmolinjspecview, join, json, justifymeasurements, keys, label, language, languagetranslation, last, lattice, lcaocartoon, leadatom, left, leftbrace, leftdivide, leftparen, leftsquare, legacyautobonding, legacyhaddition, legacyjavafloat, length, lighting, line, linedata, lines, link, list, listf, load, loadatomdatatolerance, loadformat, loadligandformat, lobe, log, logcommands, logfile, loggestures, loglevel, lonepair, loop, lp, lumo, macro, macrodirectory, magneticshielding, manifest, mapproperty, mass, mathExpressionCommand, mathfunc, mathop, mathproperty, matrix3f, matrix4f, max, maxset, measure, measureallmodels, measurementlabels, measurementnumbers, measurements, measurementunits, menu, mep, mesh, meshRibbon, meshscale, message, messagestylechime, middle, min, minbonddistance, minimizationcriterion, minimizationmaxatoms, minimizationrefresh, minimizationsilent, minimizationsteps, minimize, minmaxmask, minpixelselradius, minset, minus, minusMinus, misc, mlp, mo, mode, model, modelbased, modelindex, modelkitmode, modify, modifyorcreate, modo, modt1, modt2, modt3, modulateoccupancy, modulation, modulationscale, modx, modxyz, mody, modz, molecular, molecule, monitorenergy, monomer, morph, mouse, mousedragfactor, mousewheelfactor, move, moveto, movie, mrc, msms, mul, mul3, multiplebondbananas, multiplebondradiusfactor, multiplebondspacing, multiprocessor, mutate, nada, name, navfps, navigate, navigatesurface, navigationdepth, navigationmode, navigationperiodic, navigationslab, navigationspeed, navx, navy, navz, nbo, nbocharges, nci, next, nihresolverformat, nmr, nmrpredictformat, nmrurlformat, noArgs, nobackshell, nocontourlines, nocross, nodebug, nodelay, nodots, noedges, nofill, nohead, noload, nomesh, none, noplane, normal, notfrontonly, notriangles, now, nucleic, obj, object, occupancy, off, offset, offsetside, omega, on, once, only, opAnd, opAND, opaque, opEQ, opGE, opGT, opIf, opLE, opLIKE, opLT, opNE, opNot, opOr, options, opToggle, opXor, orbital, orientation, origin, out, packed, palindrome, parallel, parameters, paramTypes, partialcharge, partialdots, particleradius, path, pathforallfiles, pause, pdb, pdbaddhydrogens, pdbgetheader, pdbheader, pdbsequential, per, percent, percentvdwatom, period, perpendicular, perper, perspectivedepth, perspectivemodel, phase, phi, phongexponent, picking, pickingspinrate, pickingstyle, picklabel, pivot, planarparam, plane, platformspeed, play, playrev, plot, plot3d, plus, plusPlus, pmesh, pocket, point, point3f, point4f, pointgroup, pointgroupdistancetolerance, pointgrouplineartolerance, pointsperangstrom, polygon, polyhedra, polymer, polymerlength, pop, predefinedset, preservestate, prev, print, probe, process, prompt, property, propertyatomnumbercolumncount, propertyatomnumberfield, propertycolorscheme, propertydatacolumncount, propertydatafield, PROPERTYFLAGS, propselector, protein, psi, purine, push, pymol, pyrimidine, quaternion, quaternionframe, quit, rad, radical, radius, ramachandran, random, range, rangeselected, rasmol, redomove, reference, refresh, refreshing, remove, repaintwaitms, replace, reset, residue, resno, resolution, restore, restrict, resume, returncmd, reverse, reversecolor, rewind, ribbon, ribbonaspectratio, ribbonborder, right, rightbrace, rightparen, rightsquare, rmsd, rna, rna3d, rock, rocket, rocketbarrels, rotate, rotate45, rotateSelected, rotation, rotationradius, row, rubberband, sasurface, save, saved, saveproteinstructurestate, scale, scale3d, scaleangstromsperinch, scene, screenx, screenxyz, screeny, screenz, script, scriptCommand, scriptqueue, scriptreportinglevel, search, select, selectallmodels, selected, selectedfloat, selecthetero, selecthydrogen, selection, selectionhalos, semicolon, seqcode, seqid, sequence, set, setparam, settable, shape, shapeCommand, shapely, sheet, sheetsmoothing, show, showaxes, showboundbox, showfrank, showhiddenselectionhalos, showhydrogens, showkeystrokes, showmeasurements, showmodvecs, showmultiplebonds, shownavigationpointalways, showscript, showtiming, showunitcell, showunitcelldetails, sidechain, sigma, sign, silent, sin, site, size, slab, slabbyatom, slabbymolecule, slabenabled, slabrange, smallmoleculemaxatoms, smartaromatic, smiles, smiles2dimageformat, smilesurlformat, solid, solvent, solventprobe, solventproberadius, sort, spacebeforesquare, spacefill, spacegroup, spec_alternate, spec_atom, spec_chain, spec_model, spec_model2, spec_name_pattern, spec_resid, spec_seqcode, spec_seqcode_range, specialposition, specular, specularexponent, specularpercent, specularpower, sphere, spin, spine, spinfps, spinx, spiny, spinz, split, sqrt, squared, ssbond, ssbondsbackbone, star, starwidth, state, statusreporting, stddev, stdinchi, stdinchikey, step, stereo, stereodegrees, stop, straightness, strandcount, strandcountformeshribbon, strandcountforstrands, strands, string, strparam, strproperty, strucid, strucno, structure, strutdefaultradius, strutlengthmaximum, struts, strutsmultiple, strutspacing, sub, subset, substructure, subsystem, sum, sum2, supercell, surface, surfacedistance, switchcmd, symbol, symmetry, symop, sync, syncmouse, syncscript, temperature, tensor, testflag1, testflag2, testflag3, testflag4, theta, thismodel, throwcmd, ticks, timeout, times, timestimes, title, titleformat, to, togglelabel, tok, tokenAll, tokenAnd, tokenAndFALSE, tokenAndSpec, tokenArrayClose, tokenArrayOpen, tokenArraySquare, tokenColon, tokenComma, tokenConnected, tokenCoordinateBegin, tokenCoordinateEnd, tokenDefineString, tokenDivide, tokenEquals, tokenExpressionBegin, tokenExpressionEnd, tokenIf, tokenLeftBrace, tokenLeftParen, tokenMinus, tokenMul3, tokenOff, tokenOn, tokenOpIf, tokenOr, tokenOrTRUE, tokenPlus, tokenRightBrace, tokenRightParen, tokenScript, tokenSet, tokenSetArray, tokenSetCmd, tokenSetProperty, tokenSetVar, tokenSpaceBeforeSquare, tokenSwitch, tokenTimes, top, torsion, trace, tracealpha, trajectory, transform, translate, translateSelected, translation, translucent, triangles, trim, trycmd, twistedsheets, type, unaryMinus, unbind, undo, undomove, unitcell, unitcellcolor, unitx, unitxyz, unity, unitz, url, useminimizationthread, usenumberlocalization, user, usercolorscheme, val, valence, validation, value, vanderwaals, var, variable, variables, varray, vector, vectorscale, vectorscentered, vectorsymmetry, vectortrail, vertices, vibration, vibrationperiod, vibrationscale, vibx, vibxyz, viby, vibz, visible, visualrange, volume, w, waitformoveto, whilecmd, width, wigner, window, windowcentered, wireframe, wireframerotation, within, write, x, xyz, y, z, zap, zdepth, zerobasedxyzrasmol, zoom, zoomenabled, zoomheight, zoomlarge, zoomTo, zshade, zshadepower, zslab
-
-
Constructor Summary
Constructors Constructor Description SV()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static booleanareEqual(SV x1, SV x2)For legacy reasons, "x" == "X" but see isLike()booleanasBoolean()floatasFloat()intasInt()StringasString()(package private) static javajs.util.BSbsSelectRange(T x, int n)private static javajs.util.BSbsSelectToken(T x)static booleanbValue(T x)(package private) booleancanIncrement()static SVconcatList(SV x1, SV x2, boolean asNew)static ObjectdeepCopy(Object v, boolean isHash, boolean isDeep)Copies a hash or array deeply; invoked by Jmol script x = @a where a.type == "hash" or a.type == "varray"private static SVdeepCopySV(SV vm)Stringescape()static float[][]fflistValue(T x, int nMin)static float[]flistValue(T x, int nMin)static Objectformat(SV[] args, int pt)Accepts arguments from the format() function First argument is a format string.static floatfValue(T x)static intgetArrayDepth(T x)static javajs.util.BSgetBitSet(SV x, boolean allowNull)static SVgetBoolean(boolean value)static intgetFormatType(String format)private voidgetKeyList(boolean isAll, javajs.util.Lst<String> keys, String prefix)String[]getKeys(boolean isAll)javajs.util.Lst<SV>getList()Map<String,SV>getMap()StringgetMapKeys(int nLevels, boolean skipEmpty)static SVgetVariable(Object x)(package private) static SVgetVariableAB(byte[] ix)static SVgetVariableAD(double[] f)(package private) static SVgetVariableADD(double[][] fx)(package private) static SVgetVariableAF(float[] f)(package private) static SVgetVariableAFF(float[][] fx)(package private) static SVgetVariableAI(int[] ix)(package private) static SVgetVariableAII(int[][] ix)(package private) static SVgetVariableAO(Object[] o)(package private) static SVgetVariableAP(javajs.util.T3[] p)(package private) static SVgetVariableAS(String[] s)(package private) static SVgetVariableASS(String[][] fx)(package private) static SVgetVariableAV(SV[] v)static SVgetVariableList(javajs.util.Lst<?> v)static SVgetVariableMap(Map<String,?> x)(package private) booleanincrement(int n)private static booleanisArray(Object x)Must be updated if getVariable is updated!private static booleanisASV(Object x)static booleanisLike(SV x1, SV x2)a LIKE "x" a is a string and equals x a LIKE "*x" a is a string and ends with x a LIKE "x*" a is a string and starts with x a LIKE "*x*" a is a string and contains xprivate static booleanisRawType(int tok)static booleanisScalar(SV x)static booleanisVariableType(Object x)Must be updated if getVariable is updated!static intiValue(T x)SVmapGet(String key)voidmapPut(String key, SV v)(package private) SVmapValue(String key)static SVnewF(float f)static SVnewI(int i)private static SVnewJSVar(Object x)Conversion to Jmol variables of JavaScript variables using y = javascript("x")static SVnewS(String s)(package private) static SVnewSV(int tok, int intValue, Object value)static SVnewT(T x)static SVnewV(int tok, Object value)(package private) static ObjectnValue(T x)static ObjectoValue(Object xx)static javajs.util.P4pt4Value(SV x)static javajs.util.P3ptValue(SV x)SVpushPop(SV mapKey, SV value)Script variables are pushed after cloning, because the name comes with them when we do otherwise they are not mutable anyway.static ObjectsafeJSON(String key, Object property)Safely create a JSON key - object pair, allowing for already-named arrays(package private) static TselectItemTok(T tokenIn, int i2)(package private) static SVselectItemVar(SV var)SVsetName(String name)(package private) voidsetSelectedValue(int pt1, int pt2, SV var)(package private) SVsetv(SV v)Creates a NEW version of the variable.(package private) static intsizeOf(T x)SVsortMapArray(String key)SVsortOrReverse(int arrayPt)static Objectsprintf(String strFormat, SV var)private static Stringsprintf(String strFormat, SV var, Object[] of, int[] vd, float[] vf, double[] ve, boolean getS, boolean getP, boolean getQ)static String[]strListValue(T x)static StringsValue(T x)private static voidsValueAddKeys(javajs.util.SB sb, String path, Map<String,SV> ht, String tabs, boolean isEscaped, boolean addValues, int maxLevels, boolean skipEmpty)private static voidsValueArray(javajs.util.SB sb, SV vx, String path, String tabs, boolean isEscaped, boolean isRaw, boolean addValues, int maxLevels, boolean skipEmpty)SVtoArray()private static floattoFloat(String s)StringtoJSON()StringtoString()private static booleanunEscapeBitSet(SV x, javajs.util.BS bs)Turn the string "({3:5})" into a bitset(package private) static javajs.util.BSunEscapeBitSetArray(javajs.util.Lst<SV> x, boolean allowNull)Turn an array of strings in the form of "{n,n,n:n...} or an array of integers into a bitset.static ObjectunescapePointOrBitsetAsVariable(Object o)-
Methods inherited from class org.jmol.script.T
addToken, completeCommand, equals, getAtomPropertiesLike, getCommandSet, getMaxMathParams, getParamType, getPrecedence, getSettableTokFromString, getTokenFromName, getTokensLike, getTokensType, getTokFromName, hashCode, i, isIDcmd, n, nameOf, o, t, tokAttr, tokAttrOr, toString2, tv
-
-
-
-
Method Detail
-
newI
public static SV newI(int i)
-
newF
public static SV newF(float f)
-
setv
SV setv(SV v)
Creates a NEW version of the variable. Object values are not copied. (Just found no use for that.)- Parameters:
v-- Returns:
- new ScriptVariable
-
sizeOf
static int sizeOf(T x)
-
isVariableType
public static boolean isVariableType(Object x)
Must be updated if getVariable is updated!- Parameters:
x-- Returns:
- if we recognize this as a variable
-
isArray
private static boolean isArray(Object x)
Must be updated if getVariable is updated!- Parameters:
x-- Returns:
- if we recognize this as an primitive array type
-
getVariable
public static SV getVariable(Object x)
- Parameters:
x-- Returns:
- a ScriptVariable of the input type, or if x is null, then a new ScriptVariable, or, if the type is not found, a string version
-
isASV
private static boolean isASV(Object x)
-
newJSVar
private static SV newJSVar(Object x)
Conversion to Jmol variables of JavaScript variables using y = javascript("x")- Parameters:
x- a JavaScript variable, perhaps- Returns:
- SV
-
getVariableList
public static SV getVariableList(javajs.util.Lst<?> v)
-
getVariableAD
public static SV getVariableAD(double[] f)
-
getVariableAP
static SV getVariableAP(javajs.util.T3[] p)
-
getVariableAFF
static SV getVariableAFF(float[][] fx)
-
getVariableADD
static SV getVariableADD(double[][] fx)
-
getVariableAII
static SV getVariableAII(int[][] ix)
-
getVariableAF
static SV getVariableAF(float[] f)
-
getVariableAI
static SV getVariableAI(int[] ix)
-
getVariableAB
static SV getVariableAB(byte[] ix)
-
canIncrement
boolean canIncrement()
-
increment
boolean increment(int n)
-
asBoolean
public boolean asBoolean()
-
asInt
public int asInt()
-
asFloat
public float asFloat()
-
asString
public String asString()
-
bValue
public static boolean bValue(T x)
-
iValue
public static int iValue(T x)
-
fValue
public static float fValue(T x)
-
sValueArray
private static void sValueArray(javajs.util.SB sb, SV vx, String path, String tabs, boolean isEscaped, boolean isRaw, boolean addValues, int maxLevels, boolean skipEmpty)
-
sValueAddKeys
private static void sValueAddKeys(javajs.util.SB sb, String path, Map<String,SV> ht, String tabs, boolean isEscaped, boolean addValues, int maxLevels, boolean skipEmpty)
-
isRawType
private static boolean isRawType(int tok)
-
ptValue
public static javajs.util.P3 ptValue(SV x)
-
pt4Value
public static javajs.util.P4 pt4Value(SV x)
-
toFloat
private static float toFloat(String s)
-
bsSelectToken
private static javajs.util.BS bsSelectToken(T x)
-
bsSelectRange
static javajs.util.BS bsSelectRange(T x, int n)
-
setSelectedValue
void setSelectedValue(int pt1, int pt2, SV var)
-
escape
public String escape()
-
getBoolean
public static SV getBoolean(boolean value)
-
sprintf
private static String sprintf(String strFormat, SV var, Object[] of, int[] vd, float[] vf, double[] ve, boolean getS, boolean getP, boolean getQ)
-
getFormatType
public static int getFormatType(String format)
- Parameters:
format-- Returns:
- 0: JSON, 5: base64, 12: bytearray, 22: array
-
format
public static Object format(SV[] args, int pt)
Accepts arguments from the format() function First argument is a format string.- Parameters:
args-pt- 0: to JSON, 5: to base64, 12: to bytearray, 22: to array- Returns:
- formatted string
-
getBitSet
public static javajs.util.BS getBitSet(SV x, boolean allowNull)
-
unEscapeBitSetArray
static javajs.util.BS unEscapeBitSetArray(javajs.util.Lst<SV> x, boolean allowNull)
Turn an array of strings in the form of "{n,n,n:n...} or an array of integers into a bitset.- Parameters:
x-allowNull-- Returns:
- bitset (or null if fails and allowNull is false)
-
areEqual
public static boolean areEqual(SV x1, SV x2)
For legacy reasons, "x" == "X" but see isLike()- Parameters:
x1-x2-- Returns:
- x1 == x2
-
isLike
public static boolean isLike(SV x1, SV x2)
a LIKE "x" a is a string and equals x a LIKE "*x" a is a string and ends with x a LIKE "x*" a is a string and starts with x a LIKE "*x*" a is a string and contains x- Parameters:
x1-x2-- Returns:
- x1 LIKE x2
-
sortOrReverse
public SV sortOrReverse(int arrayPt)
- Parameters:
arrayPt- 1-based or Integer.MIN_VALUE to reverse- Returns:
- sorted or reversed array
-
pushPop
public SV pushPop(SV mapKey, SV value)
Script variables are pushed after cloning, because the name comes with them when we do otherwise they are not mutable anyway. We do want to have actual references to points, lists, and associative arrays- Parameters:
mapKey-value- null to pop- Returns:
- array
-
unEscapeBitSet
private static boolean unEscapeBitSet(SV x, javajs.util.BS bs)
Turn the string "({3:5})" into a bitset- Parameters:
x-bs-- Returns:
- a bitset or a string converted to one
-
getArrayDepth
public static int getArrayDepth(T x)
-
fflistValue
public static float[][] fflistValue(T x, int nMin)
-
flistValue
public static float[] flistValue(T x, int nMin)
-
toArray
public SV toArray()
-
getList
public javajs.util.Lst<SV> getList()
-
isScalar
public static boolean isScalar(SV x)
-
toJSON
public String toJSON()
- Specified by:
toJSONin interfacejavajs.api.JSONEncodable
-
getMapKeys
public String getMapKeys(int nLevels, boolean skipEmpty)
-
getKeys
public String[] getKeys(boolean isAll)
-
deepCopy
public static Object deepCopy(Object v, boolean isHash, boolean isDeep)
Copies a hash or array deeply; invoked by Jmol script x = @a where a.type == "hash" or a.type == "varray"- Parameters:
v- hash or arrayisHash-isDeep- TODO- Returns:
- deeply copied variable
-
-