# Class PeriodicVolumeFileReader

java.lang.Object
org.jmol.jvxl.readers.SurfaceReader
org.jmol.jvxl.readers.PeriodicVolumeFileReader

All Implemented Interfaces:
  `VertexDataServer`

public abstract class PeriodicVolumeFileReader extends SurfaceReader

## Field Summary

Fields
Modifier and Type
Field
Description
`protected int`
`ac`
`protected GenericBinaryDocument`
`binarydoc`
`protected P3[]`
`boundingBox`
`protected BufferedReader`
`br`
`protected boolean`
`canDownsample`
`protected int`
`downsampleFactor`
`protected int[]`
`downsampleRemainders`
`protected boolean`
`endOfData`
`protected boolean`
`isAngstroms`
`protected String`
`line`
`protected int`
`nData`
`protected boolean`
`negativeAtomCount`
`protected int[]`
`next`
`protected int`
`nSkipX`
`protected int`
`nSkipY`
`protected int`
`nSkipZ`
`protected int`
`nSurfaces`
`protected OC`
`out`
`protected boolean`
`readerClosed`

### Fields inherited from class SurfaceReader

`allowSigma, anisotropy, center, cJvxlEdgeNaN, colorFractionBase, colorFractionRange, contourVertexCount, dataMax, dataMean, dataMin, eccentricityMatrix, eccentricityMatrixInverse, eccentricityRatio, eccentricityScale, edgeFractionBase, edgeFractionRange, fractionData, haveSurfaceAtoms, isAnisotropic, isEccentric, isJvxl, isPeriodic, isProgressive, isQuiet, isXLowToHigh, jvxlColorDataRead, jvxlCutoff, jvxlCutoffRange, jvxlData, jvxlDataIs2dContour, jvxlDataIsColorDensity, jvxlDataIsColorMapped, jvxlDataIsPrecisionColor, jvxlEdgeDataRead, jvxlFileHeaderBuffer, jvxlNSurfaceInts, jvxlVoxelBitSet, marchingCubes, marchingSquares, meshData, meshDataServer, minMax, nBytes, nDataPoints, nPointsX, nPointsY, nPointsZ, params, ptTemp, qpc, sg, volumetricOrigin, volumetricVectors, voxelCounts, voxelData, xyzMax, xyzMin, yzCount, yzPlanes`

## Constructor Summary

Constructors
Constructor
Description
`PeriodicVolumeFileReader()`

## Method Summary

Modifier and Type
Method
Description
`protected static boolean`
`checkAtomLine(boolean isXLowToHigh, boolean isAngstroms, String strAtomCount, String atomLine, SB bs)`
checks an atom line for "ANGSTROMS", possibly overriding the data's natural units, BOHR (similar to Gaussian CUBE files).
`protected void`
`closeReader()`
`protected void`
`closeReaderSFR()`
`protected float`
`getJVXLCutoff()`
`protected float`
`getNextVoxelValue()`
`protected abstract void`
`getPeriodicVoxels()`
`float[]`
`getPlane(int x)`
`float[]`
`getPlaneNCI(int x)`
Retrieve raw file planes and pass them to the calculation object for processing into new data.
`protected String`
`getQuotedStringNext()`
`protected float`
`getSPFv(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, T3 pointA, V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, T3 ptReturn)`
`protected float`
`getSurfacePointAndFraction(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, T3 pointA, V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, T3 ptReturn)`
`protected String[]`
`getTokens()`
`float`
`getValue(int x, int y, int z, int ptyz)`
for readers only
`protected BS`
`getVoxelBitSet(int nPoints)`
`protected void`
`gotoData(int n, int nPoints)`
`protected float`
`nextVoxel()`
`protected float`
`parseFloat()`
`protected float[]`
`parseFloatArray(float[] a, String strStart, String strEnd)`
`protected float[]`
`parseFloatArrayStr(String s)`
`protected float`
`parseFloatRange(String s, int iStart, int iEnd)`
`protected float`
`parseFloatStr(String s)`
`protected int`
`parseInt()`
`protected int`
`parseIntNext(String s)`
`protected int`
`parseIntStr(String s)`
`protected String`
`rd()`
`protected abstract void`
`readParameters()`
`protected void`
`readSurfaceData(boolean isMapData)`
`protected void`
`readSurfaceDataVFR(boolean isMapData)`
`protected boolean`
`readVolumeData(boolean isMapData)`
`protected boolean`
`readVolumeDataVFR(boolean isMapData)`
`protected boolean`
`readVolumeParameters(boolean isMapData)`
`protected void`
`readVoxelVector(int voxelVectorIndex)`
`protected float`
`recordData(float value)`
`protected void`
`setOutputChannel(OC out)`
`protected void`
`setStream(String fileName, boolean isBigEndian)`
`protected String`
`skipComments(boolean allowBlankLines)`
`protected void`
`skipData(int nPoints)`
`protected void`
`skipDataVFR(int nPoints)`
`protected void`
`skipTo(String info, String what)`
`protected void`
`swapXZ()`

### Methods inherited from class SurfaceReader

`addTriangleCheck, addVC, addVertexCopy, discardTempDataSR, finalizeMapping, getMinMaxMappedValues, getPlaneSR, getSPF, getSurfaceAtomIndex, getSurfacePointIndexAndFraction, getValue2, getValueAtPoint, gotoAndReadVoxelData, newVoxelDataCube, postProcessVertices, readColorData, selectPocket, setBBox, setVectorAnisotropy, setVertexAnisotropy, setVolumeDataV, setVolumetricAnisotropy, setVolumetricOriginAnisotropy, slabIsosurface`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### endOfData

