Package org.jmol.symmetry
Class Symmetry
- java.lang.Object
-
- org.jmol.symmetry.Symmetry
-
- All Implemented Interfaces:
SymmetryInterface
public class Symmetry extends java.lang.Object implements SymmetryInterface
-
-
Field Summary
Fields Modifier and Type Field Description private SymmetryDescdescprivate booleanisBioprivate PointGrouppointGroup(package private) SpaceGroupspaceGroupprivate SymmetryInfosymmetryInfoprivate UnitCellunitCell
-
Constructor Summary
Constructors Constructor Description Symmetry()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intaddBioMoleculeOperation(javajs.util.M4 mat, boolean isReverse)booleanaddLatticeVectors(javajs.util.Lst<float[]> lattvecs)java.lang.StringaddOp(java.lang.String code, javajs.util.Matrix rs, javajs.util.Matrix vs, javajs.util.Matrix sigma)intaddSpaceGroupOperation(java.lang.String xyz, int opId)booleancheckDistance(javajs.util.P3 f1, javajs.util.P3 f2, float distance, float dx, int iRange, int jRange, int kRange, javajs.util.P3 ptOffset)booleancheckUnitCell(SymmetryInterface uc, javajs.util.P3 cell, javajs.util.P3 ptTemp, boolean isAbsolute)booleancreateSpaceGroup(int desiredSpaceGroupIndex, java.lang.String name, java.lang.Object data)java.lang.Stringfcoord(javajs.util.T3 p)javajs.util.Lst<javajs.util.P3>generateCrystalClass(javajs.util.P3 pt0)javajs.util.P3[]getCanonicalCopy(float scale, boolean withOffset)javajs.util.P3getCartesianOffset()int[]getCellRange()booleangetCoordinatesAreFractional()private SymmetryDescgetDesc(ModelSet modelSet)javajs.util.P3getFractionalOffset()javajs.util.T3getFractionalOrigin()java.lang.StringgetIntTableNumber()AtomIndexIteratorgetIterator(Viewer vwr, Atom atom, Atom[] atoms, BS bsAtoms, float radius)java.lang.ObjectgetLatticeDesignation()intgetLatticeOp()java.lang.StringgetLatticeType()java.lang.StringgetMatrixFromString(java.lang.String xyz, float[] rotTransMatrix, boolean allowScaling, int modDim)javajs.util.Lst<java.lang.String>getMoreInfo()javajs.util.MatrixgetOperationRsVs(int iop)java.lang.ObjectgetPointGroupInfo(int modelIndex, java.lang.String drawID, boolean asInfo, java.lang.String type, int index, float scale)java.lang.StringgetPointGroupName()javajs.util.QuatgetQuaternionRotation(java.lang.String abc)intgetSiteMultiplicity(javajs.util.P3 pt)java.lang.ObjectgetSpaceGroup()java.util.Map<java.lang.String,java.lang.Object>getSpaceGroupInfo(ModelSet modelSet, java.lang.String sgName, int modelIndex)java.lang.StringgetSpaceGroupInfoStr(java.lang.String name, SymmetryInterface cellInfo)java.lang.StringgetSpaceGroupName()javajs.util.M4getSpaceGroupOperation(int i)java.lang.StringgetSpaceGroupOperationCode(int iOp)intgetSpaceGroupOperationCount()java.lang.StringgetSpaceGroupXyz(int i, boolean doNormalize)floatgetSpinOp(int op)booleangetState(javajs.util.SB commands)java.lang.ObjectgetSymmetryInfoAtom(ModelSet modelSet, int iatom, java.lang.String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type, float scaleFactor, int nth)java.lang.StringgetSymmetryInfoStr()javajs.util.M4[]getSymmetryOperations()TensorgetTensor(Viewer vwr, float[] parBorU)SymmetryInterfacegetUnitCell(javajs.util.T3[] points, boolean setRelative, java.lang.String name)float[]getUnitCellAsArray(boolean vectorsOnly)java.lang.StringgetUnitCellInfo()floatgetUnitCellInfoType(int infoType)javajs.util.P3getUnitCellMultiplier()float[]getUnitCellParams()java.lang.StringgetUnitCellState()javajs.util.P3[]getUnitCellVectors()javajs.util.P3[]getUnitCellVerticesNoOffset()java.lang.StringgetUnitsymmetryInfo()javajs.util.T3[]getV0abc(java.lang.Object def)booleanhaveUnitCell()voidinitializeOrientation(javajs.util.M3 mat)booleanisBio()private booleanisNotCentroid(javajs.util.P3 center, int n, int[] minmax, boolean centroidPacked)booleanisPolymer()booleanisSimple()booleanisSlab()booleanisSupercell()voidnewSpaceGroupPoint(int i, javajs.util.P3 atom1, javajs.util.P3 atom2, int transX, int transY, int transZ, javajs.util.M4 o)BSnotInCentroid(ModelSet modelSet, BS bsAtoms, int[] minmax)javajs.util.V3[]rotateAxes(int iop, javajs.util.V3[] axes, javajs.util.P3 ptTemp, javajs.util.M3 mTemp)voidsetFinalOperations(java.lang.String name, javajs.util.P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, java.lang.String filterSymop)voidsetLattice(int latt)set symmetry lattice type using Hall rotationsvoidsetMinMaxLatticeParameters(javajs.util.P3i minXYZ, javajs.util.P3i maxXYZ)voidsetOffset(int nnn)voidsetOffsetPt(javajs.util.T3 pt)SymmetryInterfacesetPointGroup(SymmetryInterface siLast, javajs.util.T3 center, javajs.util.T3[] atomset, BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, boolean localEnvOnly)voidsetSpaceGroup(boolean doNormalize)voidsetSpaceGroupFrom(SymmetryInterface symmetry)SymmetryInterfacesetSymmetryInfo(int modelIndex, java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo, float[] unitCellParams)Set space group and unit cell from the auxiliary info generated by the model adapter.voidsetTimeReversal(int op, int val)voidsetUnitCell(float[] unitCellParams, boolean setRelative)voidtoCartesian(javajs.util.T3 fpt, boolean ignoreOffset)voidtoFractional(javajs.util.T3 pt, boolean isAbsolute)voidtoFractionalM(javajs.util.M4 m)booleantoFromPrimitive(boolean toPrimitive, char type, javajs.util.T3[] oabc)javajs.util.P3toSupercell(javajs.util.P3 fpt)voidtoUnitCell(javajs.util.T3 pt, javajs.util.T3 offset)booleanunitCellEquals(SymmetryInterface uc2)voidunitize(javajs.util.T3 ptFrac)
-
-
-
Field Detail
-
pointGroup
private PointGroup pointGroup
-
spaceGroup
SpaceGroup spaceGroup
-
symmetryInfo
private SymmetryInfo symmetryInfo
-
unitCell
private UnitCell unitCell
-
isBio
private boolean isBio
-
desc
private SymmetryDesc desc
-
-
Method Detail
-
isBio
public boolean isBio()
- Specified by:
isBioin interfaceSymmetryInterface
-
setPointGroup
public SymmetryInterface setPointGroup(SymmetryInterface siLast, javajs.util.T3 center, javajs.util.T3[] atomset, BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, boolean localEnvOnly)
- Specified by:
setPointGroupin interfaceSymmetryInterface
-
getPointGroupName
public java.lang.String getPointGroupName()
- Specified by:
getPointGroupNamein interfaceSymmetryInterface
-
getPointGroupInfo
public java.lang.Object getPointGroupInfo(int modelIndex, java.lang.String drawID, boolean asInfo, java.lang.String type, int index, float scale)- Specified by:
getPointGroupInfoin interfaceSymmetryInterface
-
setSpaceGroup
public void setSpaceGroup(boolean doNormalize)
- Specified by:
setSpaceGroupin interfaceSymmetryInterface
-
addSpaceGroupOperation
public int addSpaceGroupOperation(java.lang.String xyz, int opId)- Specified by:
addSpaceGroupOperationin interfaceSymmetryInterface
-
addBioMoleculeOperation
public int addBioMoleculeOperation(javajs.util.M4 mat, boolean isReverse)- Specified by:
addBioMoleculeOperationin interfaceSymmetryInterface
-
setLattice
public void setLattice(int latt)
Description copied from interface:SymmetryInterfaceset symmetry lattice type using Hall rotations- Specified by:
setLatticein interfaceSymmetryInterface- Parameters:
latt- SHELX index or character lattice character P I R F A B C S T or \0
-
getSpaceGroup
public java.lang.Object getSpaceGroup()
- Specified by:
getSpaceGroupin interfaceSymmetryInterface
-
setSpaceGroupFrom
public void setSpaceGroupFrom(SymmetryInterface symmetry)
- Specified by:
setSpaceGroupFromin interfaceSymmetryInterface
-
createSpaceGroup
public boolean createSpaceGroup(int desiredSpaceGroupIndex, java.lang.String name, java.lang.Object data)- Specified by:
createSpaceGroupin interfaceSymmetryInterface- Parameters:
desiredSpaceGroupIndex-name-data- a Lstor Lst - Returns:
- true if a known space group
-
getSpaceGroupInfoStr
public java.lang.String getSpaceGroupInfoStr(java.lang.String name, SymmetryInterface cellInfo)- Specified by:
getSpaceGroupInfoStrin interfaceSymmetryInterface
-
getLatticeDesignation
public java.lang.Object getLatticeDesignation()
- Specified by:
getLatticeDesignationin interfaceSymmetryInterface
-
setFinalOperations
public void setFinalOperations(java.lang.String name, javajs.util.P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, java.lang.String filterSymop)- Specified by:
setFinalOperationsin interfaceSymmetryInterface
-
getSpaceGroupOperation
public javajs.util.M4 getSpaceGroupOperation(int i)
- Specified by:
getSpaceGroupOperationin interfaceSymmetryInterface
-
getSpaceGroupXyz
public java.lang.String getSpaceGroupXyz(int i, boolean doNormalize)- Specified by:
getSpaceGroupXyzin interfaceSymmetryInterface
-
newSpaceGroupPoint
public void newSpaceGroupPoint(int i, javajs.util.P3 atom1, javajs.util.P3 atom2, int transX, int transY, int transZ, javajs.util.M4 o)- Specified by:
newSpaceGroupPointin interfaceSymmetryInterface
-
rotateAxes
public javajs.util.V3[] rotateAxes(int iop, javajs.util.V3[] axes, javajs.util.P3 ptTemp, javajs.util.M3 mTemp)- Specified by:
rotateAxesin interfaceSymmetryInterface
-
getSpaceGroupOperationCode
public java.lang.String getSpaceGroupOperationCode(int iOp)
- Specified by:
getSpaceGroupOperationCodein interfaceSymmetryInterface
-
setTimeReversal
public void setTimeReversal(int op, int val)- Specified by:
setTimeReversalin interfaceSymmetryInterface
-
getSpinOp
public float getSpinOp(int op)
- Specified by:
getSpinOpin interfaceSymmetryInterface
-
addLatticeVectors
public boolean addLatticeVectors(javajs.util.Lst<float[]> lattvecs)
- Specified by:
addLatticeVectorsin interfaceSymmetryInterface
-
getLatticeOp
public int getLatticeOp()
- Specified by:
getLatticeOpin interfaceSymmetryInterface
-
getOperationRsVs
public javajs.util.Matrix getOperationRsVs(int iop)
- Specified by:
getOperationRsVsin interfaceSymmetryInterface
-
getSiteMultiplicity
public int getSiteMultiplicity(javajs.util.P3 pt)
- Specified by:
getSiteMultiplicityin interfaceSymmetryInterface
-
addOp
public java.lang.String addOp(java.lang.String code, javajs.util.Matrix rs, javajs.util.Matrix vs, javajs.util.Matrix sigma)- Specified by:
addOpin interfaceSymmetryInterface
-
getMatrixFromString
public java.lang.String getMatrixFromString(java.lang.String xyz, float[] rotTransMatrix, boolean allowScaling, int modDim)- Specified by:
getMatrixFromStringin interfaceSymmetryInterface
-
getSpaceGroupName
public java.lang.String getSpaceGroupName()
- Specified by:
getSpaceGroupNamein interfaceSymmetryInterface
-
getSpaceGroupOperationCount
public int getSpaceGroupOperationCount()
- Specified by:
getSpaceGroupOperationCountin interfaceSymmetryInterface
-
getLatticeType
public java.lang.String getLatticeType()
- Specified by:
getLatticeTypein interfaceSymmetryInterface
-
getIntTableNumber
public java.lang.String getIntTableNumber()
- Specified by:
getIntTableNumberin interfaceSymmetryInterface
-
getCoordinatesAreFractional
public boolean getCoordinatesAreFractional()
- Specified by:
getCoordinatesAreFractionalin interfaceSymmetryInterface
-
getCellRange
public int[] getCellRange()
- Specified by:
getCellRangein interfaceSymmetryInterface
-
getSymmetryInfoStr
public java.lang.String getSymmetryInfoStr()
- Specified by:
getSymmetryInfoStrin interfaceSymmetryInterface
-
getSymmetryOperations
public javajs.util.M4[] getSymmetryOperations()
- Specified by:
getSymmetryOperationsin interfaceSymmetryInterface
-
isSimple
public boolean isSimple()
- Specified by:
isSimplein interfaceSymmetryInterface
-
setSymmetryInfo
public SymmetryInterface setSymmetryInfo(int modelIndex, java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo, float[] unitCellParams)
Set space group and unit cell from the auxiliary info generated by the model adapter.- Specified by:
setSymmetryInfoin interfaceSymmetryInterface
-
haveUnitCell
public boolean haveUnitCell()
- Specified by:
haveUnitCellin interfaceSymmetryInterface
-
checkUnitCell
public boolean checkUnitCell(SymmetryInterface uc, javajs.util.P3 cell, javajs.util.P3 ptTemp, boolean isAbsolute)
- Specified by:
checkUnitCellin interfaceSymmetryInterface
-
setUnitCell
public void setUnitCell(float[] unitCellParams, boolean setRelative)- Specified by:
setUnitCellin interfaceSymmetryInterface
-
unitCellEquals
public boolean unitCellEquals(SymmetryInterface uc2)
- Specified by:
unitCellEqualsin interfaceSymmetryInterface
-
getUnitCellState
public java.lang.String getUnitCellState()
- Specified by:
getUnitCellStatein interfaceSymmetryInterface
-
getMoreInfo
public javajs.util.Lst<java.lang.String> getMoreInfo()
- Specified by:
getMoreInfoin interfaceSymmetryInterface
-
getUnitsymmetryInfo
public java.lang.String getUnitsymmetryInfo()
-
initializeOrientation
public void initializeOrientation(javajs.util.M3 mat)
- Specified by:
initializeOrientationin interfaceSymmetryInterface
-
unitize
public void unitize(javajs.util.T3 ptFrac)
- Specified by:
unitizein interfaceSymmetryInterface
-
toUnitCell
public void toUnitCell(javajs.util.T3 pt, javajs.util.T3 offset)- Specified by:
toUnitCellin interfaceSymmetryInterface
-
toSupercell
public javajs.util.P3 toSupercell(javajs.util.P3 fpt)
- Specified by:
toSupercellin interfaceSymmetryInterface
-
toFractional
public void toFractional(javajs.util.T3 pt, boolean isAbsolute)- Specified by:
toFractionalin interfaceSymmetryInterface
-
toFractionalM
public void toFractionalM(javajs.util.M4 m)
- Specified by:
toFractionalMin interfaceSymmetryInterface
-
toCartesian
public void toCartesian(javajs.util.T3 fpt, boolean ignoreOffset)- Specified by:
toCartesianin interfaceSymmetryInterface
-
getUnitCellParams
public float[] getUnitCellParams()
- Specified by:
getUnitCellParamsin interfaceSymmetryInterface
-
getUnitCellAsArray
public float[] getUnitCellAsArray(boolean vectorsOnly)
- Specified by:
getUnitCellAsArrayin interfaceSymmetryInterface
-
getTensor
public Tensor getTensor(Viewer vwr, float[] parBorU)
- Specified by:
getTensorin interfaceSymmetryInterface
-
getUnitCellVerticesNoOffset
public javajs.util.P3[] getUnitCellVerticesNoOffset()
- Specified by:
getUnitCellVerticesNoOffsetin interfaceSymmetryInterface
-
getCartesianOffset
public javajs.util.P3 getCartesianOffset()
- Specified by:
getCartesianOffsetin interfaceSymmetryInterface
-
getFractionalOffset
public javajs.util.P3 getFractionalOffset()
- Specified by:
getFractionalOffsetin interfaceSymmetryInterface
-
setOffsetPt
public void setOffsetPt(javajs.util.T3 pt)
- Specified by:
setOffsetPtin interfaceSymmetryInterface
-
setOffset
public void setOffset(int nnn)
- Specified by:
setOffsetin interfaceSymmetryInterface
-
getUnitCellMultiplier
public javajs.util.P3 getUnitCellMultiplier()
- Specified by:
getUnitCellMultiplierin interfaceSymmetryInterface
-
getCanonicalCopy
public javajs.util.P3[] getCanonicalCopy(float scale, boolean withOffset)- Specified by:
getCanonicalCopyin interfaceSymmetryInterface
-
getUnitCellInfoType
public float getUnitCellInfoType(int infoType)
- Specified by:
getUnitCellInfoTypein interfaceSymmetryInterface
-
getUnitCellInfo
public java.lang.String getUnitCellInfo()
- Specified by:
getUnitCellInfoin interfaceSymmetryInterface
-
isSlab
public boolean isSlab()
- Specified by:
isSlabin interfaceSymmetryInterface
-
isPolymer
public boolean isPolymer()
- Specified by:
isPolymerin interfaceSymmetryInterface
-
setMinMaxLatticeParameters
public void setMinMaxLatticeParameters(javajs.util.P3i minXYZ, javajs.util.P3i maxXYZ)- Specified by:
setMinMaxLatticeParametersin 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:
checkDistancein interfaceSymmetryInterface
-
getUnitCellVectors
public javajs.util.P3[] getUnitCellVectors()
- Specified by:
getUnitCellVectorsin interfaceSymmetryInterface
-
getUnitCell
public SymmetryInterface getUnitCell(javajs.util.T3[] points, boolean setRelative, java.lang.String name)
- Specified by:
getUnitCellin interfaceSymmetryInterface
-
isSupercell
public boolean isSupercell()
- Specified by:
isSupercellin interfaceSymmetryInterface
-
notInCentroid
public BS notInCentroid(ModelSet modelSet, BS bsAtoms, int[] minmax)
- Specified by:
notInCentroidin interfaceSymmetryInterface
-
isNotCentroid
private boolean isNotCentroid(javajs.util.P3 center, int n, int[] minmax, boolean centroidPacked)
-
getDesc
private SymmetryDesc getDesc(ModelSet modelSet)
-
getSymmetryInfoAtom
public java.lang.Object getSymmetryInfoAtom(ModelSet modelSet, int iatom, java.lang.String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type, float scaleFactor, int nth)
- Specified by:
getSymmetryInfoAtomin interfaceSymmetryInterfacetype- 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- TODO- Returns:
- a variety of object types
-
getSpaceGroupInfo
public java.util.Map<java.lang.String,java.lang.Object> getSpaceGroupInfo(ModelSet modelSet, java.lang.String sgName, int modelIndex)
- Specified by:
getSpaceGroupInfoin interfaceSymmetryInterface
-
fcoord
public java.lang.String fcoord(javajs.util.T3 p)
- Specified by:
fcoordin interfaceSymmetryInterface
-
getV0abc
public javajs.util.T3[] getV0abc(java.lang.Object def)
- Specified by:
getV0abcin interfaceSymmetryInterface
-
getQuaternionRotation
public javajs.util.Quat getQuaternionRotation(java.lang.String abc)
- Specified by:
getQuaternionRotationin interfaceSymmetryInterface
-
getFractionalOrigin
public javajs.util.T3 getFractionalOrigin()
- Specified by:
getFractionalOriginin interfaceSymmetryInterface
-
getState
public boolean getState(javajs.util.SB commands)
- Specified by:
getStatein interfaceSymmetryInterface
-
getIterator
public AtomIndexIterator getIterator(Viewer vwr, Atom atom, Atom[] atoms, BS bsAtoms, float radius)
- Specified by:
getIteratorin interfaceSymmetryInterface
-
toFromPrimitive
public boolean toFromPrimitive(boolean toPrimitive, char type, javajs.util.T3[] oabc)- Specified by:
toFromPrimitivein interfaceSymmetryInterface
-
generateCrystalClass
public javajs.util.Lst<javajs.util.P3> generateCrystalClass(javajs.util.P3 pt0)
- Specified by:
generateCrystalClassin interfaceSymmetryInterface
-
-