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 javajs.util.P3[] |
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 javajs.util.P3 |
p |
protected javajs.util.P4 |
plane |
private javajs.util.P3 |
ptS1 |
private javajs.util.P3 |
ptS2 |
protected javajs.util.P3 |
ptTemp2 |
protected float |
solventRadius |
private static boolean |
testLinear |
private javajs.util.List<IsoSolventReader.Edge> |
vEdges |
private javajs.util.List<IsoSolventReader.Face> |
vFaces |
protected javajs.util.V3 |
vTemp |
protected javajs.util.V3 |
vTemp2 |
private javajs.util.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(javajs.util.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(javajs.util.P3 ptA,
float rAS,
javajs.util.P3 ptB,
float rBS,
float dAB,
javajs.util.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,
javajs.util.P3 pointA,
javajs.util.V3 edgeVector,
int x,
int y,
int z,
int vA0,
int vB0,
float[] fReturn,
javajs.util.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(javajs.util.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(javajs.util.P3i ptA,
javajs.util.P3i ptB,
javajs.util.P3i pt0,
javajs.util.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, setOutputChannel, setVectorAnisotropy, setVertexAnisotropy, setVolumeDataV, setVolumetricAnisotropy, setVolumetricOriginAnisotropy, slabIsosurface, updateSurfaceData, updateTriangles
private float cavityRadius
private float envelopeRadius
private javajs.util.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 Map<String,IsoSolventReader.Edge> htEdges
private javajs.util.List<IsoSolventReader.Edge> vEdges
private javajs.util.List<IsoSolventReader.Face> vFaces
protected javajs.util.V3 vTemp
protected javajs.util.P4 plane
protected javajs.util.P3 ptTemp2
private javajs.util.P3 ptS1
private javajs.util.P3 ptS2
protected javajs.util.V3 vTemp2
private javajs.util.V3 vTemp3
private float dPX
protected final javajs.util.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, javajs.util.P3 pointA, javajs.util.V3 edgeVector, int x, int y, int z, int vA0, int vB0, float[] fReturn, javajs.util.P3 ptReturn)
getSurfacePointAndFraction
in class SurfaceReader
cutoff
- isCutoffAbsolute
- valueA
- valueB
- pointA
- edgeVector
- fReturn
- ptReturn
- public int addVertexCopy(javajs.util.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 static void mergeLimits(javajs.util.P3i ptA, javajs.util.P3i ptB, javajs.util.P3i pt0, javajs.util.P3i pt1)
private float checkSpecialVoxel(javajs.util.P3 ptA, float rAS, javajs.util.P3 ptB, float rBS, float dAB, javajs.util.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(javajs.util.P3 pt, boolean getSource)
getValueAtPoint
in class SurfaceReader
getSource
- TODOpublic float[] getPlane(int x)
getPlane
in interface VertexDataServer
getPlane
in class SurfaceReader