Package org.jmol.modelkit
Class ModelKit
java.lang.Object
org.jmol.modelkit.ModelKit
An abstract popup class that is instantiated for a given platform and context
as one of:
-- abstract ModelKitPopup
-- AwtModelKitPopup
-- JSModelKitPopup
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Atomprivate Atom(package private) booleanwhen TRUE, add H atoms to C when added to the modelSet.(package private) boolean(package private) String[](package private) static final Stringprivate ModelKit.Constraint[](package private) String(package private) int(package private) booleanset to true for proximity-based autobonding (prior to 14.32.4/15.2.4 the default was TRUE(package private) static final String(package private) int(package private) int(package private) String(package private) int(package private) Stringstatic final String(package private) int(package private) javajs.util.BS(package private) javajs.util.BS(package private) int(package private) float(package private) javajs.util.P3(package private) booleanExcept for H atoms, do not allow changes to elements just by clicking them.private ModelKit.Constraint(package private) int(package private) String(package private) Stringprivate static intprivate static intprivate static int(package private) boolean(package private) int(package private) boolean(package private) boolean(package private) String(package private) Stringprotected ModelSet(package private) String(package private) static ModelKit.Constraintprivate ModelKitPopupstatic final String(package private) static ModelKit.Constraint(package private) static final String(package private) String(package private) charprivate static final javajs.util.P3(package private) float(package private) int[](package private) intstatic final String(package private) boolean(package private) javajs.util.P3(package private) int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final intstatic final String(package private) Objectstatic final String(package private) javajs.util.P3private Viewer(package private) booleanset to TRUE after rotation has been turned off in order to turn highlight off in viewer.hoverOff()(package private) static final String(package private) String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidactionRotateBond(int deltaX, int deltaY, int x, int y, boolean forceFull) Actually rotate the bond.private ModelKit.ConstraintaddConstraint(int iatom, ModelKit.Constraint c) private voidvoidaddLockedAtoms(javajs.util.BS bs) private voidappRunScript(String script) private intassignAtom(int atomIndex, String type, boolean autoBond, boolean addHsAndBond, boolean isClick, javajs.util.BS bsAtoms) Original ModelKitPopup functionality -- assign an atom.voidassignAtomClick(int atomIndex, String element, javajs.util.P3 ptNew) private voidassignAtoms(javajs.util.P3 pt, boolean newPoint, int atomIndex, String type, String cmd, boolean isClick, javajs.util.BS bs, int atomicNo, int site, SymmetryInterface uc, javajs.util.Lst<javajs.util.P3> points, String packing) Change element, charge, and deleting an atom by clicking on it or via the MODELKIT ASSIGN ATOM command.private booleanassignBond(int bondIndex, char type, javajs.util.BS bsAtoms) Original ModelKit functionality -- assign a bond.intassignMoveAtom(int iatom, javajs.util.P3 pt, javajs.util.BS bsFixed) (package private) booleanvoidintcmdAssignAddAtoms(String type, javajs.util.P3[] pts, javajs.util.BS bsAtoms, String packing, String cmd, boolean isClick) MODELKIT ADD @3 ...voidcmdAssignAtom(int atomIndex, javajs.util.P3 pt, String type, String cmd, boolean isClick) A versatile method that allows changing element, setting charge, setting position, adding or deleting an atom by clicking or dragging or via the MODELKIT ASSIGN ATOM command.voidcmdAssignBond(int bondIndex, char type, String cmd) voidcmdAssignConnect(int index, int index2, char type, String cmd) intcmdAssignDeleteAtoms(javajs.util.BS bs) Delete all atoms that are equivalent to this atom.intcmdAssignMoveAtoms(javajs.util.BS bsSelected, int iatom, javajs.util.P3 p, boolean allowProjection) Move all atoms that are equivalent to this atom PROVIDED that they have the same symmetry-invariant properties.cmdAssignSpaceGroup(javajs.util.BS bs, String name, int mi) Assign a given space group, currently only "P1"intcmdRotateAtoms(javajs.util.BS bsAtoms, javajs.util.P3[] points, float endDegrees) voiddispose()(package private) voidexitBondRotation(String text) private booleanfillPointsForMove(SymmetryInterface sg, javajs.util.BS bseq, int i0, javajs.util.P3 a, javajs.util.P3 pt, javajs.util.P3[] points) Find the operator that transforms fractional point fa to one of its symmetry-equivalent points, and then also transform pt by that same matrix.for the thin box on the top left of the window(package private) String[]private StringgetBondLabel(Atom[] atoms) (package private) Stringprivate ModelKit.ConstraintgetConstraint(SymmetryInterface sym, int ia, int mode) This constraint will be set for the site only.(package private) Stringprivate StringgetHoverLabel(int atomIndex) Called by Viewer.hoverOn to set the special label if desired.private Objectgetinfo()(package private) intprivate AtomgetOtherAtomIndex(Atom a1, Atom a2) getProperty(String name) Get a property of the modelkit.int(package private) int(package private) String(package private) int(package private) static String(package private) intbooleanhandleAssignNew(MouseState pressed, MouseState dragged, MeasurementPending mp, int dragAtomIndex) handle a mouse-generated assignNew eventprivate booleanhandleDragAtom(MouseState pressed, MouseState dragged, int[] countPlusIndices) booleanhasConstraint(int iatom, boolean ignoreGeneral, boolean addNew) voidbooleanisHidden()booleanprivate static boolean(package private) booleanintmoveConstrained(int iatom, javajs.util.P3 ptNew, boolean doAssign, boolean allowProjection) This is the main method from viewer.moveSelected.private static voidnotImplemented(String action) private static javajs.util.P3pointFromTriad(String pos) private booleanprocessAtomClick(int atomIndex) An atom has been clicked -- handle it.(package private) voidprocessMKPropertyItem(String name, boolean TF) private voidprocessModeClick(String action) private voidprocessSelClick(String action) private StringprocessSelOpClick(String action) private voidprocessSymClick(String action) (package private) booleanprocessSymop(String id, boolean isFocus) private voidprocessUCClick(String action) (package private) voidprocessXtalClick(String id, String action) private StringpromptUser(String msg, String def) (package private) void(package private) voidprivate StringrunScriptBuffered(String script) private voidsetBondIndex(int index, boolean isRotate) Set the bond for rotation -- called by Sticks.checkObjectHovered via Viewer.highlightBond.setBondMeasure(int bi, MeasurementPending mp) (package private) voidsetDefaultState(int mode) (package private) boolean(package private) voidsetHoverLabel(String activeMenu, String text) voidsetMenu(ModelKitPopup menu) (package private) voidsetMKState(int bits) setProperty(String key, Object value) Modify the state by setting a property.(package private) voidsetSymEdit(int bits) (package private) voidsetSymViewState(int bits) (package private) voidsetUnitCell(int bits) voidshowMenu(int x, int y) private voidprivate voidDraw the symmetry elementvoidboolean
-
Field Details
-
locked
-
none
-
vwr
-
MODE_OPTIONS
- See Also:
-
SYMMETRY_OPTIONS
- See Also:
-
UNITCELL_OPTIONS
- See Also:
-
BOOLEAN_OPTIONS
- See Also:
-
SET_OPTIONS
- See Also:
-
STATE_MOLECULAR
static final int STATE_MOLECULAR- See Also:
-
STATE_XTALVIEW
static final int STATE_XTALVIEW- See Also:
-
STATE_XTALEDIT
static final int STATE_XTALEDIT- See Also:
-
STATE_BITS_XTAL
static final int STATE_BITS_XTAL- See Also:
-
STATE_BITS_SYM_VIEW
static final int STATE_BITS_SYM_VIEW- See Also:
-
STATE_SYM_NONE
static final int STATE_SYM_NONE- See Also:
-
STATE_SYM_SHOW
static final int STATE_SYM_SHOW- See Also:
-
STATE_BITS_SYM_EDIT
static final int STATE_BITS_SYM_EDIT- See Also:
-
STATE_SYM_APPLYLOCAL
static final int STATE_SYM_APPLYLOCAL- See Also:
-
STATE_SYM_RETAINLOCAL
static final int STATE_SYM_RETAINLOCAL- See Also:
-
STATE_SYM_APPLYFULL
static final int STATE_SYM_APPLYFULL- See Also:
-
STATE_BITS_UNITCELL
static final int STATE_BITS_UNITCELL- See Also:
-
STATE_UNITCELL_PACKED
static final int STATE_UNITCELL_PACKED- See Also:
-
STATE_UNITCELL_EXTEND
static final int STATE_UNITCELL_EXTEND- See Also:
-
Pt000
private static final javajs.util.P3 Pt000 -
state
int state -
rotationDeg
float rotationDeg -
atomHoverLabel
String atomHoverLabel -
bondHoverLabel
String bondHoverLabel -
xtalHoverLabel
String xtalHoverLabel -
hasUnitCell
boolean hasUnitCell -
allOperators
String[] allOperators -
currentModelIndex
int currentModelIndex -
alertedNoEdit
boolean alertedNoEdit -
lastModelSet
-
pickAtomAssignType
String pickAtomAssignType -
lastElementType
String lastElementType -
pickBondAssignType
char pickBondAssignType -
isPickAtomAssignCharge
boolean isPickAtomAssignCharge -
bsHighlight
javajs.util.BS bsHighlight -
bondIndex
int bondIndex -
bondAtomIndex1
int bondAtomIndex1 -
bondAtomIndex2
int bondAtomIndex2 -
bsRotateBranch
javajs.util.BS bsRotateBranch -
branchAtomIndex
int branchAtomIndex -
isRotateBond
boolean isRotateBond -
screenXY
int[] screenXY -
showSymopInfo
boolean showSymopInfo -
wasRotating
boolean wasRotatingset to TRUE after rotation has been turned off in order to turn highlight off in viewer.hoverOff() -
addXtalHydrogens
boolean addXtalHydrogenswhen TRUE, add H atoms to C when added to the modelSet. -
OPTIONS_MODE
- See Also:
-
XTAL_MODE
- See Also:
-
BOND_MODE
- See Also:
-
ATOM_MODE
- See Also:
-
clickToSetElement
boolean clickToSetElementExcept for H atoms, do not allow changes to elements just by clicking them. This protects against doing that inadvertently when editing. -
autoBond
boolean autoBondset to true for proximity-based autobonding (prior to 14.32.4/15.2.4 the default was TRUE -
centerPoint
javajs.util.P3 centerPoint -
spherePoint
javajs.util.P3 spherePoint -
viewOffset
javajs.util.P3 viewOffset -
centerDistance
float centerDistance -
symop
Object symop -
centerAtomIndex
int centerAtomIndex -
secondAtomIndex
int secondAtomIndex -
atomIndexSphere
int atomIndexSphere -
drawData
String drawData -
drawScript
String drawScript -
iatom0
int iatom0 -
bondRotationName
String bondRotationName -
lastCenter
String lastCenter -
lastOffset
String lastOffset -
a0
-
a3
-
constraint
-
atomConstraints
-
GET
private static int GET -
GET_CREATE
private static int GET_CREATE -
GET_DELETE
private static int GET_DELETE
-
-
Constructor Details
-
ModelKit
public ModelKit()
-
-
Method Details
-
setMenu
-
initializeForModel
public void initializeForModel() -
showMenu
public void showMenu(int x, int y) -
getDefaultModel
-
updateMenu
public void updateMenu() -
dispose
public void dispose() -
isPickAtomAssignCharge
public boolean isPickAtomAssignCharge() -
isHidden
public boolean isHidden() -
getActiveMenu
for the thin box on the top left of the window- Returns:
- [ "atomMenu" | "bondMenu" | "xtalMenu" | null ]
-
getRotateBondIndex
public int getRotateBondIndex() -
getProperty
Get a property of the modelkit.- Parameters:
name-- Returns:
- value
-
setProperty
Modify the state by setting a property. Also can be used for "get" purposes.- Parameters:
key-value- to set, or null to simply return the current value- Returns:
- null or "get" value
-
setBondMeasure
-
actionRotateBond
public void actionRotateBond(int deltaX, int deltaY, int x, int y, boolean forceFull) Actually rotate the bond.- Parameters:
deltaX-deltaY-x-y-forceFull-
-
handleAssignNew
public boolean handleAssignNew(MouseState pressed, MouseState dragged, MeasurementPending mp, int dragAtomIndex) handle a mouse-generated assignNew event- Parameters:
pressed-dragged-mp-dragAtomIndex-- Returns:
- true if we should do a refresh now
-
isXtalState
boolean isXtalState() -
setMKState
void setMKState(int bits) -
getMKState
int getMKState() -
setSymEdit
void setSymEdit(int bits) -
getSymEditState
int getSymEditState() -
setSymViewState
void setSymViewState(int bits) -
getSymViewState
int getSymViewState() -
setUnitCell
void setUnitCell(int bits) -
getUnitCellState
int getUnitCellState() -
exitBondRotation
-
resetBondFields
void resetBondFields() -
processXtalClick
-
processSymop
-
setDefaultState
void setDefaultState(int mode) -
getAllOperators
String[] getAllOperators() -
setHasUnitCell
boolean setHasUnitCell() -
checkNewModel
boolean checkNewModel() -
getSymopText
String getSymopText() -
getCenterText
String getCenterText() -
resetAtomPickType
void resetAtomPickType() -
setHoverLabel
-
getElementFromUser
String getElementFromUser() -
processMKPropertyItem
-
assignAtom
private int assignAtom(int atomIndex, String type, boolean autoBond, boolean addHsAndBond, boolean isClick, javajs.util.BS bsAtoms) Original ModelKitPopup functionality -- assign an atom.- Parameters:
atomIndex-type-autoBond-addHsAndBond-isClick- whether this is a click or notbsAtoms-- Returns:
- atomicNumber or -1
-
cmdAssignSpaceGroup
Assign a given space group, currently only "P1"- Parameters:
bs- atoms in the set defining the space groupname- "P1" or "1" or ignoredmi-- Returns:
- new name or "" or error message
-
cmdAssignDeleteAtoms
public int cmdAssignDeleteAtoms(javajs.util.BS bs) Delete all atoms that are equivalent to this atom.- Parameters:
bs-- Returns:
- number of deleted atoms
-
setBondIndex
private void setBondIndex(int index, boolean isRotate) Set the bond for rotation -- called by Sticks.checkObjectHovered via Viewer.highlightBond.- Parameters:
index-isRotate-
-
handleDragAtom
- Parameters:
pressed-dragged-countPlusIndices-- Returns:
- true if handled here
-
showSymop
-
showXtalSymmetry
private void showXtalSymmetry()Draw the symmetry element -
getinfo
-
addInfo
-
processAtomClick
private boolean processAtomClick(int atomIndex) An atom has been clicked -- handle it. Called from CmdExt.assignAtom from the script created in ActionManager.assignNew from Actionmanager.checkReleaseAction- Parameters:
atomIndex-- Returns:
- true if handled
-
processModeClick
-
processSelClick
-
processSelOpClick
-
processSymClick
-
processUCClick
-
getHoverLabel
Called by Viewer.hoverOn to set the special label if desired.- Parameters:
atomIndex-- Returns:
- special label or null
-
getBondLabel
-
getOtherAtomIndex
-
promptUser
-
appRunScript
-
runScriptBuffered
-
isTrue
-
pointFromTriad
-
notImplemented
-
cmdAssignAtom
public void cmdAssignAtom(int atomIndex, javajs.util.P3 pt, String type, String cmd, boolean isClick) A versatile method that allows changing element, setting charge, setting position, adding or deleting an atom by clicking or dragging or via the MODELKIT ASSIGN ATOM command.- Parameters:
atomIndex- may be -1pt- a Cartesian position for a new atom or when moving an atom to a new positiontype- one of: an element symbol, "X" (delete), "Mi" (decrement charge), "Pl" (increment charge), "." (from connect; just adding hydrogens)cmd- reference command given; may be nullisClick- if this is a user-generated click event
-
assignAtoms
private void assignAtoms(javajs.util.P3 pt, boolean newPoint, int atomIndex, String type, String cmd, boolean isClick, javajs.util.BS bs, int atomicNo, int site, SymmetryInterface uc, javajs.util.Lst<javajs.util.P3> points, String packing) Change element, charge, and deleting an atom by clicking on it or via the MODELKIT ASSIGN ATOM command. null n bs ASSIGN ATOM @1 "N" pt -1 null ASSIGN ATOM "N" {x,y,z} pt -1 bs ADD ATOM @1 "N" {x,y,z}- Parameters:
pt-newPoint-atomIndex-type-cmd-isClick-bs-atomicNo-site-uc- a SymmetryInterface or nullpoints-packing-
-
cmdAssignBond
-
assignBond
private boolean assignBond(int bondIndex, char type, javajs.util.BS bsAtoms) Original ModelKit functionality -- assign a bond.- Parameters:
bondIndex-type-bsAtoms-- Returns:
- bit set of atoms to modify
-
cmdAssignConnect
-
assignAtomClick
-
cmdAssignAddAtoms
public int cmdAssignAddAtoms(String type, javajs.util.P3[] pts, javajs.util.BS bsAtoms, String packing, String cmd, boolean isClick) MODELKIT ADD @3 ...- Parameters:
type-pts- one or more new pointsbsAtoms- the atoms to process, presumably from different sitespacking- "packed" or ""cmd- the command generating this callisClick-- Returns:
- the number of atoms added
-
cmdAssignMoveAtoms
public int cmdAssignMoveAtoms(javajs.util.BS bsSelected, int iatom, javajs.util.P3 p, boolean allowProjection) Move all atoms that are equivalent to this atom PROVIDED that they have the same symmetry-invariant properties.- Parameters:
bsSelected- could be a single atom or a moleculeiatom- atom indexp- new position for this atom, which may be modifiedallowProjection- always true- Returns:
- number of atoms moved
-
assignMoveAtom
public int assignMoveAtom(int iatom, javajs.util.P3 pt, javajs.util.BS bsFixed) -
fillPointsForMove
private boolean fillPointsForMove(SymmetryInterface sg, javajs.util.BS bseq, int i0, javajs.util.P3 a, javajs.util.P3 pt, javajs.util.P3[] points) Find the operator that transforms fractional point fa to one of its symmetry-equivalent points, and then also transform pt by that same matrix. Optionally, save the transformed points in a compact array.- Parameters:
sg-bseq-i0-a-pt-points-- Returns:
- false if there is a failure to find a transform
-
clearAtomConstraints
public void clearAtomConstraints() -
hasConstraint
public boolean hasConstraint(int iatom, boolean ignoreGeneral, boolean addNew) -
moveConstrained
public int moveConstrained(int iatom, javajs.util.P3 ptNew, boolean doAssign, boolean allowProjection) This is the main method from viewer.moveSelected.- Parameters:
iatom-ptNew-doAssign- allow for exit with setting ptNew but not creating atomsallowProjection-- Returns:
- number of atoms moved
-
getConstraint
This constraint will be set for the site only.- Parameters:
sym-ia-mode- GET, GET_CREATE, or GET_DELETE- Returns:
- a Constraint, or possibly null if not createNew
-
addConstraint
-
addLockedAtoms
public void addLockedAtoms(javajs.util.BS bs) -
cmdRotateAtoms
public int cmdRotateAtoms(javajs.util.BS bsAtoms, javajs.util.P3[] points, float endDegrees) -
getText
-
wasRotating
public boolean wasRotating()
-