Modifier and Type | Class and Description |
---|---|
static class |
StereoTool.SquarePlanarShape
The shape that four atoms take in a plane.
|
static class |
StereoTool.StereoClass
Currently unused, but intended for the StereoTool to indicate what it
'means' by an assignment of some atoms to a class.
|
static class |
StereoTool.TetrahedralSign
The handedness of a tetrahedron, in terms of the point-plane distance
of three of the corners, compared to the fourth.
|
Modifier and Type | Field and Description |
---|---|
static double |
MAX_AXIS_ANGLE
The maximum angle in radians for two lines to be 'diaxial'.
|
static double |
MIN_COLINEAR_NORMAL
The maximum tolerance for the normal calculated during colinearity.
|
static double |
PLANE_TOLERANCE |
Constructor and Description |
---|
StereoTool() |
Modifier and Type | Method and Description |
---|---|
static boolean |
allCoplanar(javax.vecmath.Vector3d planeNormal,
javax.vecmath.Point3d pointInPlane,
javax.vecmath.Point3d... points)
Check that all the points in the list are coplanar (in the same plane)
as the plane defined by the planeNormal and the pointInPlane.
|
static StereoTool.TetrahedralSign |
getHandedness(IAtom baseAtomA,
IAtom baseAtomB,
IAtom baseAtomC,
IAtom apexAtom)
Gets the tetrahedral handedness of four atoms - three of which form the
'base' of the tetrahedron, and the other the apex.
|
static javax.vecmath.Vector3d |
getNormal(javax.vecmath.Point3d ptA,
javax.vecmath.Point3d ptB,
javax.vecmath.Point3d ptC)
Given three points (A, B, C), makes the vectors A-B and A-C, and makes
the cross product of these two vectors; this has the effect of making a
third vector at right angles to AB and AC.
|
static StereoTool.SquarePlanarShape |
getSquarePlanarShape(IAtom atomA,
IAtom atomB,
IAtom atomC,
IAtom atomD)
Given four atoms (assumed to be in the same plane), returns the
arrangement of those atoms in that plane.
|
static ITetrahedralChirality.Stereo |
getStereo(IAtom atom1,
IAtom atom2,
IAtom atom3,
IAtom atom4)
Take four atoms, and return Stereo.CLOCKWISE or Stereo.ANTI_CLOCKWISE.
|
static boolean |
isColinear(javax.vecmath.Point3d ptA,
javax.vecmath.Point3d ptB,
javax.vecmath.Point3d ptC)
Checks the three supplied points to see if they fall on the same line.
|
static boolean |
isOctahedral(IAtom atomA,
IAtom atomB,
IAtom atomC,
IAtom atomD,
IAtom atomE,
IAtom atomF,
IAtom atomG)
Checks these 7 atoms to see if they are at the points of an octahedron.
|
static boolean |
isSquarePlanar(IAtom atomA,
IAtom atomB,
IAtom atomC,
IAtom atomD)
Checks these four atoms for square planarity.
|
static boolean |
isTrigonalBipyramidal(IAtom atomA,
IAtom atomB,
IAtom atomC,
IAtom atomD,
IAtom atomE,
IAtom atomF)
Checks these 6 atoms to see if they form a trigonal-bipyramidal shape.
|
static double |
signedDistanceToPlane(javax.vecmath.Vector3d planeNormal,
javax.vecmath.Point3d pointInPlane,
javax.vecmath.Point3d point)
Given a normalized normal for a plane, any point in that plane, and
a point, will return the distance between the plane and that point.
|
public static final double MAX_AXIS_ANGLE
public static final double MIN_COLINEAR_NORMAL
public static final double PLANE_TOLERANCE
public static boolean isSquarePlanar(IAtom atomA, IAtom atomB, IAtom atomC, IAtom atomD)
atomA
- an atom in the planeatomB
- an atom in the planeatomC
- an atom in the planeatomD
- an atom in the planepublic static StereoTool.SquarePlanarShape getSquarePlanarShape(IAtom atomA, IAtom atomB, IAtom atomC, IAtom atomD)
Given four atoms (assumed to be in the same plane), returns the arrangement of those atoms in that plane.
The 'shapes' returned represent arrangements that look a little like the characters 'U', '4', and 'Z'.
atomA
- an atom in the planeatomB
- an atom in the planeatomC
- an atom in the planeatomD
- an atom in the planepublic static boolean allCoplanar(javax.vecmath.Vector3d planeNormal, javax.vecmath.Point3d pointInPlane, javax.vecmath.Point3d... points)
planeNormal
- the normal to the planepointInPlane
- any point know to be in the planepoints
- an array of points to testpublic static boolean isOctahedral(IAtom atomA, IAtom atomB, IAtom atomC, IAtom atomD, IAtom atomE, IAtom atomF, IAtom atomG)
atomA
- one of the axial atomsatomB
- the central atomatomC
- one of the equatorial atomsatomD
- one of the equatorial atomsatomE
- one of the equatorial atomsatomF
- one of the equatorial atomsatomG
- the other axial atompublic static boolean isTrigonalBipyramidal(IAtom atomA, IAtom atomB, IAtom atomC, IAtom atomD, IAtom atomE, IAtom atomF)
atomA
- one of the axial atomsatomB
- the central atomatomC
- one of the equatorial atomsatomD
- one of the equatorial atomsatomE
- one of the equatorial atomsatomF
- the other axial atompublic static ITetrahedralChirality.Stereo getStereo(IAtom atom1, IAtom atom2, IAtom atom3, IAtom atom4)
atom1
- the atom pointing towards the observeratom2
- the second atom (points away)atom3
- the third atom (points away)atom4
- the fourth atom (points away)public static StereoTool.TetrahedralSign getHandedness(IAtom baseAtomA, IAtom baseAtomB, IAtom baseAtomC, IAtom apexAtom)
baseAtomA
- the first atom in the base of the tetrahedronbaseAtomB
- the second atom in the base of the tetrahedronbaseAtomC
- the third atom in the base of the tetrahedronapexAtom
- the atom in the point of the tetrahedronpublic static boolean isColinear(javax.vecmath.Point3d ptA, javax.vecmath.Point3d ptB, javax.vecmath.Point3d ptC)
ptA
- ptB
- ptC
- public static double signedDistanceToPlane(javax.vecmath.Vector3d planeNormal, javax.vecmath.Point3d pointInPlane, javax.vecmath.Point3d point)
planeNormal
- the normalized plane normalpointInPlane
- an arbitrary point in that planepoint
- the point to measurepublic static javax.vecmath.Vector3d getNormal(javax.vecmath.Point3d ptA, javax.vecmath.Point3d ptB, javax.vecmath.Point3d ptC)
Given three points (A, B, C), makes the vectors A-B and A-C, and makes the cross product of these two vectors; this has the effect of making a third vector at right angles to AB and AC.
NOTE : the returned normal is normalized; that is, it has been divided by its length.
ptA
- the 'middle' pointptB
- one of the end pointsptC
- one of the end pointsCopyright © 2021. All rights reserved.