class IsoSolventReader extends AtomDataReader
| Modifier and Type | Class and Description |
|---|---|
private class |
IsoSolventReader.Edge |
private class |
IsoSolventReader.Face |
| Modifier and Type | Field and Description |
|---|---|
private javajs.util.BS[] |
bsAtomMinMax |
private javajs.util.BS[] |
bsLocale |
private javajs.util.BS |
bsSurfaceDone |
private javajs.util.BS |
bsSurfacePoints |
private float |
cavityRadius |
private float |
dAB |
private float |
dAB2 |
private boolean |
doCalculateTroughs |
private javajs.util.P3[] |
dots |
private float |
ecosASB2 |
private float |
envelopeRadius |
private java.util.Map<java.lang.String,IsoSolventReader.Edge> |
htEdges |
private int |
iAtomSurface |
private boolean |
isCavity |
private boolean |
isPocket |
private boolean |
isSurfacePoint |
private AtomIndexIterator |
iter |
(package private) int |
nTest |
protected javajs.util.P3 |
p |
protected javajs.util.P4 |
plane |
private javajs.util.P3 |
ptS1 |
private javajs.util.P3 |
ptS2 |
protected javajs.util.P3 |
ptTemp2 |
private float |
rAS |
private float |
rAS2 |
private float |
rBS |
private float |
rBS2 |
private static boolean |
testLinear |
protected javajs.util.Lst<IsoSolventReader.Edge> |
vEdges |
private javajs.util.Lst<IsoSolventReader.Face> |
vFaces |
protected javajs.util.V3 |
vTemp |
protected javajs.util.V3 |
vTemp2 |
ac, atomData, atomIndex, atomNo, atomProp, atomRadius, atomXyzTruncated, bsMyIgnored, bsMySelected, bsNearby, bsSurfaceVoxels, contactPair, doAddHydrogens, doUseIterator, fileDotModel, fileName, firstNearbyAtom, haveOneProperty, havePlane, margin, maxDistance, maxRS, modelIndex, myAtomCount, myIndex, nearbyAtomCount, noFaceSpheres, pt0, pt1, ptV, ptY0, ptZ0, rs, rs2, sr, theProperty, thisAtomSet, thisPlane, thisX, validSpheres, vl0, vl1, vl2, voxelSourceallowMapData, dataType, maxGrid, point, precalculateVoxelData, ptsPerAngstrom, useOriginStepsPointsallowSigma, ANGSTROMS_PER_BOHR, anisotropy, center, cJvxlEdgeNaN, colorFractionBase, colorFractionRange, contourVertexCount, dataMax, dataMean, dataMin, defaultCutoff, defaultMappedDataMax, defaultMappedDataMin, eccentricityMatrix, eccentricityMatrixInverse, eccentricityRatio, eccentricityScale, edgeFractionBase, edgeFractionRange, fractionData, hasColorData, haveSurfaceAtoms, isAnisotropic, isEccentric, isJvxl, isPeriodic, isProgressive, isQuiet, isXLowToHigh, jvxlColorDataRead, jvxlCutoff, jvxlData, jvxlDataIs2dContour, jvxlDataIsColorDensity, jvxlDataIsColorMapped, jvxlDataIsPrecisionColor, jvxlEdgeDataRead, jvxlFileHeaderBuffer, jvxlNSurfaceInts, jvxlVoxelBitSet, marchingCubes, marchingSquares, meshData, meshDataServer, minMax, nBytes, nDataPoints, nPointsX, nPointsY, nPointsZ, params, ptTemp, qpc, sg, vertexDataOnly, volumeData, volumetricOrigin, volumetricVectors, voxelCounts, voxelData, xyzMax, xyzMin, yzCount, yzPlanes| Constructor and Description |
|---|
IsoSolventReader() |
| Modifier and Type | Method and Description |
|---|---|
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.
|
private float |
checkSpecialVoxel(javajs.util.P3 ptA,
javajs.util.P3 ptB,
javajs.util.P3 ptV) |
(package private) void |
discardTempData(boolean discardAll) |
(package private) void |
dumpLine(javajs.util.P3 pt1,
javajs.util.T3 pt2,
java.lang.String label,
java.lang.String color) |
(package private) void |
dumpLine2(javajs.util.P3 pt1,
javajs.util.P3 pt2,
java.lang.String label,
float d,
java.lang.String color1,
java.lang.String color2) |
(package private) void |
dumpPoint(javajs.util.P3 pt,
java.lang.String label,
java.lang.String color) |
protected IsoSolventReader.Edge |
findEdge(int i,
int j) |
protected void |
generateCube() |
private void |
generateSolventCavity() |
private void |
generateSolventCube() |
private void |
getEdges() |
private void |
getFaces() |
float[] |
getPlane(int x) |
private boolean |
getSolventPoints(IsoSolventReader.Edge edge,
int ia,
int ib,
int ic) |
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 vA0,
int vB0,
float[] fReturn,
javajs.util.T3 ptReturn)
TEST: alternative EXACT position of fraction for spherical MarchingCubes
FOR: ttest.xyz:
2
isosurface molecular test showing discontinuities
C -2.70 0 0
C 2.75 0 0
RESULT:
LINEAR (points slightly within R):
$ isosurface resolution 5 volume area solvent 1.5 full
isosurface1 created with cutoff=0.0; number of isosurfaces = 1
isosurfaceArea = [75.06620391572324]
isosurfaceVolume = [41.639681683494324]
NONLINEAR:
$ isosurface resolution 5 volume area solvent 1.5 full
isosurface1 created with cutoff=0.0; number of isosurfaces = 1
isosurfaceArea = [75.11873783245028]
isosurfaceVolume = [41.727027252180655]
revision 3/16/2014:
isosurfaceArea = [75.13146821881998]
isosurfaceVolume = [41.74598178064965]
MSMS:
msms -if ttest.xyzrn -of ttest -density 5
MSMS 2.6.1 started on Local PC
Copyright M.F.
|
float |
getValueAtPoint(javajs.util.T3 pt,
boolean getSource) |
(package private) void |
init(SurfaceGenerator sg)
implemented in SurfaceFileReader and
|
private void |
markFaceVoxels(boolean firstPass) |
private void |
markToroidVoxels() |
protected void |
postProcessVertices() |
protected boolean |
readVolumeParameters(boolean isMapData) |
void |
selectPocket(boolean doExclude) |
protected void |
setup(boolean isMapData) |
private float |
solventDistance(float rAS,
float rAS2,
float rBS2,
float dAV,
float dAV2,
float dBV2) |
protected void |
unsetVoxelData() |
private IsoSolventReader.Face |
validateFace(int ia,
int ib,
int ic,
IsoSolventReader.Edge edge,
javajs.util.P3 ptS) |
getAtomMinMax, getAtoms, initADR, markPlaneVoxels, markSphereVoxels, resetPlane, resetVoxelData, setGridLimitsForAtom, setHeader, setRadii, setRanges, setup2, setVertexSource, setVolumeData, setVolumeDataADR, setVolumeForPlane, setVoxel, unsetVoxelData2closeReader, initVDR, readSurfaceData, readSurfaceDataVDR, readVolumeData, readVoxelDataIndividually, setVolumeDataParams, setVoxelRange, showGridInfoaddTriangleCheck, addVC, applyColorScale, colorIsosurface, createIsosurface, discardTempDataSR, excludeMaximumSet, excludeMinimumSet, finalizeMapping, getColorPhaseIndex, getMinMaxMappedValues, getPlaneSR, getSPF, getSurfaceAtomIndex, getSurfacePointIndexAndFraction, getValue, getValue2, gotoAndReadVoxelData, gotoData, initializeMapping, initializeVolumetricData, initPlanes, initSR, jvxlUpdateInfo, newVoxelDataCube, readAndSetVolumeParameters, readColorData, resetIsosurface, setBBox, setOutputChannel, setVectorAnisotropy, setVertexAnisotropy, setVolumeDataV, setVolumetricAnisotropy, setVolumetricOriginAnisotropy, slabIsosurface, updateSurfaceData, updateTrianglesprivate float cavityRadius
private float envelopeRadius
private javajs.util.P3[] dots
private boolean doCalculateTroughs
private boolean isCavity
private boolean isPocket
private AtomIndexIterator iter
private javajs.util.BS bsSurfacePoints
private javajs.util.BS bsSurfaceDone
private javajs.util.BS[] bsLocale
private java.util.Map<java.lang.String,IsoSolventReader.Edge> htEdges
protected javajs.util.Lst<IsoSolventReader.Edge> vEdges
private javajs.util.Lst<IsoSolventReader.Face> vFaces
private final javajs.util.P3 ptS1
private final javajs.util.P3 ptS2
protected final javajs.util.V3 vTemp
protected final javajs.util.P4 plane
protected final javajs.util.P3 ptTemp2
protected final javajs.util.V3 vTemp2
protected final javajs.util.P3 p
private static boolean testLinear
private javajs.util.BS[] bsAtomMinMax
private boolean isSurfacePoint
private int iAtomSurface
int nTest
private float rAS
private float rBS
private float rAS2
private float rBS2
private float dAB
private float dAB2
private float ecosASB2
void init(SurfaceGenerator sg)
SurfaceReaderinit in class VolumeDataReaderprotected boolean readVolumeParameters(boolean isMapData)
readVolumeParameters in class VolumeDataReaderprotected void setup(boolean isMapData)
setup in class AtomDataReaderprotected void generateCube()
generateCube in class VolumeDataReaderprotected 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 vA0,
int vB0,
float[] fReturn,
javajs.util.T3 ptReturn)
getSurfacePointAndFraction in class SurfaceReadercutoff - isCutoffAbsolute - valueA - valueB - pointA - edgeVector - fReturn - ptReturn - public int addVertexCopy(javajs.util.T3 vertexXYZ,
float value,
int assocVertex,
boolean asCopy)
VertexDataServeraddVertexCopy in interface VertexDataServeraddVertexCopy in class SurfaceReaderassocVertex - unique association vertex or -1public void selectPocket(boolean doExclude)
selectPocket in class SurfaceReaderprotected void postProcessVertices()
postProcessVertices in class SurfaceReaderprivate void generateSolventCavity()
private void generateSolventCube()
private void getEdges()
protected IsoSolventReader.Edge findEdge(int i, int j)
private void getFaces()
private IsoSolventReader.Face validateFace(int ia, int ib, int ic, IsoSolventReader.Edge edge, javajs.util.P3 ptS)
private void markFaceVoxels(boolean firstPass)
private void markToroidVoxels()
protected void unsetVoxelData()
unsetVoxelData in class AtomDataReaderprivate boolean getSolventPoints(IsoSolventReader.Edge edge, int ia, int ib, int ic)
private float checkSpecialVoxel(javajs.util.P3 ptA,
javajs.util.P3 ptB,
javajs.util.P3 ptV)
private float solventDistance(float rAS,
float rAS2,
float rBS2,
float dAV,
float dAV2,
float dBV2)
void dumpLine(javajs.util.P3 pt1,
javajs.util.T3 pt2,
java.lang.String label,
java.lang.String color)
void dumpLine2(javajs.util.P3 pt1,
javajs.util.P3 pt2,
java.lang.String label,
float d,
java.lang.String color1,
java.lang.String color2)
void dumpPoint(javajs.util.P3 pt,
java.lang.String label,
java.lang.String color)
public float getValueAtPoint(javajs.util.T3 pt,
boolean getSource)
getValueAtPoint in class SurfaceReadergetSource - TODOvoid discardTempData(boolean discardAll)
discardTempData in class SurfaceReaderpublic float[] getPlane(int x)
getPlane in interface VertexDataServergetPlane in class SurfaceReader