class UnitCell extends SimpleUnitCell implements java.lang.Cloneable
Modifier and Type | Field and Description |
---|---|
private boolean |
allFractionalRelative
this flag TRUE causes an update of matrixCtoFNoOffset each time an offset is changed
so that it is updated and the two stay the same; set true only for JmolData, tensors, and isosurfaceMesh
it is no longer clear to me exactly why this is necessary, and perhaps it is not for some of these
|
protected javajs.util.P3 |
cartesianOffset |
private javajs.util.P3 |
fractionalOffset |
javajs.util.Lst<java.lang.String> |
moreInfo |
java.lang.String |
name |
private static double |
twoP2 |
protected javajs.util.T3 |
unitCellMultiplier |
private static javajs.util.V3[] |
unitVectors |
private javajs.util.P3[] |
vertices |
a, a_, alpha, b, b_, beta, c, c_, cA_, cB_, cosAlpha, cosBeta, cosGamma, dimension, gamma, INFO_A, INFO_ALPHA, INFO_B, INFO_BETA, INFO_C, INFO_DIMENSIONS, INFO_GAMMA, matrixCartesianToFractional, matrixCtoFNoOffset, matrixFractionalToCartesian, matrixFtoCNoOffset, sinAlpha, sinBeta, sinGamma, SLOP, toRadians, unitCellParams, volume
Modifier | Constructor and Description |
---|---|
private |
UnitCell() |
Modifier and Type | Method and Description |
---|---|
boolean |
checkDistance(javajs.util.P3 f1,
javajs.util.P3 f2,
float distance,
float dx,
int iRange,
int jRange,
int kRange,
javajs.util.P3 ptOffset) |
static UnitCell |
cloneUnitCell(UnitCell uc) |
(package private) java.lang.String |
dumpInfo(boolean isFull) |
private float |
fix(float x) |
(package private) static UnitCell |
fromOABC(javajs.util.T3[] oabc,
boolean setRelative)
A special constructor for spacially defined unit cells.
|
static UnitCell |
fromParams(float[] params,
boolean setRelative) |
(package private) javajs.util.P3[] |
getCanonicalCopy(float scale,
boolean withOffset) |
(package private) javajs.util.P3 |
getCartesianOffset() |
javajs.util.T3[] |
getConventionalUnitCell(java.lang.String latticeType,
javajs.util.M3 primitiveToCrystal)
return a conventional lattice from a primitive
|
(package private) javajs.util.P3 |
getFractionalOffset() |
(package private) java.util.Map<java.lang.String,java.lang.Object> |
getInfo() |
javajs.util.Quat |
getQuaternionRotation(java.lang.String abc)
Returns a quaternion that will take the standard frame to a view down a
particular axis, expressed as its counterparts.
|
java.lang.String |
getState() |
(package private) Tensor |
getTensor(Viewer vwr,
float[] parBorU) |
javajs.util.T3 |
getUnitCellMultiplier() |
javajs.util.P3[] |
getUnitCellVectors() |
javajs.util.T3[] |
getV0abc(java.lang.Object def) |
(package private) javajs.util.P3[] |
getVertices() |
boolean |
hasOffset() |
(package private) void |
initOrientation(javajs.util.M3 mat) |
private void |
initUnitcellVertices() |
boolean |
isSameAs(UnitCell uc) |
void |
reset() |
private void |
setCartesianOffset(javajs.util.T3 origin) |
(package private) void |
setOffset(javajs.util.T3 pt) |
private static float |
toFractionalX(float x) |
boolean |
toFromPrimitive(boolean toPrimitive,
char type,
javajs.util.T3[] uc,
javajs.util.M3 primitiveToCrystal) |
(package private) void |
toUnitCell(javajs.util.T3 pt,
javajs.util.T3 offset)
when offset is null, use the current cell, otherwise use the original unit cell
|
void |
unitize(javajs.util.T3 pt)
returns [0,1)
|
escapeMultiplier, getCellWeight, getFractionalOrigin, getInfo, getReciprocal, getUnitCellAsArray, getUnitCellParams, ijkToPoint3f, init, isPolymer, isSlab, isSupercell, isValid, newA, setMinMaxLatticeParameters, setOabc, toCartesian, toFractional, toFractionalM, toSupercell
private javajs.util.P3[] vertices
private javajs.util.P3 fractionalOffset
private boolean allFractionalRelative
protected final javajs.util.P3 cartesianOffset
protected javajs.util.T3 unitCellMultiplier
public javajs.util.Lst<java.lang.String> moreInfo
public java.lang.String name
private static final double twoP2
private static final javajs.util.V3[] unitVectors
static UnitCell fromOABC(javajs.util.T3[] oabc, boolean setRelative)
oabc
- [origin, Va, Vb, Vc]setRelative
- a flag only set true for IsosurfaceMeshpublic static UnitCell fromParams(float[] params, boolean setRelative)
params
- setRelative
- only set true for JmolData and tensorsvoid initOrientation(javajs.util.M3 mat)
final void toUnitCell(javajs.util.T3 pt, javajs.util.T3 offset)
pt
- offset
- public void unitize(javajs.util.T3 pt)
pt
- public void reset()
void setOffset(javajs.util.T3 pt)
private void setCartesianOffset(javajs.util.T3 origin)
java.util.Map<java.lang.String,java.lang.Object> getInfo()
java.lang.String dumpInfo(boolean isFull)
javajs.util.P3[] getVertices()
javajs.util.P3 getCartesianOffset()
javajs.util.P3 getFractionalOffset()
javajs.util.P3[] getCanonicalCopy(float scale, boolean withOffset)
scale
- withOffset
- private static float toFractionalX(float x)
private void initUnitcellVertices()
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)
f1
- f2
- distance
- dx
- iRange
- jRange
- kRange
- ptOffset
- TODOpublic javajs.util.T3 getUnitCellMultiplier()
public javajs.util.P3[] getUnitCellVectors()
private float fix(float x)
public boolean isSameAs(UnitCell uc)
public boolean hasOffset()
public java.lang.String getState()
public javajs.util.Quat getQuaternionRotation(java.lang.String abc)
abc
- ab bc capublic javajs.util.T3[] getV0abc(java.lang.Object def)
def
- String "abc;offset" or M3 or M4 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"public boolean toFromPrimitive(boolean toPrimitive, char type, javajs.util.T3[] uc, javajs.util.M3 primitiveToCrystal)
toPrimitive
- or assumed conventionaltype
- P, R, A, B, C, I(BCC), or F(FCC)uc
- either [origin, va, vb, vc] or just [va, vb, vc]primitiveToCrystal
- public javajs.util.T3[] getConventionalUnitCell(java.lang.String latticeType, javajs.util.M3 primitiveToCrystal)
latticeType
- "A" "B" "C" "R" etc.