org.jmol.jvxl.readers
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 BitSet[] |
bsAtomMinMax |
private BitSet[] |
bsLocale |
private BitSet |
bsSurfaceDone |
private BitSet |
bsSurfacePoints |
private float |
cavityRadius |
private boolean |
doCalculateTroughs |
private Point3f[] |
dots |
private float |
dPX |
private float |
envelopeRadius |
private Map<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 Point3f |
p |
protected Point4f |
plane |
private Point3f |
ptS1 |
private Point3f |
ptS2 |
protected Point3f |
ptTemp2 |
protected float |
solventRadius |
private static boolean |
testLinear |
private List<IsoSolventReader.Edge> |
vEdges |
private List<IsoSolventReader.Face> |
vFaces |
protected Vector3f |
vTemp |
protected Vector3f |
vTemp2 |
private 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(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(Point3f ptA,
float rAS,
Point3f ptB,
float rBS,
float dAB,
Point3f ptV) |
(package private) void |
dumpLine(Point3f pt1,
Tuple3f pt2,
String label,
String color) |
(package private) void |
dumpLine2(Point3f pt1,
Point3f pt2,
String label,
float d,
String color1,
String color2) |
(package private) void |
dumpPoint(Point3f pt,
String label,
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,
Point3f pointA,
Vector3f edgeVector,
int x,
int y,
int z,
int vA0,
int vB0,
float[] fReturn,
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(Point3f pt) |
private void |
markFaceVoxels(boolean firstPass) |
private void |
markToroidVoxels() |
private static void |
mergeLimits(Point3i ptA,
Point3i ptB,
Point3i pt0,
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, 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 Point3f[] dots
private boolean doCalculateTroughs
private boolean isCavity
private boolean isPocket
protected float solventRadius
private AtomIndexIterator iter
private BitSet bsSurfacePoints
private BitSet bsSurfaceDone
private BitSet[] bsLocale
private Map<String,IsoSolventReader.Edge> htEdges
private List<IsoSolventReader.Edge> vEdges
private IsoSolventReader.Edge[] aEdges
private List<IsoSolventReader.Face> vFaces
protected Vector3f vTemp
protected Point4f plane
protected Point3f ptTemp2
private Point3f ptS1
private Point3f ptS2
protected Vector3f vTemp2
private Vector3f vTemp3
private float dPX
protected final Point3f p
private float maxRadius
private 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, Point3f pointA, Vector3f edgeVector, int x, int y, int z, int vA0, int vB0, float[] fReturn, Point3f ptReturn)
getSurfacePointAndFraction
in class SurfaceReader
cutoff
- isCutoffAbsolute
- valueA
- valueB
- pointA
- edgeVector
- fReturn
- ptReturn
- x
- TODOy
- TODOz
- TODOpublic int addVertexCopy(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 float checkSpecialVoxel(Point3f ptA, float rAS, Point3f ptB, float rBS, float dAB, 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 dumpLine2(Point3f pt1, Point3f pt2, String label, float d, String color1, String color2)
public float getValueAtPoint(Point3f pt)
getValueAtPoint
in class SurfaceReader
public float[] getPlane(int x)
getPlane
in interface VertexDataServer
getPlane
in class SurfaceReader