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 BS[] |
bsAtomMinMax |
private BS[] |
bsLocale |
private BS |
bsSurfaceDone |
private BS |
bsSurfacePoints |
private float |
cavityRadius |
private boolean |
doCalculateTroughs |
private P3[] |
dots |
private float |
dPX |
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 |
private float |
maxRadius |
protected P3 |
p |
protected P4 |
plane |
private P3 |
ptS1 |
private P3 |
ptS2 |
protected P3 |
ptTemp2 |
protected float |
solventRadius |
private static boolean |
testLinear |
private JmolList<IsoSolventReader.Edge> |
vEdges |
private JmolList<IsoSolventReader.Face> |
vFaces |
protected V3 |
vTemp |
protected V3 |
vTemp2 |
private V3 |
vTemp3 |
atomCount, atomData, atomIndex, atomNo, atomProp, atomRadius, atomXyz, bsMyIgnored, bsMySelected, bsNearby, bsSurfaceVoxels, contactPair, doAddHydrogens, doUseIterator, fileDotModel, fileName, firstNearbyAtom, haveOneProperty, havePlane, margin, maxDistance, modelIndex, myAtomCount, myIndex, nearbyAtomCount, noFaceSpheres, pt0, pt1, ptXyzTemp, ptY0, ptZ0, theProperty, thisAtomSet, thisPlane, thisX, validSpheres, voxelSourceallowMapData, atomDataServer, 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, 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(P3 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.
|
private float |
checkSpecialVoxel(P3 ptA,
float rAS,
P3 ptB,
float rBS,
float dAB,
P3 ptV) |
protected IsoSolventReader.Edge |
findEdge(int i,
int j) |
protected void |
generateCube() |
private void |
generateSolventCavity() |
private void |
generateSolventCube() |
private void |
getEdges() |
private void |
getFaces() |
(package private) void |
getMaxRadius() |
float[] |
getPlane(int x) |
protected double |
getPointP(int ia,
int ib) |
private boolean |
getSolventPoints(int ia,
int ib,
int ic) |
protected float |
getSurfacePointAndFraction(float cutoff,
boolean isCutoffAbsolute,
float valueA,
float valueB,
P3 pointA,
V3 edgeVector,
int x,
int y,
int z,
int vA0,
int vB0,
float[] fReturn,
P3 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]
MSMS:
msms -if ttest.xyzrn -of ttest -density 5
MSMS 2.6.1 started on Local PC
Copyright M.F.
|
float |
getValueAtPoint(P3 pt,
boolean getSource) |
(package private) void |
init(SurfaceGenerator sg)
implemented in SurfaceFileReader and
|
private void |
markFaceVoxels(boolean firstPass) |
private void |
markToroidVoxels() |
private static void |
mergeLimits(P3i ptA,
P3i ptB,
P3i pt0,
P3i pt1) |
protected void |
postProcessVertices() |
protected boolean |
readVolumeParameters(boolean isMapData) |
void |
selectPocket(boolean doExclude) |
protected void |
setup(boolean isMapData) |
private float |
solventDistance(float rAS,
float rBS,
float dAB,
float dAV,
float dBV) |
protected void |
unsetVoxelData() |
private boolean |
validateFace(IsoSolventReader.Face f) |
private static boolean |
voxelIsInTrough(float dXC,
float rAC2,
float rBC,
float dAB,
float dAX) |
fixTitleLine, getAtomMinMax, getAtoms, initADR, markPlaneVoxels, markSphereVoxels, resetPlane, resetVoxelData, setGridLimitsForAtom, setHeader, setRanges, setup2, setVertexSource, setVolumeData, setVolumeDataADR, setVolumeForPlane, setVoxel, unsetVoxelData2closeReader, initVDR, readSurfaceData, readSurfaceDataVDR, readVolumeData, readVoxelDataIndividually, setVolumeDataParams, setVoxelRange, showGridInfoaddTriangleCheck, addVC, applyColorScale, colorIsosurface, createIsosurface, discardTempData, discardTempDataSR, excludeMaximumSet, excludeMinimumSet, finalizeMapping, getColorPhaseIndex, getMinMaxMappedValues, getPlane2, getSpanningVectors, getSPF, getSurfaceAtomIndex, getSurfacePointIndexAndFraction, getValue, getValue2, gotoAndReadVoxelData, gotoData, initializeMapping, initializeVolumetricData, initPlanes, initSR, jvxlUpdateInfo, newVoxelDataCube, readAndSetVolumeParameters, readColorData, resetIsosurface, setBBox, setOutputStream, setVectorAnisotropy, setVertexAnisotropy, setVolumeDataV, setVolumetricAnisotropy, setVolumetricOriginAnisotropy, slabIsosurface, updateSurfaceData, updateTrianglesprivate float cavityRadius
private float envelopeRadius
private P3[] dots
private boolean doCalculateTroughs
private boolean isCavity
private boolean isPocket
protected float solventRadius
private AtomIndexIterator iter
private BS bsSurfacePoints
private BS bsSurfaceDone
private BS[] bsLocale
private java.util.Map<java.lang.String,IsoSolventReader.Edge> htEdges
private JmolList<IsoSolventReader.Edge> vEdges
private JmolList<IsoSolventReader.Face> vFaces
protected V3 vTemp
protected P4 plane
protected P3 ptTemp2
private P3 ptS1
private P3 ptS2
protected V3 vTemp2
private V3 vTemp3
private float dPX
protected final P3 p
private float maxRadius
private BS[] bsAtomMinMax
private boolean isSurfacePoint
private int iAtomSurface
private static boolean testLinear
void init(SurfaceGenerator sg)
SurfaceReaderinit in class SurfaceReaderprotected 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,
P3 pointA,
V3 edgeVector,
int x,
int y,
int z,
int vA0,
int vB0,
float[] fReturn,
P3 ptReturn)
getSurfacePointAndFraction in class SurfaceReadercutoff - isCutoffAbsolute - valueA - valueB - pointA - edgeVector - fReturn - ptReturn - public int addVertexCopy(P3 vertexXYZ, float value, int assocVertex)
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 boolean getSolventPoints(int ia,
int ib,
int ic)
private boolean validateFace(IsoSolventReader.Face f)
private void markFaceVoxels(boolean firstPass)
private void markToroidVoxels()
protected void unsetVoxelData()
unsetVoxelData in class AtomDataReadervoid getMaxRadius()
private float checkSpecialVoxel(P3 ptA, float rAS, P3 ptB, float rBS, float dAB, P3 ptV)
private static boolean voxelIsInTrough(float dXC,
float rAC2,
float rBC,
float dAB,
float dAX)
private float solventDistance(float rAS,
float rBS,
float dAB,
float dAV,
float dBV)
protected double getPointP(int ia,
int ib)
public float getValueAtPoint(P3 pt, boolean getSource)
getValueAtPoint in class SurfaceReadergetSource - TODOpublic float[] getPlane(int x)
getPlane in interface VertexDataServergetPlane in class SurfaceReader