public class Polyhedra extends AtomShape
Modifier and Type | Field and Description |
---|---|
private boolean |
bondedOnly |
private BS |
bsVertexCount |
private BS |
bsVertices |
private int |
buildMode |
private BS |
centers |
private static float |
CONVEX_HULL_MAX |
private static float |
DEFAULT_FACECENTEROFFSET |
private static float |
DEFAULT_PLANAR_PARAM
a dot product comparison term
|
private float |
distanceRef |
int |
drawEdges |
static int |
EDGES_ALL |
static int |
EDGES_FRONT |
private static int |
EDGES_NONE |
private static int |
FACE_COUNT_MAX |
(package private) float |
faceCenterOffset |
private boolean |
haveBitSetVertices |
private boolean |
iHaveCenterBitSet |
private java.util.Map<java.lang.String,SV> |
info |
(package private) boolean |
isCollapsed |
private static float |
MAX_DISTANCE_TO_PLANE |
private static int |
MAX_VERTICES |
private static int |
MODE_BITSET |
private static int |
MODE_BONDING |
private static int |
MODE_INFO |
private static int |
MODE_POINTS |
private static int |
MODE_RADIUS |
private static int |
MODE_UNITCELL |
private javajs.util.V3[] |
normalsT |
private int |
nPoints |
private int |
nVertices |
private javajs.util.P3[] |
otherAtoms |
private float |
planarParam |
private int[][] |
planesT |
int |
polyhedronCount |
Polyhedron[] |
polyhedrons |
private float |
radius |
private static javajs.util.P3 |
randomPoint |
private boolean |
useUnitCell |
private javajs.util.V3 |
vAB |
private javajs.util.V3 |
vAC |
private javajs.util.V3 |
vBC |
ac, atoms, bsSizeDefault, colixes, isActive, mad, mads, monomerCount, paletteIDs
bsColixSet, bsSizeSet, isBioShape, ms, myType, RADIUS_MAX, shapeID, translucentAllowed, translucentLevel, vf, vwr
Constructor and Description |
---|
Polyhedra() |
Modifier and Type | Method and Description |
---|---|
private boolean |
addEdge(javajs.util.Lst<int[]> faceList,
java.util.Map<java.lang.String,java.lang.Object> htEdgeMap,
java.lang.Integer normix,
int[] p1,
int i,
javajs.util.P3[] points,
BS bsPts)
Check each edge to see that
(a) it has not been used before
(b) it does not have vertex points on both sides of it
(c) if it runs opposite another edge, then both edge masks are set properly
|
private void |
addFacet(int i,
int j,
int k,
javajs.util.P3 ptRef,
javajs.util.P3[] points,
javajs.util.V3[] normals,
int[][] faces,
int planeCount,
int nRef,
boolean isWindingOK,
javajs.util.V3 vTemp)
Add one of the three "facets" that compose the planes of a "collapsed" polyhedron.
|
private BS |
andBitSet(BS bs) |
private void |
buildPolyhedra() |
private boolean |
checkFace(javajs.util.P3[] points,
int nPoints,
int[][] planes,
javajs.util.V3[] normals,
int index,
javajs.util.P4 pTemp,
javajs.util.V3 vNorm,
javajs.util.V3 vAC,
java.util.Map<java.lang.Integer,java.lang.Object[]> htNormMap,
java.util.Map<java.lang.String,java.lang.Object> htEdgeMap,
float planarParam,
BS bsTemp)
Clean out overlapping triangles based on normals and cross products.
|
private Polyhedron |
constructBitSetPolyhedron(Atom atom) |
private Polyhedron |
constructBondsPolyhedron(Atom atom,
int otherAtomCount) |
private Polyhedron |
constructRadiusPolyhedron(Atom atom,
AtomIndexIterator iter) |
private Polyhedron |
constructUnitCellPolygon(Atom atom,
boolean useBondAlgorithm) |
private void |
deletePolyhedra() |
private int[][] |
getFaces(int[][] triangles,
int triangleCount,
java.util.Map<java.lang.Integer,java.lang.Object[]> htNormMap) |
java.lang.Object |
getProperty(java.lang.String propertyName,
int index) |
boolean |
getPropertyData(java.lang.String property,
java.lang.Object[] data) |
javajs.util.Lst<java.util.Map<java.lang.String,java.lang.Object>> |
getShapeDetail() |
java.lang.String |
getShapeState() |
private boolean |
isPlanar(javajs.util.P3 pt1,
javajs.util.P3 pt2,
javajs.util.P3 pt3,
javajs.util.P3 ptX) |
void |
setModelVisibilityFlags(BS bsModels) |
void |
setProperty(java.lang.String propertyName,
java.lang.Object value,
BS bs) |
private void |
setVisible(boolean visible) |
private Polyhedron |
validatePolyhedron(Atom centralAtom,
int vertexCount) |
getInfoAsString, getMonomers, getSize, initModelSet, setAtomClickability, setColixAndPalette, setPropAS, setSize, setSize2, setSizeRD, setSizeRD2
appendCmd, checkBoundsMinMax, checkObjectClicked, checkObjectDragged, checkObjectHovered, coordinateInRange, encodeColor, findNearestAtomIndex, getColix, getColixA, getColixB, getColixI, getColorCommand, getColorCommandUnk, getFontCommand, getIndexFromName, getSizeG, getTranslucentLabel, initializeShape, initShape, merge, replaceGroup, setModelSet, setPropS, setShapeSizeRD, setShapeVisibility, wasClicked
private static final float DEFAULT_FACECENTEROFFSET
private static final int EDGES_NONE
public static final int EDGES_ALL
public static final int EDGES_FRONT
private static final int MAX_VERTICES
private static final int FACE_COUNT_MAX
private javajs.util.P3[] otherAtoms
private javajs.util.V3[] normalsT
private int[][] planesT
private static final javajs.util.P3 randomPoint
private static final int MODE_BONDING
private static final int MODE_POINTS
private static final int MODE_RADIUS
private static final int MODE_BITSET
private static final int MODE_UNITCELL
private static final int MODE_INFO
private static final float DEFAULT_PLANAR_PARAM
private static final float CONVEX_HULL_MAX
public int polyhedronCount
public Polyhedron[] polyhedrons
public int drawEdges
private float radius
private int nVertices
float faceCenterOffset
boolean isCollapsed
private boolean iHaveCenterBitSet
private boolean bondedOnly
private boolean haveBitSetVertices
private BS centers
private BS bsVertices
private BS bsVertexCount
private boolean useUnitCell
private int nPoints
private float planarParam
private java.util.Map<java.lang.String,SV> info
private float distanceRef
private int buildMode
private final javajs.util.V3 vAB
private final javajs.util.V3 vAC
private final javajs.util.V3 vBC
private static float MAX_DISTANCE_TO_PLANE
public void setProperty(java.lang.String propertyName, java.lang.Object value, BS bs)
setProperty
in class Shape
public java.lang.Object getProperty(java.lang.String propertyName, int index)
getProperty
in class Shape
public boolean getPropertyData(java.lang.String property, java.lang.Object[] data)
getPropertyData
in class Shape
public javajs.util.Lst<java.util.Map<java.lang.String,java.lang.Object>> getShapeDetail()
getShapeDetail
in class Shape
private void deletePolyhedra()
private void setVisible(boolean visible)
private void buildPolyhedra()
private Polyhedron constructBondsPolyhedron(Atom atom, int otherAtomCount)
private Polyhedron constructUnitCellPolygon(Atom atom, boolean useBondAlgorithm)
private Polyhedron constructBitSetPolyhedron(Atom atom)
private Polyhedron constructRadiusPolyhedron(Atom atom, AtomIndexIterator iter)
private Polyhedron validatePolyhedron(Atom centralAtom, int vertexCount)
private void addFacet(int i, int j, int k, javajs.util.P3 ptRef, javajs.util.P3[] points, javajs.util.V3[] normals, int[][] faces, int planeCount, int nRef, boolean isWindingOK, javajs.util.V3 vTemp)
i
- j
- k
- ptRef
- slightly out from the center; based on centerOffset parameterpoints
- normals
- faces
- planeCount
- nRef
- isWindingOK
- vTemp
- private boolean checkFace(javajs.util.P3[] points, int nPoints, int[][] planes, javajs.util.V3[] normals, int index, javajs.util.P4 pTemp, javajs.util.V3 vNorm, javajs.util.V3 vAC, java.util.Map<java.lang.Integer,java.lang.Object[]> htNormMap, java.util.Map<java.lang.String,java.lang.Object> htEdgeMap, float planarParam, BS bsTemp)
points
- nPoints
- planes
- normals
- index
- pTemp
- vNorm
- vAC
- htNormMap
- htEdgeMap
- planarParam
- bsTemp
- private boolean addEdge(javajs.util.Lst<int[]> faceList, java.util.Map<java.lang.String,java.lang.Object> htEdgeMap, java.lang.Integer normix, int[] p1, int i, javajs.util.P3[] points, BS bsPts)
faceList
- htEdgeMap
- normix
- p1
- i
- points
- bsPts
- private boolean isPlanar(javajs.util.P3 pt1, javajs.util.P3 pt2, javajs.util.P3 pt3, javajs.util.P3 ptX)
private int[][] getFaces(int[][] triangles, int triangleCount, java.util.Map<java.lang.Integer,java.lang.Object[]> htNormMap)
public void setModelVisibilityFlags(BS bsModels)
setModelVisibilityFlags
in class Shape
public java.lang.String getShapeState()
getShapeState
in class AtomShape