# Class QuantumPlaneCalculation

java.lang.Object
org.jmol.quantum.QuantumCalculation
org.jmol.quantum.QuantumPlaneCalculation

Direct Known Subclasses:
  `NciCalculation`

public abstract class QuantumPlaneCalculation extends QuantumCalculation
Allows modification of the planes prior to isosurface creation Used by Noncovalent Interaction Calculation for progressive readers

## Field Summary

### Fields inherited from class QuantumCalculation

`atomIndex, bohr_per_angstrom, bsExcluded, countsXYZ, doDebug, firstAtomOffset, integration, nX, nY, nZ, originBohr, points, qmAtoms, rangeBohrOrAngstroms, stepBohr, thisAtom, unitFactor, volume, voxelData, voxelDataTemp, X, X2, xBohr, xMax, xMin, Y, Y2, yBohr, yMax, yMin, Z, Z2, zBohr, zMax, zMin`

## Constructor Summary

Constructors
Constructor
Description
`QuantumPlaneCalculation()`

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`calcPlane(int x, float[] plane)`
Fill this plane with data based on the current set of raw data planes.
`abstract float`
`getNoValue()`
Get that value that represents "no value" so that it can be disregarded in terms of recording and reporting the min/max/mean.
`abstract void`
`getPlane(int x, float[] yzPlane)`
`abstract float`
`process(int vA, int vB, float f)`
Data mapping function to radically increase speed and reduce memory requirements of mapping data when the mapping comes from the same data set as the points, so isosurface creation and data mapping can be carried out both in the first (and only) pass.
`abstract void`
`setPlanes(float[][] planes)`
Planes to use for holding raw file data.

### Methods inherited from class QuantumCalculation

`createCube, getIntegration, initialize, initialize0, initializeOnePoint, initializeOnePointQC, process, processPoints, processPt, setMinMax, setupCoordinates, setXYZBohr`

### Methods inherited from class Object

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

## Constructor Details

### QuantumPlaneCalculation

public QuantumPlaneCalculation()

## Method Details

### setPlanes

public abstract void setPlanes(float[][] planes)
Planes to use for holding raw file data. These will be managed by VolumeFileReader, but they will be needed by the calculation.

Parameters:
  `planes` - a set of four planes that shifts as the progressive Marching Cubes process moves along

### calcPlane

public abstract void calcPlane(int x, float[] plane)
Fill this plane with data based on the current set of raw data planes. Really there are just two planes that are managed by VolumeFileReader and are interchanged as the Marching Cubes process moves along.

Parameters:
  `x` -
  `plane` -

### process

public abstract float process(int vA, int vB, float f)
Data mapping function to radically increase speed and reduce memory requirements of mapping data when the mapping comes from the same data set as the points, so isosurface creation and data mapping can be carried out both in the first (and only) pass.

Parameters:
  `vA` - absolute pointer to vertex A on grid
  `vB` - absolute pointer to vertex B on grid
  `f` - fractional way from A to B
Returns:
  computed value

### getNoValue

public abstract float getNoValue()
Get that value that represents "no value" so that it can be disregarded in terms of recording and reporting the min/max/mean.

Returns:
  NO_VALUE

### getPlane

public abstract void getPlane(int x, float[] yzPlane)