Package org.jmol.symmetry
Class SymmetryDesc
- java.lang.Object
-
- org.jmol.symmetry.SymmetryDesc
-
public class SymmetryDesc extends java.lang.Object
A class to handle requests for information about space groups and symmetry operations. Two entry points, both from Symmetry: getSymopInfo getSpaceGroupInfo
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]
keys
private ModelSet
modelSet
private static javajs.util.P3
pta01
private static javajs.util.P3
pta02
private static javajs.util.P3
ptemp
private static javajs.util.P3
ptemp2
private static int
RET_AXISVECTOR
private static int
RET_CIF2
private static int
RET_COUNT
private static int
RET_CTRANS
private static int
RET_CTRVECTOR
private static int
RET_DRAW
private static int
RET_FTRANS
private static int
RET_ID
(package private) static int
RET_INVARIANT
private static int
RET_INVCTR
private static int
RET_LABEL
(package private) static int
RET_LIST
private static int
RET_MATRIX
private static int
RET_PLANE
private static int
RET_POINT
private static int
RET_ROTANGLE
private static int
RET_TIMEREV
private static int
RET_TYPE
private static int
RET_UNITTRANS
private static int
RET_XYZ
private static int
RET_XYZCANON
private static int
RET_XYZNORMALIZED
private static int
RET_XYZORIGINAL
private static javajs.util.V3
vtemp
private static javajs.util.V3
vtrans
-
Constructor Summary
Constructors Constructor Description SymmetryDesc()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static javajs.util.T3
approx(javajs.util.T3 pt)
private static javajs.util.T3
approx0(javajs.util.T3 pt)
private java.lang.Object[]
createInfoArray(SymmetryOperation op, SymmetryInterface uc, javajs.util.P3 ptFrom, javajs.util.P3 ptTarget, java.lang.String id, float scaleFactor, int options, boolean haveTranslation, javajs.util.BS bsInfo)
private static void
drawFrameLine(java.lang.String xyz, javajs.util.P3 pt, javajs.util.V3 v, float width, javajs.util.P3 ptemp, javajs.util.SB draw1, java.lang.String key, java.lang.String color)
private static void
drawLine(javajs.util.SB s, java.lang.String id, float diameter, javajs.util.P3 pt0, javajs.util.P3 pt1, java.lang.String color)
private static void
drawVector(javajs.util.SB draw1, java.lang.String drawid, java.lang.String label, java.lang.String type, javajs.util.T3 pt1, javajs.util.T3 v, java.lang.String color)
private javajs.util.BS
getAtom(SymmetryInterface uc, int iModel, int iAtom, javajs.util.T3 sympt)
private static java.lang.Object
getInfo(java.lang.Object[] io, int type)
Return information about a symmetry operator by type: array, angle, axis, center, draw, full, info, label, matrix4f, point, time, plane, translation, unitcell, xyz, all, or a negative number (-length, -1]: { "xyz", etc.private static javajs.util.BS
getInfoBS(int type)
private static int
getKeyType(java.lang.String id)
(package private) java.util.Map<java.lang.String,java.lang.Object>
getSpaceGroupInfo(SymmetryInterface sym, int modelIndex, java.lang.String sgName, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, java.lang.String drawID, float scaleFactor, int nth, boolean isFull, boolean isForModel, int options, SymmetryInterface cellInfo, javajs.util.BS bsInfo)
private java.lang.Object
getSymmetryInfo(SymmetryInterface sym, int iModel, int iatom, SymmetryInterface uc, java.lang.String xyz, int op, javajs.util.P3 translation, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type, float scaleFactor, int nth, int options)
multipurpose function handling a variety of tasks, including: processing of "lattice", "list", "atom", "point", and some "draw" output types finding the operator in the given space group creating a temporary space group for an xyz operator(package private) java.lang.Object
getSymopInfo(int iAtom, java.lang.String xyz, int op, javajs.util.P3 translation, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type, float scaleFactor, int nth, int options)
(package private) java.lang.Object
getSymopInfoForPoints(SymmetryInterface sym, int modelIndex, int symOp, javajs.util.P3 translation, javajs.util.P3 pt1, javajs.util.P3 pt2, java.lang.String drawID, java.lang.String stype, float scaleFactor, int nth, int options, javajs.util.BS bsInfo)
get information about a symmetry operation relating two specific points or atomsjavajs.util.M4
getTransform(UnitCell uc, SymmetryOperation[] ops, javajs.util.P3 fracA, javajs.util.P3 fracB, boolean best)
private static int
getType(java.lang.String id)
Determine the type of this request.private static java.lang.Object
nullReturn(int type)
private static javajs.util.P3
rotTransCart(SymmetryOperation op, SymmetryInterface uc, javajs.util.P3 pt00, javajs.util.V3 vtrans)
SymmetryDesc
set(ModelSet modelSet)
private static void
setFractional(SymmetryInterface uc, javajs.util.T3 pt00, javajs.util.P3 pt01, javajs.util.P3 offset)
Set pt01 to pt00, possibly adding offset into unit cellprivate static java.lang.String
strCoord(SymmetryOperation op, javajs.util.T3 p, boolean isBio)
-
-
-
Field Detail
-
modelSet
private ModelSet modelSet
-
RET_XYZ
private static final int RET_XYZ
- See Also:
- Constant Field Values
-
RET_XYZORIGINAL
private static final int RET_XYZORIGINAL
- See Also:
- Constant Field Values
-
RET_LABEL
private static final int RET_LABEL
- See Also:
- Constant Field Values
-
RET_DRAW
private static final int RET_DRAW
- See Also:
- Constant Field Values
-
RET_FTRANS
private static final int RET_FTRANS
- See Also:
- Constant Field Values
-
RET_CTRANS
private static final int RET_CTRANS
- See Also:
- Constant Field Values
-
RET_INVCTR
private static final int RET_INVCTR
- See Also:
- Constant Field Values
-
RET_POINT
private static final int RET_POINT
- See Also:
- Constant Field Values
-
RET_AXISVECTOR
private static final int RET_AXISVECTOR
- See Also:
- Constant Field Values
-
RET_ROTANGLE
private static final int RET_ROTANGLE
- See Also:
- Constant Field Values
-
RET_MATRIX
private static final int RET_MATRIX
- See Also:
- Constant Field Values
-
RET_UNITTRANS
private static final int RET_UNITTRANS
- See Also:
- Constant Field Values
-
RET_CTRVECTOR
private static final int RET_CTRVECTOR
- See Also:
- Constant Field Values
-
RET_TIMEREV
private static final int RET_TIMEREV
- See Also:
- Constant Field Values
-
RET_PLANE
private static final int RET_PLANE
- See Also:
- Constant Field Values
-
RET_TYPE
private static final int RET_TYPE
- See Also:
- Constant Field Values
-
RET_ID
private static final int RET_ID
- See Also:
- Constant Field Values
-
RET_CIF2
private static final int RET_CIF2
- See Also:
- Constant Field Values
-
RET_XYZCANON
private static final int RET_XYZCANON
- See Also:
- Constant Field Values
-
RET_XYZNORMALIZED
private static final int RET_XYZNORMALIZED
- See Also:
- Constant Field Values
-
RET_COUNT
private static final int RET_COUNT
- See Also:
- Constant Field Values
-
RET_LIST
static final int RET_LIST
- See Also:
- Constant Field Values
-
RET_INVARIANT
static final int RET_INVARIANT
- See Also:
- Constant Field Values
-
keys
private static final java.lang.String[] keys
-
vtemp
private static javajs.util.V3 vtemp
-
ptemp
private static javajs.util.P3 ptemp
-
ptemp2
private static javajs.util.P3 ptemp2
-
pta01
private static javajs.util.P3 pta01
-
pta02
private static javajs.util.P3 pta02
-
vtrans
private static javajs.util.V3 vtrans
-
-
Method Detail
-
set
public SymmetryDesc set(ModelSet modelSet)
-
getType
private static int getType(java.lang.String id)
Determine the type of this request. Note that label and xyz will be returned as T.xyz and T.label- Parameters:
id
-- Returns:
- a code that identifies this request.
-
getKeyType
private static int getKeyType(java.lang.String id)
-
nullReturn
private static java.lang.Object nullReturn(int type)
-
getInfo
private static java.lang.Object getInfo(java.lang.Object[] io, int type)
Return information about a symmetry operator by type: array, angle, axis, center, draw, full, info, label, matrix4f, point, time, plane, translation, unitcell, xyz, all, or a negative number (-length, -1]: { "xyz", etc. } where "all" is the info array itself,- Parameters:
io
-type
-- Returns:
- object specified
-
getInfoBS
private static javajs.util.BS getInfoBS(int type)
-
createInfoArray
private java.lang.Object[] createInfoArray(SymmetryOperation op, SymmetryInterface uc, javajs.util.P3 ptFrom, javajs.util.P3 ptTarget, java.lang.String id, float scaleFactor, int options, boolean haveTranslation, javajs.util.BS bsInfo)
- Parameters:
op
-uc
-ptFrom
- optional initial atom pointptTarget
- optional target atom pointid
-scaleFactor
- scale for rotation vector onlyoptions
- 0 or T.offsethaveTranslation
- TODObsInfo
-- Returns:
- Object[] containing: [0] xyz (Jones-Faithful calculated from matrix) [1] xyzOriginal (Provided by calling method) [2] info ("C2 axis", for example) [3] draw commands [4] translation vector (fractional) [5] translation vector (Cartesian) [6] inversion point [7] axis point [8] axis vector (defines plane if angle = 0 [9] angle of rotation [10] matrix representation [11] lattice translation [12] centering [13] time reversal [14] plane [15] _type [16] id [17] element [18] invariant
-
drawLine
private static void drawLine(javajs.util.SB s, java.lang.String id, float diameter, javajs.util.P3 pt0, javajs.util.P3 pt1, java.lang.String color)
-
drawFrameLine
private static void drawFrameLine(java.lang.String xyz, javajs.util.P3 pt, javajs.util.V3 v, float width, javajs.util.P3 ptemp, javajs.util.SB draw1, java.lang.String key, java.lang.String color)
-
drawVector
private static void drawVector(javajs.util.SB draw1, java.lang.String drawid, java.lang.String label, java.lang.String type, javajs.util.T3 pt1, javajs.util.T3 v, java.lang.String color)
-
setFractional
private static void setFractional(SymmetryInterface uc, javajs.util.T3 pt00, javajs.util.P3 pt01, javajs.util.P3 offset)
Set pt01 to pt00, possibly adding offset into unit cell- Parameters:
uc
-pt00
-pt01
-offset
-
-
rotTransCart
private static javajs.util.P3 rotTransCart(SymmetryOperation op, SymmetryInterface uc, javajs.util.P3 pt00, javajs.util.V3 vtrans)
-
strCoord
private static java.lang.String strCoord(SymmetryOperation op, javajs.util.T3 p, boolean isBio)
-
approx0
private static javajs.util.T3 approx0(javajs.util.T3 pt)
-
approx
private static javajs.util.T3 approx(javajs.util.T3 pt)
-
getSymmetryInfo
private java.lang.Object getSymmetryInfo(SymmetryInterface sym, int iModel, int iatom, SymmetryInterface uc, java.lang.String xyz, int op, javajs.util.P3 translation, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type, float scaleFactor, int nth, int options)
multipurpose function handling a variety of tasks, including: processing of "lattice", "list", "atom", "point", and some "draw" output types finding the operator in the given space group creating a temporary space group for an xyz operator- Parameters:
sym
-iModel
-iatom
-uc
-xyz
-op
-translation
- [i j k] to be added to operatorpt
-pt2
- second point or offsetid
-type
-scaleFactor
-nth
-options
- 0 or T.offset- Returns:
- a string or an Object[] containing information
-
getAtom
private javajs.util.BS getAtom(SymmetryInterface uc, int iModel, int iAtom, javajs.util.T3 sympt)
-
getSymopInfoForPoints
java.lang.Object getSymopInfoForPoints(SymmetryInterface sym, int modelIndex, int symOp, javajs.util.P3 translation, javajs.util.P3 pt1, javajs.util.P3 pt2, java.lang.String drawID, java.lang.String stype, float scaleFactor, int nth, int options, javajs.util.BS bsInfo)
get information about a symmetry operation relating two specific points or atoms- Parameters:
sym
-modelIndex
-symOp
-translation
- TODOpt1
-pt2
-drawID
-stype
-scaleFactor
-nth
-options
- 0 or T.offsetbsInfo
-- Returns:
- Object[] or String or Object[Object[]] (nth = 0, "array")
-
getSymopInfo
java.lang.Object getSymopInfo(int iAtom, java.lang.String xyz, int op, javajs.util.P3 translation, javajs.util.P3 pt, javajs.util.P3 pt2, java.lang.String id, int type, float scaleFactor, int nth, int options)
- Parameters:
iAtom
-xyz
-op
-translation
- TODOpt
-pt2
-id
-type
-scaleFactor
-nth
-options
- 0 or T.offset- Returns:
- "" or a bitset of matching atoms, or
-
getSpaceGroupInfo
java.util.Map<java.lang.String,java.lang.Object> getSpaceGroupInfo(SymmetryInterface sym, int modelIndex, java.lang.String sgName, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, java.lang.String drawID, float scaleFactor, int nth, boolean isFull, boolean isForModel, int options, SymmetryInterface cellInfo, javajs.util.BS bsInfo)
-
getTransform
public javajs.util.M4 getTransform(UnitCell uc, SymmetryOperation[] ops, javajs.util.P3 fracA, javajs.util.P3 fracB, boolean best)
-
-