public class Symmetry extends java.lang.Object implements SymmetryInterface
Modifier and Type | Field and Description |
---|---|
(package private) CIPChirality |
cip |
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) |
void |
calculateCIPChiralityForAtoms(Viewer vwr,
javajs.util.BS bsAtoms) |
java.lang.String[] |
calculateCIPChiralityForSmiles(Viewer vwr,
java.lang.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 |
checkUnitCell(SymmetryInterface uc,
javajs.util.P3 cell,
javajs.util.P3 ptTemp,
boolean isAbsolute) |
boolean |
createSpaceGroup(int desiredSpaceGroupIndex,
java.lang.String name,
java.lang.Object data,
int modDim) |
java.lang.String |
fcoord(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.P3 |
getCartesianOffset() |
int[] |
getCellRange() |
private CIPChirality |
getCIPChirality(Viewer vwr) |
javajs.util.T3[] |
getConventionalUnitCell(java.lang.String latticeType,
javajs.util.M3 primitiveToCrystal)
return a conventional lattice from a primitive
|
boolean |
getCoordinatesAreFractional() |
private SymmetryDesc |
getDesc(ModelSet modelSet) |
javajs.util.P3 |
getFractionalOffset() |
javajs.util.T3 |
getFractionalOrigin() |
java.lang.String |
getIntTableNumber() |
AtomIndexIterator |
getIterator(Viewer vwr,
Atom atom,
Atom[] atoms,
javajs.util.BS bsAtoms,
float radius) |
java.lang.Object |
getLatticeDesignation() |
int |
getLatticeOp() |
java.lang.String |
getLatticeType() |
java.lang.String |
getMatrixFromString(java.lang.String xyz,
float[] rotTransMatrix,
boolean allowScaling,
int modDim) |
javajs.util.Lst<java.lang.String> |
getMoreInfo() |
javajs.util.Matrix |
getOperationRsVs(int iop) |
java.lang.Object |
getPointGroupInfo(int modelIndex,
java.lang.String drawID,
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,
int modelIndex,
boolean isFull,
float[] cellParams) |
java.lang.Object |
getSpaceGroupInfoObj(java.lang.String name,
SymmetryInterface cellInfo,
boolean isFull) |
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) |
boolean |
getState(javajs.util.SB commands) |
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,
int options) |
java.lang.String |
getSymmetryInfoStr() |
javajs.util.M4[] |
getSymmetryOperations() |
Tensor |
getTensor(Viewer vwr,
float[] parBorU) |
SymmetryInterface |
getUnitCell(javajs.util.T3[] oabc,
boolean setRelative,
java.lang.String name) |
float[] |
getUnitCellAsArray(boolean vectorsOnly) |
java.lang.String |
getUnitCellInfo() |
java.util.Map<java.lang.String,java.lang.Object> |
getUnitCellInfoMap() |
float |
getUnitCellInfoType(int infoType) |
javajs.util.T3 |
getUnitCellMultiplier() |
float[] |
getUnitCellParams() |
java.lang.String |
getUnitCellState() |
javajs.util.P3[] |
getUnitCellVectors() |
javajs.util.P3[] |
getUnitCellVerticesNoOffset() |
java.lang.String |
getUnitsymmetryInfo() |
javajs.util.T3[] |
getV0abc(java.lang.Object def) |
boolean |
haveUnitCell() |
void |
initializeOrientation(javajs.util.M3 mat) |
boolean |
isBio() |
private boolean |
isNotCentroid(javajs.util.P3 center,
int n,
int[] minmax,
boolean centroidPacked) |
boolean |
isPolymer() |
boolean |
isSimple() |
boolean |
isSlab() |
boolean |
isSupercell() |
void |
newSpaceGroupPoint(int i,
javajs.util.P3 atom1,
javajs.util.P3 atom2,
int transX,
int transY,
int transZ,
javajs.util.M4 o) |
javajs.util.BS |
notInCentroid(ModelSet modelSet,
javajs.util.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 |
setLatticeType(java.lang.String type) |
void |
setOffset(int nnn) |
void |
setOffsetPt(javajs.util.T3 pt) |
SymmetryInterface |
setPointGroup(SymmetryInterface siLast,
javajs.util.T3 center,
javajs.util.T3[] atomset,
javajs.util.BS bsAtoms,
boolean haveVibration,
float distanceTolerance,
float linearTolerance,
boolean localEnvOnly) |
void |
setSpaceGroup(boolean doNormalize) |
void |
setSpaceGroupFrom(SymmetryInterface symmetry) |
void |
setSpaceGroupName(java.lang.String name) |
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.
|
void |
setTimeReversal(int op,
int val) |
void |
setUnitCell(float[] unitCellParams,
boolean setRelative) |
void |
setUnitCell(Symmetry uc) |
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) |
boolean |
unitCellEquals(SymmetryInterface uc2) |
void |
unitize(javajs.util.T3 ptFrac) |
private PointGroup pointGroup
SpaceGroup spaceGroup
private SymmetryInfo symmetryInfo
private UnitCell unitCell
private boolean isBio
private SymmetryDesc desc
CIPChirality cip
public boolean isBio()
isBio
in interface SymmetryInterface
public SymmetryInterface setPointGroup(SymmetryInterface siLast, javajs.util.T3 center, javajs.util.T3[] atomset, javajs.util.BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, boolean localEnvOnly)
setPointGroup
in interface SymmetryInterface
public java.lang.String getPointGroupName()
getPointGroupName
in interface SymmetryInterface
public java.lang.Object getPointGroupInfo(int modelIndex, java.lang.String drawID, 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 data, int modDim)
createSpaceGroup
in interface SymmetryInterface
desiredSpaceGroupIndex
- name
- data
- a Lstd
- in [3+d] modulation dimensionpublic java.lang.Object getSpaceGroupInfoObj(java.lang.String name, SymmetryInterface cellInfo, boolean isFull)
getSpaceGroupInfoObj
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, javajs.util.M4 o)
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 void setSpaceGroupName(java.lang.String name)
setSpaceGroupName
in interface SymmetryInterface
public int getSpaceGroupOperationCount()
getSpaceGroupOperationCount
in interface SymmetryInterface
public java.lang.String getLatticeType()
getLatticeType
in interface SymmetryInterface
public void setLatticeType(java.lang.String type)
setLatticeType
in interface SymmetryInterface
public java.lang.String getIntTableNumber()
getIntTableNumber
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 isSimple()
isSimple
in interface SymmetryInterface
public SymmetryInterface setSymmetryInfo(int modelIndex, java.util.Map<java.lang.String,java.lang.Object> modelAuxiliaryInfo, float[] unitCellParams)
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[] unitCellParams, 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.T3 ptFrac)
unitize
in interface SymmetryInterface
public void toUnitCell(javajs.util.T3 pt, javajs.util.T3 offset)
toUnitCell
in interface SymmetryInterface
public javajs.util.P3 toSupercell(javajs.util.P3 fpt)
toSupercell
in interface SymmetryInterface
public void toFractional(javajs.util.T3 pt, boolean ignoreOffset)
toFractional
in interface SymmetryInterface
public void toFractionalM(javajs.util.M4 m)
toFractionalM
in interface SymmetryInterface
public void toCartesian(javajs.util.T3 fpt, boolean ignoreOffset)
toCartesian
in interface SymmetryInterface
public float[] getUnitCellParams()
getUnitCellParams
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[] getUnitCellVerticesNoOffset()
getUnitCellVerticesNoOffset
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.T3 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 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.P3[] getUnitCellVectors()
getUnitCellVectors
in interface SymmetryInterface
public SymmetryInterface getUnitCell(javajs.util.T3[] oabc, boolean setRelative, java.lang.String name)
getUnitCell
in interface SymmetryInterface
oabc
- [ptorigin, va, vb, vc]setRelative
- a flag only set true for IsosurfaceMeshname
- public boolean isSupercell()
isSupercell
in interface SymmetryInterface
public javajs.util.BS notInCentroid(ModelSet modelSet, javajs.util.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, 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, int options)
getSymmetryInfoAtom
in interface SymmetryInterface
pt2
- 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.offsetpublic java.util.Map<java.lang.String,java.lang.Object> getSpaceGroupInfo(ModelSet modelSet, java.lang.String sgName, int modelIndex, boolean isFull, float[] cellParams)
getSpaceGroupInfo
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
public boolean getState(javajs.util.SB commands)
getState
in interface SymmetryInterface
public AtomIndexIterator getIterator(Viewer vwr, Atom atom, Atom[] atoms, javajs.util.BS bsAtoms, float radius)
getIterator
in interface SymmetryInterface
public boolean toFromPrimitive(boolean toPrimitive, char type, javajs.util.T3[] oabc, javajs.util.M3 primitiveToCrystal)
toFromPrimitive
in interface SymmetryInterface
public javajs.util.Lst<javajs.util.P3> generateCrystalClass(javajs.util.P3 pt0)
generateCrystalClass
in interface SymmetryInterface
public void calculateCIPChiralityForAtoms(Viewer vwr, javajs.util.BS bsAtoms)
calculateCIPChiralityForAtoms
in interface SymmetryInterface
public java.lang.String[] calculateCIPChiralityForSmiles(Viewer vwr, java.lang.String smiles) throws java.lang.Exception
calculateCIPChiralityForSmiles
in interface SymmetryInterface
java.lang.Exception
private CIPChirality getCIPChirality(Viewer vwr)
public javajs.util.T3[] getConventionalUnitCell(java.lang.String latticeType, javajs.util.M3 primitiveToCrystal)
getConventionalUnitCell
in interface SymmetryInterface
latticeType
- "A" "B" "C" "R" etc.public java.util.Map<java.lang.String,java.lang.Object> getUnitCellInfoMap()
getUnitCellInfoMap
in interface SymmetryInterface
public void setUnitCell(Symmetry uc)
setUnitCell
in interface SymmetryInterface