public abstract class SurfaceReader extends java.lang.Object implements VertexDataServer
Modifier and Type | Field and Description |
---|---|
protected boolean |
allowSigma |
(package private) static float |
ANGSTROMS_PER_BOHR |
protected float[] |
anisotropy |
private float |
assocCutoff |
protected javajs.util.P3 |
center |
protected char |
cJvxlEdgeNaN |
protected int |
colorFractionBase |
protected int |
colorFractionRange |
private static java.lang.String[] |
colorPhases |
protected int |
contourVertexCount |
protected float |
dataMax |
protected float |
dataMean |
protected float |
dataMin |
(package private) static float |
defaultCutoff |
(package private) static float |
defaultMappedDataMax |
(package private) static float |
defaultMappedDataMin |
protected javajs.util.M3 |
eccentricityMatrix |
protected javajs.util.M3 |
eccentricityMatrixInverse |
protected float |
eccentricityRatio |
protected float |
eccentricityScale |
private int |
edgeCount |
private java.lang.String |
edgeData |
protected int |
edgeFractionBase |
protected int |
edgeFractionRange |
protected javajs.util.SB |
fractionData |
(package private) boolean |
hasColorData |
private boolean |
haveSetAnisotropy |
protected boolean |
haveSurfaceAtoms |
protected boolean |
isAnisotropic |
protected boolean |
isEccentric |
protected boolean |
isJvxl |
protected boolean |
isPeriodic |
protected boolean |
isProgressive |
protected boolean |
isQuiet |
protected boolean |
isXLowToHigh |
protected java.lang.String |
jvxlColorDataRead |
protected float |
jvxlCutoff |
protected JvxlData |
jvxlData |
protected boolean |
jvxlDataIs2dContour |
protected boolean |
jvxlDataIsColorDensity |
protected boolean |
jvxlDataIsColorMapped |
protected boolean |
jvxlDataIsPrecisionColor |
protected java.lang.String |
jvxlEdgeDataRead |
protected javajs.util.SB |
jvxlFileHeaderBuffer |
protected int |
jvxlNSurfaceInts |
protected BS |
jvxlVoxelBitSet |
protected MarchingCubes |
marchingCubes |
protected MarchingSquares |
marchingSquares |
protected MeshData |
meshData |
protected MeshDataServer |
meshDataServer |
protected float[] |
minMax |
protected long |
nBytes |
protected int |
nDataPoints |
protected int |
nPointsX |
protected int |
nPointsY |
protected int |
nPointsZ |
protected Parameters |
params |
protected javajs.util.P3 |
ptTemp |
protected QuantumPlaneCalculationInterface |
qpc |
protected SurfaceGenerator |
sg |
(package private) boolean |
vertexDataOnly |
(package private) VolumeData |
volumeData |
protected javajs.util.P3 |
volumetricOrigin |
protected javajs.util.V3[] |
volumetricVectors |
protected int[] |
voxelCounts |
protected float[][][] |
voxelData |
protected javajs.util.P3 |
xyzMax |
protected javajs.util.P3 |
xyzMin |
protected int |
yzCount |
protected float[][] |
yzPlanes |
Constructor and Description |
---|
SurfaceReader() |
Modifier and Type | Method and Description |
---|---|
int |
addTriangleCheck(int iA,
int iB,
int iC,
int check,
int iContour,
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)
|
protected int |
addVC(javajs.util.T3 vertexXYZ,
float value,
int assocVertex,
boolean asCopy) |
int |
addVertexCopy(javajs.util.T3 vertexXYZ,
float value,
int assocVertex,
boolean asCopy)
addVertexCopy is used by the Marching Squares algorithm to
uniquely identify a new vertex when an edge is crossed in the 2D plane.
|
(package private) void |
applyColorScale() |
protected abstract void |
closeReader() |
private void |
colorData() |
(package private) void |
colorIsosurface() |
(package private) boolean |
createIsosurface(boolean justForPlane) |
(package private) void |
discardTempData(boolean discardAll) |
protected void |
discardTempDataSR(boolean discardAll) |
(package private) void |
excludeMaximumSet() |
(package private) void |
excludeMinimumSet() |
protected void |
finalizeMapping() |
private void |
generateSurfaceData() |
(package private) static int |
getColorPhaseIndex(java.lang.String color) |
float[] |
getMinMaxMappedValues(boolean haveData) |
private float |
getPhase(javajs.util.T3 pt) |
float[] |
getPlane(int x) |
protected float[] |
getPlane2(int x) |
protected float |
getSPF(float cutoff,
boolean isCutoffAbsolute,
float valueA,
float valueB,
javajs.util.T3 pointA,
javajs.util.V3 edgeVector,
int x,
int y,
int z,
int vA,
int vB,
float[] fReturn,
javajs.util.T3 ptReturn) |
int |
getSurfaceAtomIndex() |
protected float |
getSurfacePointAndFraction(float cutoff,
boolean isCutoffAbsolute,
float valueA,
float valueB,
javajs.util.T3 pointA,
javajs.util.V3 edgeVector,
int x,
int y,
int z,
int vA,
int vB,
float[] fReturn,
javajs.util.T3 ptReturn) |
int |
getSurfacePointIndexAndFraction(float cutoff,
boolean isCutoffAbsolute,
int x,
int y,
int z,
javajs.util.P3i offset,
int vA,
int vB,
float valueA,
float valueB,
javajs.util.T3 pointA,
javajs.util.V3 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
|
protected float |
getValue2(int x,
int y,
int z,
int ptyz) |
float |
getValueAtPoint(javajs.util.T3 pt,
boolean getSource) |
protected boolean |
gotoAndReadVoxelData(boolean isMapData) |
protected void |
gotoData(int n,
int nPoints) |
(package private) abstract void |
init(SurfaceGenerator sg)
implemented in SurfaceFileReader and
|
(package private) void |
initializeMapping() |
(package private) void |
initializeVolumetricData() |
(package private) void |
initPlanes() |
(package private) void |
initSR(SurfaceGenerator sg) |
(package private) void |
jvxlUpdateInfo() |
protected void |
newVoxelDataCube() |
protected void |
postProcessVertices() |
(package private) boolean |
readAndSetVolumeParameters(boolean isMapData) |
protected java.lang.String |
readColorData() |
protected abstract void |
readSurfaceData(boolean isMapData) |
protected abstract boolean |
readVolumeData(boolean isMapData) |
protected abstract boolean |
readVolumeParameters(boolean isMapData) |
(package private) void |
resetIsosurface() |
void |
selectPocket(boolean doExclude) |
protected void |
setBBox(javajs.util.T3 pt,
float margin) |
private void |
setBBoxAll() |
protected void |
setOutputChannel(javajs.util.OC out) |
protected void |
setVectorAnisotropy(javajs.util.T3 v) |
protected void |
setVertexAnisotropy(javajs.util.T3 pt) |
protected void |
setVolumeDataV(VolumeData v) |
protected void |
setVolumetricAnisotropy() |
protected void |
setVolumetricOriginAnisotropy() |
void |
slabIsosurface(javajs.util.Lst<java.lang.Object[]> slabInfo) |
(package private) void |
updateSurfaceData() |
(package private) void |
updateTriangles() |
protected SurfaceGenerator sg
protected MeshDataServer meshDataServer
protected Parameters params
protected MeshData meshData
protected JvxlData jvxlData
VolumeData volumeData
private java.lang.String edgeData
protected boolean haveSurfaceAtoms
protected boolean allowSigma
protected boolean isProgressive
protected boolean isXLowToHigh
private float assocCutoff
protected boolean isQuiet
protected boolean isPeriodic
boolean vertexDataOnly
boolean hasColorData
protected float dataMin
protected float dataMax
protected float dataMean
protected javajs.util.P3 xyzMin
protected javajs.util.P3 xyzMax
protected javajs.util.P3 center
protected float[] anisotropy
protected boolean isAnisotropic
protected javajs.util.M3 eccentricityMatrix
protected javajs.util.M3 eccentricityMatrixInverse
protected boolean isEccentric
protected float eccentricityScale
protected float eccentricityRatio
static final float ANGSTROMS_PER_BOHR
static final float defaultMappedDataMin
static final float defaultMappedDataMax
static final float defaultCutoff
private int edgeCount
protected javajs.util.P3 volumetricOrigin
protected javajs.util.V3[] volumetricVectors
protected int[] voxelCounts
protected float[][][] voxelData
protected long nBytes
protected int nDataPoints
protected int nPointsX
protected int nPointsY
protected int nPointsZ
protected boolean isJvxl
protected int edgeFractionBase
protected int edgeFractionRange
protected int colorFractionBase
protected int colorFractionRange
protected javajs.util.SB jvxlFileHeaderBuffer
protected javajs.util.SB fractionData
protected java.lang.String jvxlEdgeDataRead
protected java.lang.String jvxlColorDataRead
protected BS jvxlVoxelBitSet
protected boolean jvxlDataIsColorMapped
protected boolean jvxlDataIsPrecisionColor
protected boolean jvxlDataIs2dContour
protected boolean jvxlDataIsColorDensity
protected float jvxlCutoff
protected int jvxlNSurfaceInts
protected char cJvxlEdgeNaN
protected int contourVertexCount
protected MarchingSquares marchingSquares
protected MarchingCubes marchingCubes
protected float[][] yzPlanes
protected int yzCount
protected QuantumPlaneCalculationInterface qpc
protected final javajs.util.P3 ptTemp
private static final java.lang.String[] colorPhases
protected float[] minMax
private boolean haveSetAnisotropy
abstract void init(SurfaceGenerator sg)
sg
- void initSR(SurfaceGenerator sg)
protected abstract void closeReader()
protected void setOutputChannel(javajs.util.OC out)
out
- protected void newVoxelDataCube()
protected void setVolumeDataV(VolumeData v)
protected abstract boolean readVolumeParameters(boolean isMapData)
protected abstract boolean readVolumeData(boolean isMapData)
void jvxlUpdateInfo()
boolean readAndSetVolumeParameters(boolean isMapData)
boolean createIsosurface(boolean justForPlane)
void resetIsosurface()
void discardTempData(boolean discardAll)
protected void discardTempDataSR(boolean discardAll)
void initializeVolumetricData()
protected abstract void readSurfaceData(boolean isMapData) throws java.lang.Exception
java.lang.Exception
protected boolean gotoAndReadVoxelData(boolean isMapData)
protected void gotoData(int n, int nPoints) throws java.lang.Exception
n
- nPoints
- java.lang.Exception
protected java.lang.String readColorData()
public float[] getPlane(int x)
getPlane
in interface VertexDataServer
protected float[] getPlane2(int x)
void initPlanes()
public float getValue(int x, int y, int z, int ptyz)
VertexDataServer
getValue
in interface VertexDataServer
protected float getValue2(int x, int y, int z, int ptyz)
private void generateSurfaceData()
protected void postProcessVertices()
public int getSurfacePointIndexAndFraction(float cutoff, boolean isCutoffAbsolute, int x, int y, int z, javajs.util.P3i offset, int vA, int vB, float valueA, float valueB, javajs.util.T3 pointA, javajs.util.V3 edgeVector, boolean isContourType, float[] fReturn)
VertexDataServer
getSurfacePointIndexAndFraction
in interface VertexDataServer
vA
- [0:7]vB
- [0:7]edgeVector
- vector from A to Bprotected float getSurfacePointAndFraction(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, javajs.util.T3 pointA, javajs.util.V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, javajs.util.T3 ptReturn)
protected float getSPF(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, javajs.util.T3 pointA, javajs.util.V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, javajs.util.T3 ptReturn)
cutoff
- isCutoffAbsolute
- valueA
- valueB
- pointA
- edgeVector
- x
- TODOy
- TODOz
- TODOvA
- vB
- fReturn
- ptReturn
- public int addVertexCopy(javajs.util.T3 vertexXYZ, float value, int assocVertex, boolean asCopy)
VertexDataServer
addVertexCopy
in interface VertexDataServer
assocVertex
- unique association vertex or -1protected int addVC(javajs.util.T3 vertexXYZ, float value, int assocVertex, boolean asCopy)
public int addTriangleCheck(int iA, int iB, int iC, int check, int iContour, boolean isAbsolute, int color)
VertexDataServer
addTriangleCheck
in interface VertexDataServer
iContour
- TODOvoid colorIsosurface()
void applyColorScale()
private void colorData()
static int getColorPhaseIndex(java.lang.String color)
private float getPhase(javajs.util.T3 pt)
public float[] getMinMaxMappedValues(boolean haveData)
void updateTriangles()
void updateSurfaceData()
public void selectPocket(boolean doExclude)
doExclude
- void excludeMinimumSet()
void excludeMaximumSet()
public void slabIsosurface(javajs.util.Lst<java.lang.Object[]> slabInfo)
protected void setVertexAnisotropy(javajs.util.T3 pt)
protected void setVectorAnisotropy(javajs.util.T3 v)
protected void setVolumetricAnisotropy()
protected void setVolumetricOriginAnisotropy()
private void setBBoxAll()
protected void setBBox(javajs.util.T3 pt, float margin)
public float getValueAtPoint(javajs.util.T3 pt, boolean getSource)
pt
- getSource
- TODOvoid initializeMapping()
protected void finalizeMapping()
public int getSurfaceAtomIndex()