public class Isosurface extends MeshCollection implements MeshDataServer
| Modifier and Type | Field and Description |
|---|---|
private java.lang.String |
actualID |
(package private) boolean |
allowMesh |
private boolean |
associateNormals |
private int |
atomIndex |
private javax.vecmath.Point3f |
center |
private float[] |
cutoffRange |
private short |
defaultColix |
private boolean |
explicitContours |
protected boolean |
iHaveBitSets |
private boolean |
iHaveModelIndex |
private boolean |
isColorExplicit |
private IsosurfaceMesh[] |
isomeshes |
private boolean |
isPhaseColored |
private boolean |
isWithinNot |
protected JvxlData |
jvxlData |
(package private) int[] |
keyXy |
private javax.vecmath.Point4f |
lcaoDir |
private static int |
MAX_OBJECT_CLICK_DISTANCE_SQUARED |
private short |
meshColix |
private float[] |
moLinearCombination |
private int |
moNumber |
private int |
nLCAO |
private javax.vecmath.Point3f |
offset |
private double |
privateKey |
private javax.vecmath.Point3i |
ptXY |
private float |
scale3d |
private java.lang.String |
script |
private java.lang.String |
scriptAppendix |
protected SurfaceGenerator |
sg |
protected IsosurfaceMesh |
thisMesh |
private float |
withinDistance2 |
private java.util.List<javax.vecmath.Point3f> |
withinPoints |
bsDisplay, colix, color, connections, currentMesh, displayWithinDistance2, displayWithinPoints, explicitID, htObjects, isDisplayWithinNot, isFixed, linkedMesh, meshCount, meshes, modelIndex, myType, nUnnamed, pickedMesh, pickedModel, pickedVertex, PREVIOUS_MESH_ID, previousMeshID, titleg3d, isBioShape, modelSet, myVisibilityFlag, RADIUS_MAX, shapeID, translucentAllowed, translucentLevel, viewer, xmlProperties| Constructor and Description |
|---|
Isosurface() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addMeshInfo(IsosurfaceMesh mesh,
java.util.Map<java.lang.String,java.lang.Object> info) |
void |
addRequiredFile(java.lang.String fileName) |
int |
addTriangleCheck(int iA,
int iB,
int iC,
int check,
int check2,
boolean isAbsolute,
int color)
addTriangleCheck adds a triangle along with a 3-bit check indicating
which edges to draw in mesh mode: 1 (iA-iB) + 2 (iB-iC) + 4 (iC-iA)
|
int |
addVertexCopy(javax.vecmath.Point3f vertexXYZ,
float value,
int assocVertex)
addVertexCopy is used by the Marching Squares algorithm to
uniquely identify a new vertex when an edge is crossed in the 2D plane.
|
void |
allocMesh(java.lang.String thisID,
Mesh m) |
javax.vecmath.Point3f[] |
calculateGeodesicSurface(java.util.BitSet bsSelected,
float envelopeRadius) |
private java.lang.Object |
calculateVolumeOrArea(boolean isArea) |
java.util.Map<java.lang.String,java.lang.Object> |
checkObjectClicked(int x,
int y,
int action,
java.util.BitSet bsVisible) |
boolean |
checkObjectHovered(int x,
int y,
java.util.BitSet bsVisible) |
protected void |
clearSg() |
private void |
createLcaoLobe(javax.vecmath.Vector3f lobeAxis,
float factor,
int nElectrons) |
protected void |
discardTempData(boolean discardAll) |
private void |
drawLcaoCartoon(javax.vecmath.Vector3f z,
javax.vecmath.Vector3f x,
javax.vecmath.Vector3f rotAxis,
int nElectrons) |
void |
fillMeshData(MeshData meshData,
int mode,
IsosurfaceMesh mesh) |
private java.lang.String |
findValue(int x,
int y,
boolean isPicking,
java.util.BitSet bsVisible) |
protected void |
getCapSlabInfo(java.lang.String script) |
private boolean |
getClosestNormal(IsosurfaceMesh m,
javax.vecmath.Point3f toPt,
javax.vecmath.Point3f ptRet,
javax.vecmath.Vector3f normalRet) |
private void |
getClosestPoint(IsosurfaceMesh m,
int imin,
javax.vecmath.Point3f toPt,
javax.vecmath.Point3f ptRet,
javax.vecmath.Vector3f normalRet) |
java.lang.String |
getCmd(int index) |
private short |
getDefaultColix() |
private void |
getMeshCommand(java.lang.StringBuffer sb,
int i) |
float[] |
getPlane(int x) |
static java.lang.String |
getPolygonColorData(int ccount,
short[] colixes,
java.util.BitSet bsSlabDisplay) |
java.lang.Object |
getProperty(java.lang.String property,
int index) |
boolean |
getProperty(java.lang.String property,
java.lang.Object[] data) |
private boolean |
getScriptBitSets(java.lang.String script,
java.util.BitSet[] bsCmd) |
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getShapeDetail() |
java.lang.String |
getShapeState() |
int |
getSurfacePointIndexAndFraction(float cutoff,
boolean isCutoffAbsolute,
int x,
int y,
int z,
javax.vecmath.Point3i offset,
int vA,
int vB,
float valueA,
float valueB,
javax.vecmath.Point3f pointA,
javax.vecmath.Vector3f edgeVector,
boolean isContourType,
float[] fReturn)
getSurfacePointIndex is used by the Marching Cubes algorithm and
must return a unique integer identifier for
a vertex created by the Marching Cube algorithm when it finds an
edge.
|
float |
getValue(int x,
int y,
int z,
int ptyz)
for readers only
|
private void |
hoverKey(int x,
int y) |
private void |
initializeIsosurface() |
void |
initShape() |
private void |
initState() |
void |
invalidateTriangles() |
private boolean |
isPickable(IsosurfaceMesh m,
java.util.BitSet bsVisible) |
void |
merge(Shape shape)
called by ParallelProcessor at completion
|
private void |
navigate(int dz) |
protected void |
newSg() |
void |
notifySurfaceGenerationCompleted() |
void |
notifySurfaceMappingCompleted() |
private void |
setBsVdw() |
private void |
setHeading(javax.vecmath.Point3f pt,
javax.vecmath.Vector3f vNorm,
int nSeconds) |
private void |
setJvxlInfo() |
private void |
setMesh() |
void |
setOutputStream(BinaryDocument binaryDoc,
java.io.OutputStream os) |
void |
setProperty(java.lang.String propertyName,
java.lang.Object value,
java.util.BitSet bs)
may come from any source -- executed AFTER a shape's own setProperty method
|
private void |
setPropertySuper(java.lang.String propertyName,
java.lang.Object value,
java.util.BitSet bs) |
protected void |
setScriptInfo(java.lang.String strCommand) |
protected void |
slabPolygons(java.lang.Object[] slabInfo) |
checkExplicit, clean, deleteMesh, deleteMesh, getIndexFromName, getMesh, getPickedPoint, setStatusPicked, setVisibilityFlagsappendCmd, checkBoundsMinMax, checkObjectDragged, coordinateInRange, encodeColor, findNearestAtomIndex, getColix, getColorCommand, getColorCommand, getFontCommand, getShapeCommands, getShapeCommands, getSize, getSize, getTranslucentLabel, getViewer, initializeShape, initModelSet, setColix, setColix, setColix, setModelClickability, setModelSet, setShapeProperty, setShapeSize, setSize, setSize, setStateInfo, setStateInfo, wasClickedprivate IsosurfaceMesh[] isomeshes
protected IsosurfaceMesh thisMesh
private java.lang.String actualID
protected boolean iHaveBitSets
private boolean explicitContours
private int atomIndex
private int moNumber
private float[] moLinearCombination
private short defaultColix
private short meshColix
private javax.vecmath.Point3f center
private javax.vecmath.Point3f offset
private float scale3d
private boolean isPhaseColored
private boolean isColorExplicit
private java.lang.String scriptAppendix
protected SurfaceGenerator sg
protected JvxlData jvxlData
private float withinDistance2
private boolean isWithinNot
private java.util.List<javax.vecmath.Point3f> withinPoints
private float[] cutoffRange
boolean allowMesh
private java.lang.String script
private boolean iHaveModelIndex
private int nLCAO
private javax.vecmath.Point4f lcaoDir
private double privateKey
private boolean associateNormals
private static final int MAX_OBJECT_CLICK_DISTANCE_SQUARED
private final javax.vecmath.Point3i ptXY
int[] keyXy
public void allocMesh(java.lang.String thisID,
Mesh m)
allocMesh in class MeshCollectionpublic void initShape()
initShape in class MeshCollectionprotected void newSg()
protected void clearSg()
public void setProperty(java.lang.String propertyName,
java.lang.Object value,
java.util.BitSet bs)
ShapesetProperty in class MeshCollectionprotected void slabPolygons(java.lang.Object[] slabInfo)
private void setPropertySuper(java.lang.String propertyName,
java.lang.Object value,
java.util.BitSet bs)
public boolean getProperty(java.lang.String property,
java.lang.Object[] data)
getProperty in class MeshCollectionpublic java.lang.Object getProperty(java.lang.String property,
int index)
getProperty in class MeshCollectionprivate java.lang.Object calculateVolumeOrArea(boolean isArea)
public static java.lang.String getPolygonColorData(int ccount,
short[] colixes,
java.util.BitSet bsSlabDisplay)
public java.lang.String getShapeState()
getShapeState in class Shapeprivate void getMeshCommand(java.lang.StringBuffer sb,
int i)
private boolean getScriptBitSets(java.lang.String script,
java.util.BitSet[] bsCmd)
protected void getCapSlabInfo(java.lang.String script)
private void initializeIsosurface()
private void initState()
private void setMesh()
protected void discardTempData(boolean discardAll)
private short getDefaultColix()
private void drawLcaoCartoon(javax.vecmath.Vector3f z,
javax.vecmath.Vector3f x,
javax.vecmath.Vector3f rotAxis,
int nElectrons)
private void createLcaoLobe(javax.vecmath.Vector3f lobeAxis,
float factor,
int nElectrons)
public void invalidateTriangles()
invalidateTriangles in interface MeshDataServerpublic void setOutputStream(BinaryDocument binaryDoc, java.io.OutputStream os)
setOutputStream in interface MeshDataServerpublic void fillMeshData(MeshData meshData, int mode, IsosurfaceMesh mesh)
fillMeshData in interface MeshDataServerpublic void notifySurfaceGenerationCompleted()
notifySurfaceGenerationCompleted in interface MeshDataServerpublic void notifySurfaceMappingCompleted()
notifySurfaceMappingCompleted in interface MeshDataServerprivate void setBsVdw()
public javax.vecmath.Point3f[] calculateGeodesicSurface(java.util.BitSet bsSelected,
float envelopeRadius)
calculateGeodesicSurface in interface MeshDataServerpublic int getSurfacePointIndexAndFraction(float cutoff,
boolean isCutoffAbsolute,
int x,
int y,
int z,
javax.vecmath.Point3i offset,
int vA,
int vB,
float valueA,
float valueB,
javax.vecmath.Point3f pointA,
javax.vecmath.Vector3f edgeVector,
boolean isContourType,
float[] fReturn)
VertexDataServergetSurfacePointIndexAndFraction in interface VertexDataServervA - [0:7]vB - [0:7]edgeVector - vector from A to Bpublic int addVertexCopy(javax.vecmath.Point3f vertexXYZ,
float value,
int assocVertex)
VertexDataServeraddVertexCopy in interface VertexDataServerassocVertex - unique association vertex or -1public int addTriangleCheck(int iA,
int iB,
int iC,
int check,
int check2,
boolean isAbsolute,
int color)
VertexDataServeraddTriangleCheck in interface VertexDataServercheck2 - TODOprotected void setScriptInfo(java.lang.String strCommand)
public void addRequiredFile(java.lang.String fileName)
addRequiredFile in interface MeshDataServerprivate void setJvxlInfo()
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getShapeDetail()
getShapeDetail in class Shapeprotected void addMeshInfo(IsosurfaceMesh mesh, java.util.Map<java.lang.String,java.lang.Object> info)
public float[] getPlane(int x)
getPlane in interface VertexDataServerpublic float getValue(int x,
int y,
int z,
int ptyz)
VertexDataServergetValue in interface VertexDataServerpublic boolean checkObjectHovered(int x,
int y,
java.util.BitSet bsVisible)
checkObjectHovered in class Shapeprivate void hoverKey(int x,
int y)
public java.util.Map<java.lang.String,java.lang.Object> checkObjectClicked(int x,
int y,
int action,
java.util.BitSet bsVisible)
checkObjectClicked in class Shapeprivate boolean isPickable(IsosurfaceMesh m, java.util.BitSet bsVisible)
private void navigate(int dz)
private void setHeading(javax.vecmath.Point3f pt,
javax.vecmath.Vector3f vNorm,
int nSeconds)
private boolean getClosestNormal(IsosurfaceMesh m, javax.vecmath.Point3f toPt, javax.vecmath.Point3f ptRet, javax.vecmath.Vector3f normalRet)
private void getClosestPoint(IsosurfaceMesh m, int imin, javax.vecmath.Point3f toPt, javax.vecmath.Point3f ptRet, javax.vecmath.Vector3f normalRet)
private java.lang.String findValue(int x,
int y,
boolean isPicking,
java.util.BitSet bsVisible)
x - y - isPicking - IGNOREDbsVisible - public void merge(Shape shape)
MeshCollectionmerge in class MeshCollectionpublic java.lang.String getCmd(int index)