Package org.jmol.symmetry
Class SymmetryDesc
- java.lang.Object
-
- org.jmol.symmetry.SymmetryDesc
-
public class SymmetryDesc extends Object
A class to handle requests for information about space groups and symmetry operations. Two entry points, both from Symmetry: getSymopInfo getSpaceGroupInfo
-
-
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 Object[]
createInfoArray(SymmetryOperation op, SymmetryInterface uc, javajs.util.P3 pta00, javajs.util.P3 ptTarget, String id, float scaleFactor, int options)
private static void
drawFrameLine(String xyz, javajs.util.P3 pt, javajs.util.V3 v, float width, javajs.util.P3 ptemp, javajs.util.SB draw1, String key, String color)
private static void
drawLine(javajs.util.SB s, String id, float diameter, javajs.util.P3 pt0, javajs.util.P3 pt1, String color)
private static void
drawVector(javajs.util.SB draw1, String drawid, String label, String type, javajs.util.T3 pt1, javajs.util.T3 v, String color)
private javajs.util.BS
getAtom(Symmetry uc, int iModel, int iAtom, javajs.util.T3 sympt)
private static Object
getInfo(Object[] info, 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", "xyzOriginal", "label", "draw", "fractionalTranslation", "cartesianTranslation", "inversionCenter", "axisPoint", "axisVector", "rotationAngle", "matrix", "unitTranslation", "centeringVector", "timeReversal", "plane", "_type", "id" } where "all" is the info array itself,(package private) Map<String,Object>
getSpaceGroupInfo(Symmetry sym, int modelIndex, String sgName, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, String drawID, float scaleFactor, int nth, boolean isFull, boolean isForModel, int options, SymmetryInterface cellInfo)
private Object
getSymmetryInfo(Symmetry sym, int iModel, int iatom, Symmetry uc, String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, 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) Object
getSymopInfo(int iAtom, String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, String id, int type, float scaleFactor, int nth, int options)
private Object
getSymopInfoForPoints(Symmetry sym, int modelIndex, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, String drawID, String stype, float scaleFactor, int nth, boolean asString, int options)
get information about a symmetry operation relating two specific points or atomsprivate static int
getType(String id)
private static 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 String
strCoord(javajs.util.T3 p, boolean isBio)
-
-
-
Field Detail
-
modelSet
private ModelSet modelSet
-
keys
private static final String[] keys
-
KEY_DRAW
private static final int KEY_DRAW
- See Also:
- Constant Field Values
-
KEY_POINT
private static final int KEY_POINT
- See Also:
- Constant Field Values
-
-
Method Detail
-
set
public SymmetryDesc set(ModelSet modelSet)
-
getSymopInfo
Object getSymopInfo(int iAtom, String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, String id, int type, float scaleFactor, int nth, int options)
- Parameters:
iAtom
-xyz
-op
-pt
-pt2
-id
-type
-scaleFactor
-nth
-options
- 0 or T.offset- Returns:
- "" or a bitset of matching atoms, or
-
getSpaceGroupInfo
Map<String,Object> getSpaceGroupInfo(Symmetry sym, int modelIndex, String sgName, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, String drawID, float scaleFactor, int nth, boolean isFull, boolean isForModel, int options, SymmetryInterface cellInfo)
-
getType
private static int getType(String id)
-
nullReturn
private static Object nullReturn(int type)
-
getInfo
private static Object getInfo(Object[] info, 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", "xyzOriginal", "label", "draw", "fractionalTranslation", "cartesianTranslation", "inversionCenter", "axisPoint", "axisVector", "rotationAngle", "matrix", "unitTranslation", "centeringVector", "timeReversal", "plane", "_type", "id" } where "all" is the info array itself,- Parameters:
info
-type
-- Returns:
- object specified
-
createInfoArray
private Object[] createInfoArray(SymmetryOperation op, SymmetryInterface uc, javajs.util.P3 pta00, javajs.util.P3 ptTarget, String id, float scaleFactor, int options)
- Parameters:
op
-uc
-pta00
- optional initial atom pointptTarget
- optional target atom pointid
-scaleFactor
- scale for rotation vector onlyoptions
- 0 or T.offset- 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] index
-
drawLine
private static void drawLine(javajs.util.SB s, String id, float diameter, javajs.util.P3 pt0, javajs.util.P3 pt1, String color)
-
drawFrameLine
private static void drawFrameLine(String xyz, javajs.util.P3 pt, javajs.util.V3 v, float width, javajs.util.P3 ptemp, javajs.util.SB draw1, String key, String color)
-
drawVector
private static void drawVector(javajs.util.SB draw1, String drawid, String label, String type, javajs.util.T3 pt1, javajs.util.T3 v, 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 String strCoord(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 Object getSymmetryInfo(Symmetry sym, int iModel, int iatom, Symmetry uc, String xyz, int op, javajs.util.P3 pt, javajs.util.P3 pt2, 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
-pt
-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(Symmetry uc, int iModel, int iAtom, javajs.util.T3 sympt)
-
getSymopInfoForPoints
private Object getSymopInfoForPoints(Symmetry sym, int modelIndex, int symOp, javajs.util.P3 pt1, javajs.util.P3 pt2, String drawID, String stype, float scaleFactor, int nth, boolean asString, int options)
get information about a symmetry operation relating two specific points or atoms- Parameters:
sym
-modelIndex
-symOp
-pt1
-pt2
-drawID
-stype
-scaleFactor
-nth
-asString
-options
- 0 or T.offset- Returns:
- Object[] or String or Object[Object[]] (nth = 0, "array")
-
-