protected boolean endOfData

### negativeAtomCount

protected boolean negativeAtomCount

### ac

protected int ac

### nSurfaces

protected int nSurfaces

### isAngstroms

protected boolean isAngstroms

### canDownsample

protected boolean canDownsample

### downsampleRemainders

protected int[] downsampleRemainders

### nData

protected int nData

### readerClosed

protected boolean readerClosed

### downsampleFactor

protected int downsampleFactor

### nSkipX

protected int nSkipX

### nSkipY

protected int nSkipY

### nSkipZ

protected int nSkipZ

### boundingBox

protected P3[] boundingBox

### br

protected BufferedReader br

### binarydoc

protected GenericBinaryDocument binarydoc

### out

protected OC out

### line

protected String line

### next

protected int[] next

## Constructor Details

### PeriodicVolumeFileReader

public PeriodicVolumeFileReader()

## Method Details

### readSurfaceData

protected void readSurfaceData(boolean isMapData) throws Exception

Throws:
  `Exception`

### getPeriodicVoxels

protected abstract void getPeriodicVoxels() throws Exception

Throws:
  `Exception`

### recordData

protected float recordData(float value)

### closeReader

protected void closeReader()

### readVolumeParameters

protected boolean readVolumeParameters(boolean isMapData)

Specified by:
  `readVolumeParameters` in class `SurfaceReader`

### readVolumeData

protected boolean readVolumeData(boolean isMapData)

Specified by:
  `readVolumeData` in class `SurfaceReader`

### readVolumeDataVFR

protected boolean readVolumeDataVFR(boolean isMapData)

### readParameters

protected abstract void readParameters() throws Exception

Throws:
  `Exception`

### skipComments

protected String skipComments(boolean allowBlankLines) throws Exception

Throws:
  `Exception`

### readVoxelVector

protected void readVoxelVector(int voxelVectorIndex) throws Exception

Throws:
  `Exception`

### getJVXLCutoff

protected float getJVXLCutoff()

### readSurfaceDataVFR

protected void readSurfaceDataVFR(boolean isMapData) throws Exception

Throws:
  `Exception`

### getPlane

public float[] getPlane(int x)

Specified by:
  `getPlane` in interface `VertexDataServer`
Overrides:
  `getPlane` in class `SurfaceReader`

### getPlaneNCI

public float[] getPlaneNCI(int x)
Retrieve raw file planes and pass them to the calculation object for processing into new data. Bob Hanson hansonr@stolaf.edu 6/7/2011

Parameters:
  `x` -
Returns:
  plane (for testing)

### getValue

public float getValue(int x, int y, int z, int ptyz)
Description copied from interface: `VertexDataServer`
for readers only

Specified by:
  `getValue` in interface `VertexDataServer`
Overrides:
  `getValue` in class `SurfaceReader`
Parameters:
  `x` -
  `y` -
  `z` -
  `ptyz` -
Returns:
  value[x][y][z]

### getVoxelBitSet

protected BS getVoxelBitSet(int nPoints) throws Exception

Parameters:
  `nPoints` -
Returns:
  JVXL bitset
Throws:
  `Exception`

### getNextVoxelValue

protected float getNextVoxelValue() throws Exception

Throws:
  `Exception`

### nextVoxel

protected float nextVoxel() throws Exception

Throws:
  `Exception`

### gotoData

protected void gotoData(int n, int nPoints) throws Exception

Overrides:
  `gotoData` in class `SurfaceReader`
Parameters:
  `n` -
  `nPoints` -
Throws:
  `Exception`

### skipData

protected void skipData(int nPoints) throws Exception

Throws:
  `Exception`

### skipDataVFR

protected void skipDataVFR(int nPoints) throws Exception

Throws:
  `Exception`

### checkAtomLine

protected static boolean checkAtomLine(boolean isXLowToHigh, boolean isAngstroms, String strAtomCount, String atomLine, SB bs)
checks an atom line for "ANGSTROMS", possibly overriding the data's natural units, BOHR (similar to Gaussian CUBE files).

Parameters:
  `isXLowToHigh` -
  `isAngstroms` -
  `strAtomCount` -
  `atomLine` -
  `bs` -
Returns:
  isAngstroms

### getSurfacePointAndFraction

protected float getSurfacePointAndFraction(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, T3 pointA, V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, T3 ptReturn)

Overrides:
  `getSurfacePointAndFraction` in class `SurfaceReader`

### getSPFv

protected float getSPFv(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, T3 pointA, V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, T3 ptReturn)

### swapXZ

protected void swapXZ()

### setStream

protected void setStream(String fileName, boolean isBigEndian)

### setOutputChannel

protected void setOutputChannel(OC out)

Overrides:
  `setOutputChannel` in class `SurfaceReader`
Parameters:
  `out` -

### closeReaderSFR

protected void closeReaderSFR()

### getTokens

protected String[] getTokens()

### parseFloat

protected float parseFloat()

### parseFloatStr

protected float parseFloatStr(String s)

### parseFloatRange

protected float parseFloatRange(String s, int iStart, int iEnd)

### parseInt

protected int parseInt()

### parseIntStr

protected int parseIntStr(String s)

### parseIntNext

protected int parseIntNext(String s)

### parseFloatArrayStr

protected float[] parseFloatArrayStr(String s)

### parseFloatArray

protected float[] parseFloatArray(float[] a, String strStart, String strEnd)

### getQuotedStringNext

protected String getQuotedStringNext()

### skipTo

protected void skipTo(String info, String what) throws Exception

Throws:
  `Exception`

### rd

protected String rd() throws Exception

Throws:
  `Exception`