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 IsoSolventReader.Edge[] |
aEdges |
private java.util.BitSet[] |
bsAtomMinMax |
private java.util.BitSet[] |
bsLocale |
private java.util.BitSet |
bsSurfaceDone |
private java.util.BitSet |
bsSurfacePoints |
private float |
cavityRadius |
private boolean |
doCalculateTroughs |
private javax.vecmath.Point3f[] |
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 int |
nTest |
protected javax.vecmath.Point3f |
p |
protected javax.vecmath.Point4f |
plane |
private javax.vecmath.Point3f |
ptS1 |
private javax.vecmath.Point3f |
ptS2 |
protected javax.vecmath.Point3f |
ptTemp2 |
protected float |
solventRadius |
private static boolean |
testLinear |
private java.util.List<IsoSolventReader.Edge> |
vEdges |
private java.util.List<IsoSolventReader.Face> |
vFaces |
protected javax.vecmath.Vector3f |
vTemp |
protected javax.vecmath.Vector3f |
vTemp2 |
private javax.vecmath.Vector3f |
vTemp3 |
atomCount, atomData, atomIndex, atomNo, atomProp, atomRadius, atomXyz, bsMyIgnored, bsMySelected, bsNearby, bsSurfaceVoxels, contactPair, doAddHydrogens, doUseIterator, fileDotModel, fileName, firstNearbyAtom, havePlane, margin, maxDistance, modelIndex, myAtomCount, myIndex, nearbyAtomCount, noFaceSpheres, pt0, pt1, ptXyzTemp, ptY0, ptZ0, 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(SurfaceGenerator sg) |
Modifier and Type | Method and Description |
---|---|
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.
|
private float |
checkSpecialVoxel(javax.vecmath.Point3f ptA,
float rAS,
javax.vecmath.Point3f ptB,
float rBS,
float dAB,
javax.vecmath.Point3f ptV) |
(package private) void |
dumpLine(javax.vecmath.Point3f pt1,
javax.vecmath.Tuple3f pt2,
java.lang.String label,
java.lang.String color) |
(package private) void |
dumpLine2(javax.vecmath.Point3f pt1,
javax.vecmath.Point3f pt2,
java.lang.String label,
float d,
java.lang.String color1,
java.lang.String color2) |
(package private) void |
dumpPoint(javax.vecmath.Point3f 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() |
(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,
javax.vecmath.Point3f pointA,
javax.vecmath.Vector3f edgeVector,
int x,
int y,
int z,
int vA0,
int vB0,
float[] fReturn,
javax.vecmath.Point3f 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(javax.vecmath.Point3f pt) |
private void |
markFaceVoxels(boolean firstPass) |
private void |
markToroidVoxels() |
private static void |
mergeLimits(javax.vecmath.Point3i ptA,
javax.vecmath.Point3i ptB,
javax.vecmath.Point3i pt0,
javax.vecmath.Point3i 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, markPlaneVoxels, markSphereVoxels, resetPlane, resetVoxelData, setGridLimitsForAtom, setHeader, setRanges, setVertexSource, setVolumeData, setVolumeForPlane, setVoxel
closeReader, readSurfaceData, readVolumeData, readVoxelDataIndividually, setVolumeDataParams, setVoxelRange, showGridInfo
addTriangleCheck, applyColorScale, colorIsosurface, createIsosurface, discardTempData, excludeMaximumSet, excludeMinimumSet, finalizeMapping, getColorPhaseIndex, getMinMaxMappedValues, getSpanningVectors, getSurfaceAtomIndex, getSurfacePointIndexAndFraction, getValue, gotoAndReadVoxelData, gotoData, initializeMapping, initializeVolumetricData, initPlanes, jvxlUpdateInfo, newVoxelDataCube, readAndSetVolumeParameters, readColorData, resetIsosurface, setBoundingBox, setOutputStream, setVectorAnisotropy, setVertexAnisotropy, setVolumeData, setVolumetricAnisotropy, setVolumetricOriginAnisotropy, slabIsosurface, updateSurfaceData, updateTriangles
private float cavityRadius
private float envelopeRadius
private javax.vecmath.Point3f[] dots
private boolean doCalculateTroughs
private boolean isCavity
private boolean isPocket
protected float solventRadius
private AtomIndexIterator iter
private java.util.BitSet bsSurfacePoints
private java.util.BitSet bsSurfaceDone
private java.util.BitSet[] bsLocale
private java.util.Map<java.lang.String,IsoSolventReader.Edge> htEdges
private java.util.List<IsoSolventReader.Edge> vEdges
private IsoSolventReader.Edge[] aEdges
private java.util.List<IsoSolventReader.Face> vFaces
protected javax.vecmath.Vector3f vTemp
protected javax.vecmath.Point4f plane
protected javax.vecmath.Point3f ptTemp2
private javax.vecmath.Point3f ptS1
private javax.vecmath.Point3f ptS2
protected javax.vecmath.Vector3f vTemp2
private javax.vecmath.Vector3f vTemp3
private float dPX
protected final javax.vecmath.Point3f p
private float maxRadius
private java.util.BitSet[] bsAtomMinMax
private boolean isSurfacePoint
private int iAtomSurface
private static boolean testLinear
protected int nTest
IsoSolventReader(SurfaceGenerator sg)
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, javax.vecmath.Point3f pointA, javax.vecmath.Vector3f edgeVector, int x, int y, int z, int vA0, int vB0, float[] fReturn, javax.vecmath.Point3f ptReturn)
getSurfacePointAndFraction
in class SurfaceReader
cutoff
- isCutoffAbsolute
- valueA
- valueB
- pointA
- edgeVector
- fReturn
- ptReturn
- x
- TODOy
- TODOz
- TODOpublic int addVertexCopy(javax.vecmath.Point3f 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 static void mergeLimits(javax.vecmath.Point3i ptA, javax.vecmath.Point3i ptB, javax.vecmath.Point3i pt0, javax.vecmath.Point3i pt1)
private float checkSpecialVoxel(javax.vecmath.Point3f ptA, float rAS, javax.vecmath.Point3f ptB, float rBS, float dAB, javax.vecmath.Point3f 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)
void dumpLine(javax.vecmath.Point3f pt1, javax.vecmath.Tuple3f pt2, java.lang.String label, java.lang.String color)
void dumpLine2(javax.vecmath.Point3f pt1, javax.vecmath.Point3f pt2, java.lang.String label, float d, java.lang.String color1, java.lang.String color2)
void dumpPoint(javax.vecmath.Point3f pt, java.lang.String label, java.lang.String color)
public float getValueAtPoint(javax.vecmath.Point3f pt)
getValueAtPoint
in class SurfaceReader
public float[] getPlane(int x)
getPlane
in interface VertexDataServer
getPlane
in class SurfaceReader