Package org.jmol.symmetry
Class UnitCell
java.lang.Object
org.jmol.util.SimpleUnitCell
org.jmol.symmetry.UnitCell
- All Implemented Interfaces:
Cloneable
a class pseudoprivate to the org.jmol.symmetry and org.jmol.applet.smarter.FileSymmetry
to be accessed generally only through the SymmetryInterface API
adds vertices and offsets orientation,
and a variety of additional calculations that in
principle could be put in SimpleUnitCell
if desired, but for now are in this optional package.
-
Field Summary
FieldsFields inherited from class org.jmol.util.SimpleUnitCell
a, a_, alpha, b, b_, beta, c, c_, cA_, cB_, cosAlpha, cosBeta, cosGamma, dimension, gamma, HEX_TO_RHOMB, INFO_A, INFO_ALPHA, INFO_B, INFO_BETA, INFO_C, INFO_DIMENSIONS, INFO_GAMMA, INFO_IS_HEXAGONAL, INFO_IS_RHOMBOHEDRAL, matrixCartesianToFractional, matrixCtoFNoOffset, matrixFractionalToCartesian, matrixFtoCNoOffset, PARAM_COUNT, PARAM_M33, PARAM_M4, PARAM_OXYZ, PARAM_SCALE, PARAM_SLOP, PARAM_STD, PARAM_SUPERCELL, PARAM_VAX, PARAM_VBX, PARAM_VCX, PARAM_VCZ, RHOMB_TO_HEX, sinAlpha, sinBeta, sinGamma, slop, SLOP_PARAMS, SLOPDP, SLOPSP, toRadians, unitCellParams, volume
-
Method Summary
Modifier and TypeMethodDescriptionboolean
checkDistance
(P3 f1, P3 f2, float distance, float dx, int iRange, int jRange, int kRange, P3 ptOffset) static boolean
createCompatibleUnitCell
(SpaceGroup sg, float[] params, float[] newParams, boolean allowSame) Create a unit cell compatible withstatic UnitCell
A special constructor for spacially defined unit cells.static UnitCell
fromParams
(float[] params, boolean setRelative, float slop) P3[]
getCanonicalCopyTrimmed
(P3 frac, float scale) T3[]
getConventionalUnitCell
(String latticeType, M3 primitiveToCrystal) return a conventional lattice from a primitivefloat[][]
getF2C()
static T3[]
getMatrixAndUnitCell
(SimpleUnitCell uc, Object def, M4 retMatrix) static boolean
isHexagonalSG
(int n, float[] params) static boolean
isMonoclinicSG
(int n) static boolean
isPolarSG
(int n) static boolean
isTetragonalSG
(int n) static M4
final void
toUnitCellRnd
(T3 pt, T3 offset) when offset is null, use the current cell, otherwise use the original unit cellMethods inherited from class org.jmol.util.SimpleUnitCell
addVectors, approx0, escapeMultiplier, fillParams, getCellRange, getDimensionFromParams, getFractionalOrigin, getInfo, getPrecision, getReciprocal, getUnitCellAsArray, getUnitCellParams, ijkToPoint3f, init, isHexagonal, isPolymer, isRhombohedral, isSlab, isSupercell, isValid, newA, newParams, ptToIJK, setAbc, setAbcFromParams, setMinMaxLatticeParameters, setPrecision, toCartesian, toFractional, toFractionalM, toString, toSupercell, twelfthify, twelfthsOf, unitizeDim, unitizeDimRnd, unitizeX, unitizeXRnd
-
Field Details
-
name
-
-
Method Details
-
fromOABC
A special constructor for spacially defined unit cells. Not used by readers.- Parameters:
oabc
- [origin, Va, Vb, Vc]setRelative
- a flag only set true for IsosurfaceMesh- Returns:
- new unit cell
-
fromParams
- Parameters:
params
-setRelative
- only set true for JmolData and tensorsslop
-- Returns:
- a new unit cell
-
checkDistance
public boolean checkDistance(P3 f1, P3 f2, float distance, float dx, int iRange, int jRange, int kRange, P3 ptOffset) - Parameters:
f1
-f2
-distance
-dx
-iRange
-jRange
-kRange
-ptOffset
- TODO- Returns:
- TRUE if pt has been set.
-
getCanonicalCopyTrimmed
-
getConventionalUnitCell
return a conventional lattice from a primitive- Parameters:
latticeType
- "A" "B" "C" "R" etc.primitiveToCrystal
-- Returns:
- [origin va vb vc]
-
getTensor
-
toTrm
-
getMatrixAndUnitCell
- Parameters:
uc
- generally this or nulldef
- String "abc;offset" or M3d or M4d to origin; if String, can be preceded by ! for "reverse of". For example, "!a-b,-5a-5b,-c;7/8,0,1/8" offset is optional, and can be a definition such as "a=3.40,b=4.30,c=5.02,alpha=90,beta=90,gamma=129"retMatrix
- if a string, return the 4x4 matrix corresponding to this definition; may be null to ignore- Returns:
- [origin va vb vc]
-
getF2C
public float[][] getF2C() -
toUnitCellRnd
when offset is null, use the current cell, otherwise use the original unit cell- Parameters:
pt
-offset
-
-
createCompatibleUnitCell
public static boolean createCompatibleUnitCell(SpaceGroup sg, float[] params, float[] newParams, boolean allowSame) Create a unit cell compatible with- Parameters:
sg
-params
-newParams
-allowSame
- true to allow same-distance a,b,c for lower-symmetry sg- Returns:
- true if changes have occurred
-
isHexagonalSG
public static boolean isHexagonalSG(int n, float[] params) -
isMonoclinicSG
public static boolean isMonoclinicSG(int n) -
isTetragonalSG
public static boolean isTetragonalSG(int n) -
isPolarSG
public static boolean isPolarSG(int n)
-