MarchingCubes
Date: 2019-10-22

org.jmol.jvxl.calc

## Class MarchingCubes

- java.lang.Object
- - org.jmol.util.TriangleData
  - - org.jmol.jvxl.calc.MarchingCubes

- Direct Known Subclasses:
    SimpleMarchingCubes

      public class MarchingCubes
      extends TriangleData

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private boolean` | `allInside`
    `protected javajs.util.BS` | `bsExcludedPlanes`
    `protected javajs.util.BS` | `bsExcludedTriangles`
    `protected javajs.util.BS` | `bsExcludedVertices`
    `protected javajs.util.BS` | `bsValues`
    `javajs.util.BS` | `bsVoxels`
    `protected boolean` | `colorDensity`
    `protected int` | `contourType`
    `protected int` | `cubeCountX`
    `protected int` | `cubeCountY`
    `protected int` | `cubeCountZ`
    `protected static javajs.util.V3[]` | `cubeVertexVectors`
    `protected float` | `cutoff`
    `protected int` | `edgeCount`
    `protected javajs.util.SB` | `edgeData`
    `protected int[]` | `edgePointIndexes`
    `protected static int[]` | `edgeTypeTable`
    `protected javajs.util.V3[]` | `edgeVectors`
    `protected int[]` | `edgeVertexPlanes`
    `protected static int[]` | `edgeVertexPlanesHighToLow`
    `protected static int[]` | `edgeVertexPlanesLowToHigh`
    `protected int[]` | `edgeVertexPointers`
    `protected static int[]` | `edgeVertexPointersHighToLow`
    `protected static int[]` | `edgeVertexPointersLowToHigh`
    `private boolean` | `excludePartialCubes`
    `protected float[]` | `fReturn`
    `protected static short[]` | `insideMaskTable`
    `protected boolean` | `integrateSquared`
    `protected boolean` | `isContoured`
    `protected boolean` | `isCutoffAbsolute`
    `private boolean` | `isInside`
    `protected int[][][]` | `isoPointIndexPlanes`
    `protected boolean` | `isSquared`
    `protected boolean` | `isXLowToHigh`
    `protected int[]` | `linearOffsets`
    `private javajs.util.P4` | `mappingPlane`
    `protected int` | `mode`
    `protected static int` | `MODE_CUBE`
    `protected static int` | `MODE_JVXL`
    `protected static int` | `MODE_PLANES`
    `protected int` | `nTriangles`
    `protected int` | `nY`
    `protected int` | `nZ`
    `private javajs.util.P3i` | `offset`
    `protected javajs.util.P3` | `pointA`
    `protected javajs.util.P3` | `pt0`
    `protected VertexDataServer` | `surfaceReader`
    `protected float[]` | `vertexValues`
    `protected VolumeData` | `volumeData`
    `private float[][][]` | `voxelData`
    `protected javajs.util.V3[]` | `voxelVertexVectors`
    `protected int` | `yzCount`
    `protected static int[]` | `yzPlanePts`
    `protected float[][]` | `yzPlanes`

    - ### Fields inherited from class org.jmol.util.TriangleData

      `cubeVertexOffsets, edgeVertexes, Pwr2, triangleTable2`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MarchingCubes()`
    `MarchingCubes(VertexDataServer surfaceReader, VolumeData volumeData, Parameters params, javajs.util.BS bsVoxels)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addEdgeData(float f)`
    `protected void` | `addTriangle(int ia, int ib, int ic, int edgeType)`
    `protected void` | `addVertex(int x, int y, int z, int pti, float value)`
    `void` | `calcVertexPoint(int x, int y, int z, int vertex, javajs.util.P3 pt)`
    `protected void` | `calcVoxelVertexVectors()`
    `java.lang.String` | `getEdgeData()`
    `int` | `getLinearOffset(int x, int y, int z, int offset)`
    `private void` | `getPlane(int i, boolean andSwap)`
    `private float` | `getValue(int x, int y, int z, int pt, int i)`
    `protected float` | `getValueArray(int x, int y, int z, int pt, float[] tempValues)`
    `static boolean` | `isInside(float voxelValue, float max, boolean isAbsolute)`
    `protected boolean` | `processOneCubical(int insideMask, int x, int y, int z, int pt)`
    `protected void` | `processTriangles(int insideMask)`
    `protected int[][]` | `resetIndexPlane(int[][] plane)`
    `protected void` | `setLinearOffsets()`
    `protected void` | `setParameters(VolumeData volumeData, Parameters params)`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### surfaceReader

          protected VertexDataServer surfaceReader

    - #### volumeData

          protected VolumeData volumeData

    - #### contourType

          protected int contourType

    - #### isContoured

          protected boolean isContoured

    - #### cutoff

          protected float cutoff

    - #### isCutoffAbsolute

          protected boolean isCutoffAbsolute

    - #### isSquared

          protected boolean isSquared

    - #### isXLowToHigh

          protected boolean isXLowToHigh

    - #### cubeCountX

          protected int cubeCountX

    - #### cubeCountY

          protected int cubeCountY

    - #### cubeCountZ

          protected int cubeCountZ

    - #### nY

          protected int nY

    - #### nZ

          protected int nZ

    - #### yzCount

          protected int yzCount

    - #### colorDensity

          protected boolean colorDensity

    - #### integrateSquared

          protected boolean integrateSquared

    - #### bsVoxels

          public javajs.util.BS bsVoxels

    - #### bsExcludedVertices

          protected javajs.util.BS bsExcludedVertices

    - #### bsExcludedTriangles

          protected javajs.util.BS bsExcludedTriangles

    - #### bsExcludedPlanes

          protected javajs.util.BS bsExcludedPlanes

    - #### edgeData

          protected javajs.util.SB edgeData

    - #### excludePartialCubes

          private boolean excludePartialCubes

    - #### mode

          protected int mode

    - #### MODE_CUBE

          protected static final int MODE_CUBE

      See Also:
        Constant Field Values

    - #### MODE_JVXL

          protected static final int MODE_JVXL

      See Also:
        Constant Field Values

    - #### MODE_PLANES

          protected static final int MODE_PLANES

      See Also:
        Constant Field Values

    - #### vertexValues

          protected final float[] vertexValues

    - #### edgeCount

          protected int edgeCount

    - #### voxelVertexVectors

          protected final javajs.util.V3[] voxelVertexVectors

    - #### edgeVectors

          protected final javajs.util.V3[] edgeVectors

    - #### yzPlanePts

          protected static int[] yzPlanePts

    - #### edgePointIndexes

          protected final int[] edgePointIndexes

    - #### isoPointIndexPlanes

          protected int[][][] isoPointIndexPlanes

    - #### yzPlanes

          protected float[][] yzPlanes

    - #### mappingPlane

          private javajs.util.P4 mappingPlane

    - #### allInside

          private boolean allInside

    - #### isInside

          private boolean isInside

    - #### offset

          private javajs.util.P3i offset

    - #### voxelData

          private float[][][] voxelData

    - #### nTriangles

          protected int nTriangles

    - #### bsValues

          protected javajs.util.BS bsValues

    - #### pt0

          protected final javajs.util.P3 pt0

    - #### pointA

          protected final javajs.util.P3 pointA

    - #### edgeVertexPointersLowToHigh

          protected static final int[] edgeVertexPointersLowToHigh

    - #### edgeVertexPointersHighToLow

          protected static final int[] edgeVertexPointersHighToLow

    - #### edgeVertexPointers

          protected int[] edgeVertexPointers

    - #### edgeVertexPlanesLowToHigh

          protected static final int[] edgeVertexPlanesLowToHigh

    - #### edgeVertexPlanesHighToLow

          protected static final int[] edgeVertexPlanesHighToLow

    - #### edgeVertexPlanes

          protected int[] edgeVertexPlanes

    - #### fReturn

          protected float[] fReturn

    - #### cubeVertexVectors

          protected static final javajs.util.V3[] cubeVertexVectors

    - #### edgeTypeTable

          protected static final int[] edgeTypeTable

    - #### linearOffsets

          protected final int[] linearOffsets

    - #### insideMaskTable

          protected static final short[] insideMaskTable

  - ### Constructor Detail

    - #### MarchingCubes

          public MarchingCubes()

    - #### MarchingCubes

          public MarchingCubes(VertexDataServer surfaceReader,
                               VolumeData volumeData,
                               Parameters params,
                               javajs.util.BS bsVoxels)

  - ### Method Detail

    - #### setParameters

          protected void setParameters(VolumeData volumeData,
                                       Parameters params)

    - #### calcVoxelVertexVectors

          protected void calcVoxelVertexVectors()

    - #### resetIndexPlane

          protected int[][] resetIndexPlane(int[][] plane)

    - #### getEdgeData

          public java.lang.String getEdgeData()

    - #### getValue

          private float getValue(int x,
                                 int y,
                                 int z,
                                 int pt,
                                 int i)

    - #### getPlane

          private void getPlane(int i,
                                boolean andSwap)

    - #### processTriangles

          protected void processTriangles(int insideMask)

    - #### addVertex

          protected void addVertex(int x,
                                   int y,
                                   int z,
                                   int pti,
                                   float value)

    - #### addTriangle

          protected void addTriangle(int ia,
                                     int ib,
                                     int ic,
                                     int edgeType)

    - #### getValueArray

          protected float getValueArray(int x,
                                        int y,
                                        int z,
                                        int pt,
                                        float[] tempValues)

    - #### isInside

          public static boolean isInside(float voxelValue,
                                         float max,
                                         boolean isAbsolute)

    - #### processOneCubical

          protected boolean processOneCubical(int insideMask,
                                              int x,
                                              int y,
                                              int z,
                                              int pt)

    - #### addEdgeData

          protected void addEdgeData(float f)

    - #### calcVertexPoint

          public void calcVertexPoint(int x,
                                      int y,
                                      int z,
                                      int vertex,
                                      javajs.util.P3 pt)

    - #### setLinearOffsets

          protected void setLinearOffsets()

    - #### getLinearOffset

          public int getLinearOffset(int x,
                                     int y,
                                     int z,
                                     int offset)