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, DIMENSION_TYPE_ALL, dimensionType, gamma, HEX_TO_RHOMB, INFO_A, INFO_ALPHA, INFO_B, INFO_BETA, INFO_C, INFO_DIMENSION_TYPE, 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 UnitCell
A special constructor for spacially defined unit cells.static UnitCell
fromParams
(float[] params, boolean setRelative, float slop) P3[]
getCanonicalCopyTrimmed
(P3 frac, float scale) getCenter
(int periodicity) Takes into account subperiodic groups using BoxInfo.unitCubePoints P3.new3(0, 0, 0), // 0 P3.new3(0, 0, 1), // 1 c P3.new3(0, 1, 0), // 2 b P3.new3(0, 1, 1), // 3 bc P3.new3(1, 0, 0), // 4 a P3.new3(1, 0, 1), // 5 ac P3.new3(1, 1, 0), // 6 ab P3.new3(1, 1, 1), // 7 }; abcT3[]
getConventionalUnitCell
(String latticeType, M3 primitiveToCrystal) return a conventional lattice from a primitivefloat[][]
getF2C()
static T3[]
getMatrixAndUnitCell
(SimpleUnitCell uc, Object def, M4 retMatrix) 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, parseCalc, 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 M3 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
-
-
getCenter
Takes into account subperiodic groups using BoxInfo.unitCubePoints P3.new3(0, 0, 0), // 0 P3.new3(0, 0, 1), // 1 c P3.new3(0, 1, 0), // 2 b P3.new3(0, 1, 1), // 3 bc P3.new3(1, 0, 0), // 4 a P3.new3(1, 0, 1), // 5 ac P3.new3(1, 1, 0), // 6 ab P3.new3(1, 1, 1), // 7 }; abc- Parameters:
periodicity
-- Returns:
- center
-