public class Symmetry extends java.lang.Object implements SymmetryInterface
Modifier and Type | Field and Description |
---|---|
private SymmetryDesc |
desc |
private boolean |
isBio |
private PointGroup |
pointGroup |
(package private) SpaceGroup |
spaceGroup |
private SymmetryInfo |
symmetryInfo |
private UnitCell |
unitCell |
Constructor and Description |
---|
Symmetry() |
Modifier and Type | Method and Description |
---|---|
int |
addBioMoleculeOperation(javajs.util.M4 mat,
boolean isReverse) |
boolean |
addLatticeVectors(javajs.util.Lst<float[]> lattvecs) |
java.lang.String |
addOp(java.lang.String code,
javajs.util.Matrix rs,
javajs.util.Matrix vs,
javajs.util.Matrix sigma) |
int |
addSpaceGroupOperation(java.lang.String xyz,
int opId) |
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 |
checkUnitCell(SymmetryInterface uc,
javajs.util.P3 cell,
javajs.util.P3 ptTemp,
boolean isAbsolute) |
boolean |
createSpaceGroup(int desiredSpaceGroupIndex,
java.lang.String name,
java.lang.Object object) |
java.lang.String |
fcoord(javajs.util.T3 p) |
javajs.util.P3[] |
getCanonicalCopy(float scale,
boolean withOffset) |
javajs.util.P3 |
getCartesianOffset() |
int[] |
getCellRange() |
boolean |
getCoordinatesAreFractional() |
private SymmetryDesc |
getDesc(ModelSet modelSet) |
javajs.util.P3 |
getFractionalOffset() |
javajs.util.T3 |
getFractionalOrigin() |
java.lang.Object |
getLatticeDesignation() |
int |
getLatticeOp() |
java.lang.String |
getMatrixFromString(java.lang.String xyz,
float[] rotTransMatrix,
boolean allowScaling,
int modDim) |
javajs.util.Lst<java.lang.String> |
getMoreInfo() |
float[] |
getNotionalUnitCell() |
javajs.util.Matrix |
getOperationRsVs(int iop) |
java.lang.Object |
getPointGroupInfo(int modelIndex,
boolean asDraw,
boolean asInfo,
java.lang.String type,
int index,
float scale) |
java.lang.String |
getPointGroupName() |
javajs.util.Quat |
getQuaternionRotation(java.lang.String abc) |
int |
getSiteMultiplicity(javajs.util.P3 pt) |
java.lang.Object |
getSpaceGroup() |
java.util.Map<java.lang.String,java.lang.Object> |
getSpaceGroupInfo(ModelSet modelSet,
java.lang.String sgName) |
java.lang.String |
getSpaceGroupInfoStr(java.lang.String name,
SymmetryInterface cellInfo) |
java.lang.String |
getSpaceGroupName() |
javajs.util.M4 |
getSpaceGroupOperation(int i) |
java.lang.String |
getSpaceGroupOperationCode(int iOp) |
int |
getSpaceGroupOperationCount() |
java.lang.String |
getSpaceGroupXyz(int i,
boolean doNormalize) |
float |
getSpinOp(int op) |
java.lang.Object |
getSymmetryInfo(ModelSet modelSet,
int iModel,
int iAtom,
SymmetryInterface uc,
java.lang.String xyz,
int op,
javajs.util.P3 pt,
javajs.util.P3 pt2,
java.lang.String id,
int type) |
java.lang.Object |
getSymmetryInfoAtom(ModelSet modelSet,
BS bsAtoms,
java.lang.String xyz,
int op,
javajs.util.P3 pt,
javajs.util.P3 pt2,
java.lang.String id,
int type) |
java.lang.String |
getSymmetryInfoStr() |
java.lang.String |
getSymmetryInfoString(ModelSet modelSet,
int modelIndex,
int symOp,
javajs.util.P3 pt1,
javajs.util.P3 pt2,
java.lang.String drawID,
java.lang.String type) |
javajs.util.M4[] |
getSymmetryOperations() |
Tensor |
getTensor(Viewer vwr,
float[] parBorU) |
SymmetryInterface |
getUnitCell(javajs.util.T3[] points,
boolean setRelative,
java.lang.String name) |
float[] |
getUnitCellAsArray(boolean vectorsOnly) |
java.lang.String |
getUnitCellInfo() |
float |
getUnitCellInfoType(int infoType) |
javajs.util.P3 |
getUnitCellMultiplier() |
java.lang.String |
getUnitCellState() |
javajs.util.V3[] |
getUnitCellVectors() |
javajs.util.P3[] |
getUnitCellVertices() |
java.lang.String |
getUnitsymmetryInfo() |
javajs.util.T3[] |
getV0abc(java.lang.Object def)
Accepts a string, a 3x3 matrix, or a 4x4 matrix.
|
boolean |
haveUnitCell() |
void |
initializeOrientation(javajs.util.M3 mat) |
boolean |
isBio() |
private boolean |
isNotCentroid(javajs.util.P3 center,
int n,
int[] minmax,
boolean centroidPacked) |
boolean |
isPeriodic() |
boolean |
isPolymer() |
boolean |
isSlab() |
boolean |
isSupercell() |
void |
newSpaceGroupPoint(int i,
javajs.util.P3 atom1,
javajs.util.P3 atom2,
int transX,
int transY,
int transZ) |
BS |
notInCentroid(ModelSet modelSet,
BS bsAtoms,
int[] minmax) |
javajs.util.V3[] |
rotateAxes(int iop,
javajs.util.V3[] axes,
javajs.util.P3 ptTemp,
javajs.util.M3 mTemp) |
void |
setFinalOperations(java.lang.String name,
javajs.util.P3[] atoms,
int iAtomFirst,
int noSymmetryCount,
boolean doNormalize,
java.lang.String filterSymop) |
void |
setLattice(int latt)
set symmetry lattice type using Hall rotations
|
void |
setMinMaxLatticeParameters(javajs.util.P3i minXYZ,
javajs.util.P3i maxXYZ) |
void |
setOffset(int nnn) |
void |
setOffsetPt(javajs.util.T3 pt) |
SymmetryInterface |
setPointGroup(SymmetryInterface siLast,
Atom[] atomset,
BS bsAtoms,
boolean haveVibration,
float distanceTolerance,
float linearTolerance) |
void |
setSpaceGroup(boolean doNormalize) |
void |
setSpaceGroupFrom(SymmetryInterface symmetry) |
void |
setSymmetryInfo(int modelIndex,
java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo,
float[] notionalCell)
Set the symmetry in the
|
void |
setTimeReversal(int op,
int val) |
void |
setUnitCell(float[] notionalUnitCell,
boolean setRelative) |
void |
toCartesian(javajs.util.T3 fpt,
boolean ignoreOffset) |
void |
toFractional(javajs.util.T3 pt,
boolean isAbsolute) |
javajs.util.P3 |
toSupercell(javajs.util.P3 fpt) |
void |
toUnitCell(javajs.util.P3 pt,
javajs.util.P3 offset) |
boolean |
unitCellEquals(SymmetryInterface uc2) |
void |
unitize(javajs.util.P3 ptFrac) |
private PointGroup pointGroup
SpaceGroup spaceGroup
private SymmetryInfo symmetryInfo
private UnitCell unitCell
private boolean isBio
private SymmetryDesc desc
public boolean isBio()
isBio
in interface SymmetryInterface
public SymmetryInterface setPointGroup(SymmetryInterface siLast, Atom[] atomset, BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance)
setPointGroup
in interface SymmetryInterface
public java.lang.String getPointGroupName()
getPointGroupName
in interface SymmetryInterface
public java.lang.Object getPointGroupInfo(int modelIndex, boolean asDraw, boolean asInfo, java.lang.String type, int index, float scale)
getPointGroupInfo
in interface SymmetryInterface
public void setSpaceGroup(boolean doNormalize)
setSpaceGroup
in interface SymmetryInterface
public int addSpaceGroupOperation(java.lang.String xyz, int opId)
addSpaceGroupOperation
in interface SymmetryInterface
public int addBioMoleculeOperation(javajs.util.M4 mat, boolean isReverse)
addBioMoleculeOperation
in interface SymmetryInterface
public void setLattice(int latt)
SymmetryInterface
setLattice
in interface SymmetryInterface
latt
- SHELX index or character lattice character P I R F A B C S T or \0public java.lang.Object getSpaceGroup()
getSpaceGroup
in interface SymmetryInterface
public void setSpaceGroupFrom(SymmetryInterface symmetry)
setSpaceGroupFrom
in interface SymmetryInterface
public boolean createSpaceGroup(int desiredSpaceGroupIndex, java.lang.String name, java.lang.Object object)
createSpaceGroup
in interface SymmetryInterface
public java.lang.String getSpaceGroupInfoStr(java.lang.String name, SymmetryInterface cellInfo)
getSpaceGroupInfoStr
in interface SymmetryInterface
public java.lang.Object getLatticeDesignation()
getLatticeDesignation
in interface SymmetryInterface
public void setFinalOperations(java.lang.String name, javajs.util.P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, java.lang.String filterSymop)
setFinalOperations
in interface SymmetryInterface
public javajs.util.M4 getSpaceGroupOperation(int i)
getSpaceGroupOperation
in interface SymmetryInterface
public java.lang.String getSpaceGroupXyz(int i, boolean doNormalize)
getSpaceGroupXyz
in interface SymmetryInterface
public void newSpaceGroupPoint(int i, javajs.util.P3 atom1, javajs.util.P3 atom2, int transX, int transY, int transZ)
newSpaceGroupPoint
in interface SymmetryInterface
public javajs.util.V3[] rotateAxes(int iop, javajs.util.V3[] axes, javajs.util.P3 ptTemp, javajs.util.M3 mTemp)
rotateAxes
in interface SymmetryInterface
public java.lang.String getSpaceGroupOperationCode(int iOp)
getSpaceGroupOperationCode
in interface SymmetryInterface
public void setTimeReversal(int op, int val)
setTimeReversal
in interface SymmetryInterface
public float getSpinOp(int op)
getSpinOp
in interface SymmetryInterface
public boolean addLatticeVectors(javajs.util.Lst<float[]> lattvecs)
addLatticeVectors
in interface SymmetryInterface
public int getLatticeOp()
getLatticeOp
in interface SymmetryInterface
public javajs.util.Matrix getOperationRsVs(int iop)
getOperationRsVs
in interface SymmetryInterface
public int getSiteMultiplicity(javajs.util.P3 pt)
getSiteMultiplicity
in interface SymmetryInterface
public java.lang.String addOp(java.lang.String code, javajs.util.Matrix rs, javajs.util.Matrix vs, javajs.util.Matrix sigma)
addOp
in interface SymmetryInterface
public java.lang.String getMatrixFromString(java.lang.String xyz, float[] rotTransMatrix, boolean allowScaling, int modDim)
getMatrixFromString
in interface SymmetryInterface
public java.lang.String getSpaceGroupName()
getSpaceGroupName
in interface SymmetryInterface
public int getSpaceGroupOperationCount()
getSpaceGroupOperationCount
in interface SymmetryInterface
public boolean getCoordinatesAreFractional()
getCoordinatesAreFractional
in interface SymmetryInterface
public int[] getCellRange()
getCellRange
in interface SymmetryInterface
public java.lang.String getSymmetryInfoStr()
getSymmetryInfoStr
in interface SymmetryInterface
public javajs.util.M4[] getSymmetryOperations()
getSymmetryOperations
in interface SymmetryInterface
public boolean isPeriodic()
isPeriodic
in interface SymmetryInterface
public void setSymmetryInfo(int modelIndex, java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo, float[] notionalCell)
setSymmetryInfo
in interface SymmetryInterface
public boolean haveUnitCell()
haveUnitCell
in interface SymmetryInterface
public boolean checkUnitCell(SymmetryInterface uc, javajs.util.P3 cell, javajs.util.P3 ptTemp, boolean isAbsolute)
checkUnitCell
in interface SymmetryInterface
public void setUnitCell(float[] notionalUnitCell, boolean setRelative)
setUnitCell
in interface SymmetryInterface
public boolean unitCellEquals(SymmetryInterface uc2)
unitCellEquals
in interface SymmetryInterface
public java.lang.String getUnitCellState()
getUnitCellState
in interface SymmetryInterface
public javajs.util.Lst<java.lang.String> getMoreInfo()
getMoreInfo
in interface SymmetryInterface
public java.lang.String getUnitsymmetryInfo()
public void initializeOrientation(javajs.util.M3 mat)
initializeOrientation
in interface SymmetryInterface
public void unitize(javajs.util.P3 ptFrac)
unitize
in interface SymmetryInterface
public void toUnitCell(javajs.util.P3 pt, javajs.util.P3 offset)
toUnitCell
in interface SymmetryInterface
public void toCartesian(javajs.util.T3 fpt, boolean ignoreOffset)
toCartesian
in interface SymmetryInterface
public javajs.util.P3 toSupercell(javajs.util.P3 fpt)
toSupercell
in interface SymmetryInterface
public void toFractional(javajs.util.T3 pt, boolean isAbsolute)
toFractional
in interface SymmetryInterface
public float[] getNotionalUnitCell()
getNotionalUnitCell
in interface SymmetryInterface
public float[] getUnitCellAsArray(boolean vectorsOnly)
getUnitCellAsArray
in interface SymmetryInterface
public Tensor getTensor(Viewer vwr, float[] parBorU)
getTensor
in interface SymmetryInterface
public javajs.util.P3[] getUnitCellVertices()
getUnitCellVertices
in interface SymmetryInterface
public javajs.util.P3 getCartesianOffset()
getCartesianOffset
in interface SymmetryInterface
public javajs.util.P3 getFractionalOffset()
getFractionalOffset
in interface SymmetryInterface
public void setOffsetPt(javajs.util.T3 pt)
setOffsetPt
in interface SymmetryInterface
public void setOffset(int nnn)
setOffset
in interface SymmetryInterface
public javajs.util.P3 getUnitCellMultiplier()
getUnitCellMultiplier
in interface SymmetryInterface
public javajs.util.P3[] getCanonicalCopy(float scale, boolean withOffset)
getCanonicalCopy
in interface SymmetryInterface
public float getUnitCellInfoType(int infoType)
getUnitCellInfoType
in interface SymmetryInterface
public java.lang.String getUnitCellInfo()
getUnitCellInfo
in interface SymmetryInterface
public boolean isSlab()
isSlab
in interface SymmetryInterface
public boolean isPolymer()
isPolymer
in interface SymmetryInterface
public void setMinMaxLatticeParameters(javajs.util.P3i minXYZ, javajs.util.P3i maxXYZ)
setMinMaxLatticeParameters
in interface SymmetryInterface
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)
checkDistance
in interface SymmetryInterface
public javajs.util.V3[] getUnitCellVectors()
getUnitCellVectors
in interface SymmetryInterface
public SymmetryInterface getUnitCell(javajs.util.T3[] points, boolean setRelative, java.lang.String name)
getUnitCell
in interface SymmetryInterface
public boolean isSupercell()
isSupercell
in interface SymmetryInterface
public BS notInCentroid(ModelSet modelSet, BS bsAtoms, int[] minmax)
notInCentroid
in interface SymmetryInterface
private boolean isNotCentroid(javajs.util.P3 center, int n, int[] minmax, boolean centroidPacked)
private SymmetryDesc getDesc(ModelSet modelSet)
public java.lang.Object getSymmetryInfoAtom(ModelSet modelSet, BS bsAtoms, java.lang.String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type)
getSymmetryInfoAtom
in interface SymmetryInterface
public java.lang.String getSymmetryInfoString(ModelSet modelSet, int modelIndex, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, java.lang.String drawID, java.lang.String type)
getSymmetryInfoString
in interface SymmetryInterface
public java.util.Map<java.lang.String,java.lang.Object> getSpaceGroupInfo(ModelSet modelSet, java.lang.String sgName)
getSpaceGroupInfo
in interface SymmetryInterface
public java.lang.Object getSymmetryInfo(ModelSet modelSet, int iModel, int iAtom, SymmetryInterface uc, java.lang.String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type)
getSymmetryInfo
in interface SymmetryInterface
public java.lang.String fcoord(javajs.util.T3 p)
fcoord
in interface SymmetryInterface
public javajs.util.T3[] getV0abc(java.lang.Object def)
getV0abc
in interface SymmetryInterface
public javajs.util.Quat getQuaternionRotation(java.lang.String abc)
getQuaternionRotation
in interface SymmetryInterface
public javajs.util.T3 getFractionalOrigin()
getFractionalOrigin
in interface SymmetryInterface