Package org.jmol.symmetry
Class Symmetry
java.lang.Object
org.jmol.symmetry.Symmetry
- All Implemented Interfaces:
SymmetryInterface
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CIPChirality
private SymmetryDesc
private boolean
private static SymmetryDesc
private PointGroup
(package private) SpaceGroup
private SymmetryInfo
private UnitCell
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
addBioMoleculeOperation
(javajs.util.M4 mat, boolean isReverse) boolean
addLatticeVectors
(javajs.util.Lst<float[]> lattvecs) int
addSpaceGroupOperation
(String xyz, int opId) addSubSystemOp
(String code, javajs.util.Matrix rs, javajs.util.Matrix vs, javajs.util.Matrix sigma) void
calculateCIPChiralityForAtoms
(Viewer vwr, javajs.util.BS bsAtoms) String[]
calculateCIPChiralityForSmiles
(Viewer vwr, String smiles) boolean
checkDistance
(javajs.util.P3 f1, javajs.util.P3 f2, float distance, float dx, int iRange, int jRange, int kRange, javajs.util.P3 ptOffset) boolean
checkPeriodic
(javajs.util.P3 pt) boolean
createSpaceGroup
(int desiredSpaceGroupIndex, String name, Object data, int modDim) fcoord
(javajs.util.T3 p) findSpaceGroup
(Viewer vwr, javajs.util.BS atoms, String xyzList, float[] unitCell, boolean asString, boolean isAssign) javajs.util.Lst<javajs.util.P3>
generateCrystalClass
(javajs.util.P3 pt0) javajs.util.P3[]
getCanonicalCopy
(float scale, boolean withOffset) javajs.util.P3
int[]
private CIPChirality
getCIPChirality
(Viewer vwr) javajs.util.T3[]
getConventionalUnitCell
(String latticeType, javajs.util.M3 primitiveToCrystal) return a conventional lattice from a primitiveboolean
private SymmetryDesc
void
getEquivPointList
(javajs.util.Lst<javajs.util.P3> pts, int nIgnored, String flags) javajs.util.Lst<javajs.util.P3>
getEquivPoints
(javajs.util.Lst<javajs.util.P3> pts, javajs.util.P3 pt, String flags) javajs.util.P3
javajs.util.T3
int[]
getInvariantSymops
(javajs.util.P3 pt, int[] v0) getIterator
(Viewer vwr, Atom atom, javajs.util.BS bsAtoms, float radius) javajs.util.Lst<javajs.util.P3>
int
char
getMatrixFromString
(String xyz, float[] rotTransMatrix, boolean allowScaling, int modDim) javajs.util.Lst<String>
javajs.util.Matrix
getOperationRsVs
(int iop) getPointGroupInfo
(int modelIndex, String drawID, boolean asInfo, String type, int index, float scale) javajs.util.Quat
int
getSiteMultiplicity
(javajs.util.P3 pt) getSpaceGroupInfo
(ModelSet modelSet, String sgName, int modelIndex, boolean isFull, float[] cellParams) getSpaceGroupInfoObj
(String name, float[] params, boolean isFull, boolean addNonstandard) getSpaceGroupNameType
(String type) javajs.util.M4
getSpaceGroupOperation
(int i) getSpaceGroupOperationCode
(int iOp) int
getSpaceGroupXyz
(int i, boolean doNormalize) float
getSpinOp
(int op) boolean
getSymmetryInfoAtom
(ModelSet modelSet, int iatom, String xyz, int op, javajs.util.P3 translation, javajs.util.P3 pt, javajs.util.P3 pt2, String id, int type, float scaleFactor, int nth, int options) javajs.util.M4
getTransform
(javajs.util.P3 fracA, javajs.util.P3 fracB, boolean best) getUnitCell
(javajs.util.T3[] oabc, boolean setRelative, String name) float[]
getUnitCellAsArray
(boolean vectorsOnly) getUnitCellInfo
(boolean scaled) float
getUnitCellInfoType
(int infoType) javajs.util.T3
float[]
javajs.util.P3[]
javajs.util.P3[]
javajs.util.T3[]
boolean
void
initializeOrientation
(javajs.util.M3 mat) boolean
isBio()
private boolean
isNotCentroid
(javajs.util.P3 center, int n, int[] minmax, boolean centroidPacked) boolean
boolean
isSimple()
boolean
isSlab()
boolean
boolean
isWithinUnitCell
(javajs.util.P3 pt, float a, float b, float c) (package private) static void
newPoint
(javajs.util.M4 m, javajs.util.P3 atom1, int x, int y, int z, javajs.util.P3 atom2) void
newSpaceGroupPoint
(javajs.util.P3 pt, int i, javajs.util.M4 o, int transX, int transY, int transZ, javajs.util.P3 retPoint) javajs.util.BS
notInCentroid
(ModelSet modelSet, javajs.util.BS bsAtoms, int[] minmax) javajs.util.BS
removeDuplicates
(ModelSet ms, javajs.util.BS bs, boolean highPrec) javajs.util.V3[]
rotateAxes
(int iop, javajs.util.V3[] axes, javajs.util.P3 ptTemp, javajs.util.M3 mTemp) void
setFinalOperations
(int dim, String name, javajs.util.P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, String filterSymop) void
setLattice
(int latt) set symmetry lattice type using Hall rotationsvoid
setOffset
(int nnn) void
setOffsetPt
(javajs.util.T3 pt) setPointGroup
(SymmetryInterface siLast, javajs.util.T3 center, javajs.util.T3[] atomset, javajs.util.BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, int maxAtoms, boolean localEnvOnly) void
setSpaceGroup
(boolean doNormalize) void
setSpaceGroupName
(String name) void
setSymmetryInfo
(int modelIndex, Map<String, Object> modelAuxiliaryInfo, float[] unitCellParams) Set space group and unit cell from the auxiliary info generated by the model adapter.void
setTimeReversal
(int op, int val) setUnitCell
(float[] unitCellParams, boolean setRelative) void
void
toCartesian
(javajs.util.T3 fpt, boolean ignoreOffset) void
toFractional
(javajs.util.T3 pt, boolean ignoreOffset) void
toFractionalM
(javajs.util.M4 m) boolean
toFromPrimitive
(boolean toPrimitive, char type, javajs.util.T3[] oabc, javajs.util.M3 primitiveToCrystal) javajs.util.P3
toSupercell
(javajs.util.P3 fpt) void
toUnitCell
(javajs.util.T3 pt, javajs.util.T3 offset) void
toUnitCellRnd
(javajs.util.T3 pt, javajs.util.T3 offset) boolean
void
unitize
(javajs.util.T3 ptFrac)
-
Field Details
-
spaceGroup
SpaceGroup spaceGroup -
pointGroup
-
symmetryInfo
-
unitCell
-
cip
-
isBio
private boolean isBio -
desc
-
nullDesc
-
-
Constructor Details
-
Symmetry
public Symmetry()
-
-
Method Details
-
isBio
public boolean isBio()- Specified by:
isBio
in interfaceSymmetryInterface
-
setPointGroup
public SymmetryInterface setPointGroup(SymmetryInterface siLast, javajs.util.T3 center, javajs.util.T3[] atomset, javajs.util.BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, int maxAtoms, boolean localEnvOnly) - Specified by:
setPointGroup
in interfaceSymmetryInterface
-
getPointGroupName
- Specified by:
getPointGroupName
in interfaceSymmetryInterface
-
getPointGroupInfo
public Object getPointGroupInfo(int modelIndex, String drawID, boolean asInfo, String type, int index, float scale) - Specified by:
getPointGroupInfo
in interfaceSymmetryInterface
-
setSpaceGroup
public void setSpaceGroup(boolean doNormalize) - Specified by:
setSpaceGroup
in interfaceSymmetryInterface
-
addSpaceGroupOperation
- Specified by:
addSpaceGroupOperation
in interfaceSymmetryInterface
-
addBioMoleculeOperation
public int addBioMoleculeOperation(javajs.util.M4 mat, boolean isReverse) - Specified by:
addBioMoleculeOperation
in interfaceSymmetryInterface
-
setLattice
public void setLattice(int latt) Description copied from interface:SymmetryInterface
set symmetry lattice type using Hall rotations- Specified by:
setLattice
in interfaceSymmetryInterface
- Parameters:
latt
- SHELX index or character lattice character P I R F A B C S T or \0
-
getSpaceGroup
- Specified by:
getSpaceGroup
in interfaceSymmetryInterface
-
createSpaceGroup
- Specified by:
createSpaceGroup
in interfaceSymmetryInterface
- Parameters:
desiredSpaceGroupIndex
-name
-data
- a Lstor Lst modDim
- in [3+d] modulation dimension- Returns:
- true if a known space group
-
getSpaceGroupInfoObj
public Object getSpaceGroupInfoObj(String name, float[] params, boolean isFull, boolean addNonstandard) - Specified by:
getSpaceGroupInfoObj
in interfaceSymmetryInterface
-
getLatticeDesignation
- Specified by:
getLatticeDesignation
in interfaceSymmetryInterface
-
setFinalOperations
public void setFinalOperations(int dim, String name, javajs.util.P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, String filterSymop) - Specified by:
setFinalOperations
in interfaceSymmetryInterface
-
getSpaceGroupOperation
public javajs.util.M4 getSpaceGroupOperation(int i) - Specified by:
getSpaceGroupOperation
in interfaceSymmetryInterface
-
getSpaceGroupXyz
- Specified by:
getSpaceGroupXyz
in interfaceSymmetryInterface
-
newSpaceGroupPoint
public void newSpaceGroupPoint(javajs.util.P3 pt, int i, javajs.util.M4 o, int transX, int transY, int transZ, javajs.util.P3 retPoint) - Specified by:
newSpaceGroupPoint
in interfaceSymmetryInterface
-
rotateAxes
public javajs.util.V3[] rotateAxes(int iop, javajs.util.V3[] axes, javajs.util.P3 ptTemp, javajs.util.M3 mTemp) - Specified by:
rotateAxes
in interfaceSymmetryInterface
-
getSpaceGroupOperationCode
- Specified by:
getSpaceGroupOperationCode
in interfaceSymmetryInterface
-
setTimeReversal
public void setTimeReversal(int op, int val) - Specified by:
setTimeReversal
in interfaceSymmetryInterface
-
getSpinOp
public float getSpinOp(int op) - Specified by:
getSpinOp
in interfaceSymmetryInterface
-
addLatticeVectors
public boolean addLatticeVectors(javajs.util.Lst<float[]> lattvecs) - Specified by:
addLatticeVectors
in interfaceSymmetryInterface
-
getLatticeOp
public int getLatticeOp()- Specified by:
getLatticeOp
in interfaceSymmetryInterface
-
getLatticeCentering
public javajs.util.Lst<javajs.util.P3> getLatticeCentering()- Specified by:
getLatticeCentering
in interfaceSymmetryInterface
-
getOperationRsVs
public javajs.util.Matrix getOperationRsVs(int iop) - Specified by:
getOperationRsVs
in interfaceSymmetryInterface
-
getSiteMultiplicity
public int getSiteMultiplicity(javajs.util.P3 pt) - Specified by:
getSiteMultiplicity
in interfaceSymmetryInterface
-
addSubSystemOp
public String addSubSystemOp(String code, javajs.util.Matrix rs, javajs.util.Matrix vs, javajs.util.Matrix sigma) - Specified by:
addSubSystemOp
in interfaceSymmetryInterface
-
getMatrixFromString
public String getMatrixFromString(String xyz, float[] rotTransMatrix, boolean allowScaling, int modDim) - Specified by:
getMatrixFromString
in interfaceSymmetryInterface
-
getSpaceGroupName
- Specified by:
getSpaceGroupName
in interfaceSymmetryInterface
-
getSpaceGroupNameType
- Specified by:
getSpaceGroupNameType
in interfaceSymmetryInterface
- Parameters:
type
- "Hall" or "HM" or "ITA"- Returns:
- type or null
-
setSpaceGroupName
- Specified by:
setSpaceGroupName
in interfaceSymmetryInterface
-
getSpaceGroupOperationCount
public int getSpaceGroupOperationCount()- Specified by:
getSpaceGroupOperationCount
in interfaceSymmetryInterface
-
getLatticeType
public char getLatticeType()- Specified by:
getLatticeType
in interfaceSymmetryInterface
-
getIntTableNumber
- Specified by:
getIntTableNumber
in interfaceSymmetryInterface
-
getCoordinatesAreFractional
public boolean getCoordinatesAreFractional()- Specified by:
getCoordinatesAreFractional
in interfaceSymmetryInterface
-
getCellRange
public int[] getCellRange()- Specified by:
getCellRange
in interfaceSymmetryInterface
-
getSymmetryInfoStr
- Specified by:
getSymmetryInfoStr
in interfaceSymmetryInterface
-
getSymmetryOperations
- Specified by:
getSymmetryOperations
in interfaceSymmetryInterface
-
isSimple
public boolean isSimple()- Specified by:
isSimple
in interfaceSymmetryInterface
-
setSymmetryInfo
public SymmetryInterface setSymmetryInfo(int modelIndex, Map<String, Object> modelAuxiliaryInfo, float[] unitCellParams) Set space group and unit cell from the auxiliary info generated by the model adapter.- Specified by:
setSymmetryInfo
in interfaceSymmetryInterface
-
haveUnitCell
public boolean haveUnitCell()- Specified by:
haveUnitCell
in interfaceSymmetryInterface
-
setUnitCell
- Specified by:
setUnitCell
in interfaceSymmetryInterface
-
unitCellEquals
- Specified by:
unitCellEquals
in interfaceSymmetryInterface
-
getUnitCellState
- Specified by:
getUnitCellState
in interfaceSymmetryInterface
-
getMoreInfo
- Specified by:
getMoreInfo
in interfaceSymmetryInterface
-
getUnitsymmetryInfo
-
initializeOrientation
public void initializeOrientation(javajs.util.M3 mat) - Specified by:
initializeOrientation
in interfaceSymmetryInterface
-
unitize
public void unitize(javajs.util.T3 ptFrac) - Specified by:
unitize
in interfaceSymmetryInterface
-
toUnitCell
public void toUnitCell(javajs.util.T3 pt, javajs.util.T3 offset) - Specified by:
toUnitCell
in interfaceSymmetryInterface
-
toUnitCellRnd
public void toUnitCellRnd(javajs.util.T3 pt, javajs.util.T3 offset) - Specified by:
toUnitCellRnd
in interfaceSymmetryInterface
-
toSupercell
public javajs.util.P3 toSupercell(javajs.util.P3 fpt) - Specified by:
toSupercell
in interfaceSymmetryInterface
-
toFractional
public void toFractional(javajs.util.T3 pt, boolean ignoreOffset) - Specified by:
toFractional
in interfaceSymmetryInterface
-
toFractionalM
public void toFractionalM(javajs.util.M4 m) - Specified by:
toFractionalM
in interfaceSymmetryInterface
-
toCartesian
public void toCartesian(javajs.util.T3 fpt, boolean ignoreOffset) - Specified by:
toCartesian
in interfaceSymmetryInterface
-
getUnitCellParams
public float[] getUnitCellParams()- Specified by:
getUnitCellParams
in interfaceSymmetryInterface
-
getUnitCellAsArray
public float[] getUnitCellAsArray(boolean vectorsOnly) - Specified by:
getUnitCellAsArray
in interfaceSymmetryInterface
-
getTensor
- Specified by:
getTensor
in interfaceSymmetryInterface
-
getUnitCellVerticesNoOffset
public javajs.util.P3[] getUnitCellVerticesNoOffset()- Specified by:
getUnitCellVerticesNoOffset
in interfaceSymmetryInterface
-
getCartesianOffset
public javajs.util.P3 getCartesianOffset()- Specified by:
getCartesianOffset
in interfaceSymmetryInterface
-
getFractionalOffset
public javajs.util.P3 getFractionalOffset()- Specified by:
getFractionalOffset
in interfaceSymmetryInterface
-
setOffsetPt
public void setOffsetPt(javajs.util.T3 pt) - Specified by:
setOffsetPt
in interfaceSymmetryInterface
-
setOffset
public void setOffset(int nnn) - Specified by:
setOffset
in interfaceSymmetryInterface
-
getUnitCellMultiplier
public javajs.util.T3 getUnitCellMultiplier()- Specified by:
getUnitCellMultiplier
in interfaceSymmetryInterface
-
getUnitCellMultiplied
- Specified by:
getUnitCellMultiplied
in interfaceSymmetryInterface
-
getCanonicalCopy
public javajs.util.P3[] getCanonicalCopy(float scale, boolean withOffset) - Specified by:
getCanonicalCopy
in interfaceSymmetryInterface
-
getUnitCellInfoType
public float getUnitCellInfoType(int infoType) - Specified by:
getUnitCellInfoType
in interfaceSymmetryInterface
-
getUnitCellInfo
- Specified by:
getUnitCellInfo
in interfaceSymmetryInterface
-
isSlab
public boolean isSlab()- Specified by:
isSlab
in interfaceSymmetryInterface
-
isPolymer
public boolean isPolymer()- Specified by:
isPolymer
in interfaceSymmetryInterface
-
checkDistance
public boolean checkDistance(javajs.util.P3 f1, javajs.util.P3 f2, float distance, float dx, int iRange, int jRange, int kRange, javajs.util.P3 ptOffset) - Specified by:
checkDistance
in interfaceSymmetryInterface
-
getUnitCellVectors
public javajs.util.P3[] getUnitCellVectors()- Specified by:
getUnitCellVectors
in interfaceSymmetryInterface
-
getUnitCell
- Specified by:
getUnitCell
in interfaceSymmetryInterface
- Parameters:
oabc
- [ptorigin, va, vb, vc]setRelative
- a flag only set true for IsosurfaceMeshname
-- Returns:
- this SymmetryInterface
-
isSupercell
public boolean isSupercell()- Specified by:
isSupercell
in interfaceSymmetryInterface
-
notInCentroid
- Specified by:
notInCentroid
in interfaceSymmetryInterface
-
isNotCentroid
private boolean isNotCentroid(javajs.util.P3 center, int n, int[] minmax, boolean centroidPacked) -
getDesc
-
getSymmetryInfoAtom
public Object getSymmetryInfoAtom(ModelSet modelSet, int iatom, String xyz, int op, javajs.util.P3 translation, javajs.util.P3 pt, javajs.util.P3 pt2, String id, int type, float scaleFactor, int nth, int options) - Specified by:
getSymmetryInfoAtom
in interfaceSymmetryInterface
translation
- TODOpt2
- a second point or an offsettype
- T.point, T.lattice, or T.draw, T.matrix4f, T.label, T.list, T.info, T.translation, T.axis, T.plane, T.angle, T.centernth
- TODOoptions
- could be T.offset- Returns:
- a variety of object types
-
getSpaceGroupInfo
public Map<String,Object> getSpaceGroupInfo(ModelSet modelSet, String sgName, int modelIndex, boolean isFull, float[] cellParams) - Specified by:
getSpaceGroupInfo
in interfaceSymmetryInterface
-
fcoord
- Specified by:
fcoord
in interfaceSymmetryInterface
-
getV0abc
- Specified by:
getV0abc
in interfaceSymmetryInterface
-
getQuaternionRotation
- Specified by:
getQuaternionRotation
in interfaceSymmetryInterface
-
getFractionalOrigin
public javajs.util.T3 getFractionalOrigin()- Specified by:
getFractionalOrigin
in interfaceSymmetryInterface
-
getState
- Specified by:
getState
in interfaceSymmetryInterface
-
getIterator
- Specified by:
getIterator
in interfaceSymmetryInterface
-
toFromPrimitive
public boolean toFromPrimitive(boolean toPrimitive, char type, javajs.util.T3[] oabc, javajs.util.M3 primitiveToCrystal) - Specified by:
toFromPrimitive
in interfaceSymmetryInterface
-
generateCrystalClass
public javajs.util.Lst<javajs.util.P3> generateCrystalClass(javajs.util.P3 pt0) - Specified by:
generateCrystalClass
in interfaceSymmetryInterface
-
calculateCIPChiralityForAtoms
- Specified by:
calculateCIPChiralityForAtoms
in interfaceSymmetryInterface
-
calculateCIPChiralityForSmiles
- Specified by:
calculateCIPChiralityForSmiles
in interfaceSymmetryInterface
- Throws:
Exception
-
getCIPChirality
-
getConventionalUnitCell
public javajs.util.T3[] getConventionalUnitCell(String latticeType, javajs.util.M3 primitiveToCrystal) return a conventional lattice from a primitive- Specified by:
getConventionalUnitCell
in interfaceSymmetryInterface
- Parameters:
latticeType
- "A" "B" "C" "R" etc.- Returns:
- [origin va vb vc]
-
getUnitCellInfoMap
- Specified by:
getUnitCellInfoMap
in interfaceSymmetryInterface
-
setUnitCell
- Specified by:
setUnitCell
in interfaceSymmetryInterface
-
findSpaceGroup
public Object findSpaceGroup(Viewer vwr, javajs.util.BS atoms, String xyzList, float[] unitCell, boolean asString, boolean isAssign) - Specified by:
findSpaceGroup
in interfaceSymmetryInterface
-
setSpaceGroupTo
- Specified by:
setSpaceGroupTo
in interfaceSymmetryInterface
- Parameters:
sg
- ITA number, ITA full name ("48:1")
-
removeDuplicates
- Specified by:
removeDuplicates
in interfaceSymmetryInterface
-
getEquivPoints
public javajs.util.Lst<javajs.util.P3> getEquivPoints(javajs.util.Lst<javajs.util.P3> pts, javajs.util.P3 pt, String flags) - Specified by:
getEquivPoints
in interfaceSymmetryInterface
-
getEquivPointList
- Specified by:
getEquivPointList
in interfaceSymmetryInterface
-
getInvariantSymops
public int[] getInvariantSymops(javajs.util.P3 pt, int[] v0) - Specified by:
getInvariantSymops
in interfaceSymmetryInterface
-
getTransform
public javajs.util.M4 getTransform(javajs.util.P3 fracA, javajs.util.P3 fracB, boolean best) - Specified by:
getTransform
in interfaceSymmetryInterface
- Parameters:
fracA
-fracB
-- Returns:
- matrix
-
newPoint
static void newPoint(javajs.util.M4 m, javajs.util.P3 atom1, int x, int y, int z, javajs.util.P3 atom2) -
isWithinUnitCell
public boolean isWithinUnitCell(javajs.util.P3 pt, float a, float b, float c) - Specified by:
isWithinUnitCell
in interfaceSymmetryInterface
-
checkPeriodic
public boolean checkPeriodic(javajs.util.P3 pt) - Specified by:
checkPeriodic
in interfaceSymmetryInterface
-