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, voxelSource
allowMapData, atomDataServer, dataType, maxGrid, point, precalculateVoxelData, ptsPerAngstrom, useOriginStepsPoints
allowSigma, 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, unsetVoxelData2
closeReader, initVDR, readSurfaceData, readSurfaceDataVDR, readVolumeData, readVoxelDataIndividually, setVolumeDataParams, setVoxelRange, showGridInfo
addTriangleCheck, 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, updateTriangles
private 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)
SurfaceReader
init
in class SurfaceReader
protected boolean readVolumeParameters(boolean isMapData)
readVolumeParameters
in class VolumeDataReader
protected void setup(boolean isMapData)
setup
in class AtomDataReader
protected void generateCube()
generateCube
in class VolumeDataReader
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)
getSurfacePointAndFraction
in class SurfaceReader
cutoff
- isCutoffAbsolute
- valueA
- valueB
- pointA
- edgeVector
- fReturn
- ptReturn
- public int addVertexCopy(P3 vertexXYZ, float value, int assocVertex)
VertexDataServer
addVertexCopy
in interface VertexDataServer
addVertexCopy
in class SurfaceReader
assocVertex
- unique association vertex or -1public void selectPocket(boolean doExclude)
selectPocket
in class SurfaceReader
protected void postProcessVertices()
postProcessVertices
in class SurfaceReader
private 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 AtomDataReader
void 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 SurfaceReader
getSource
- TODOpublic float[] getPlane(int x)
getPlane
in interface VertexDataServer
getPlane
in class SurfaceReader