org.jmol.jvxl.calc
Class MarchingCubes

java.lang.Object
  extended by org.jmol.util.TriangleData
      extended by org.jmol.jvxl.calc.MarchingCubes
Direct Known Subclasses:
SimpleMarchingCubes

public class MarchingCubes
extends TriangleData


Field Summary
protected  java.util.BitSet bsExcludedPlanes
           
protected  java.util.BitSet bsExcludedTriangles
           
protected  java.util.BitSet bsExcludedVertices
           
protected  java.util.BitSet bsValues
           
protected  java.util.BitSet bsVoxels
           
protected  boolean colorDensity
           
protected  int contourType
           
protected  int cubeCountX
           
protected  int cubeCountY
           
protected  int cubeCountZ
           
protected static javax.vecmath.Vector3f[] cubeVertexVectors
           
protected  float cutoff
           
protected  int edgeCount
           
protected  java.lang.StringBuffer edgeData
           
protected  int[] edgePointIndexes
           
protected static int[] edgeTypeTable
           
protected  javax.vecmath.Vector3f[] edgeVectors
           
protected  int[] edgeVertexPlanes
           
protected static int[] edgeVertexPlanesHighToLow
           
protected static int[] edgeVertexPlanesLowToHigh
           
protected  int[] edgeVertexPointers
           
protected static int[] edgeVertexPointersHighToLow
           
protected static int[] edgeVertexPointersLowToHigh
           
protected  float fractionOutside
           
protected  float[] fReturn
           
protected static short[] insideMaskTable
           
protected  boolean integrateSquared
           
protected  boolean isContoured
           
protected  boolean isCutoffAbsolute
           
protected  int[][][] isoPointIndexPlanes
           
protected  boolean isSquared
           
protected  boolean isXLowToHigh
           
protected  int[] linearOffsets
           
protected  int mode
           
protected static int MODE_BITSET
           
protected static int MODE_CUBE
           
protected static int MODE_GETXYZ
           
protected  int nTriangles
           
protected  int nY
           
protected  int nZ
           
protected  javax.vecmath.Point3f pointA
           
protected  javax.vecmath.Point3f pt0
           
protected  VertexDataServer surfaceReader
           
protected  float[] vertexValues
           
protected  VolumeData volumeData
           
protected  javax.vecmath.Vector3f[] 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
MarchingCubes()
           
MarchingCubes(VertexDataServer surfaceReader, VolumeData volumeData, Parameters params, java.util.BitSet bsVoxels)
           
 
Method Summary
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, javax.vecmath.Point3f pt)
           
protected  void calcVoxelVertexVectors()
           
 java.util.BitSet getBsVoxels()
           
 java.lang.String getEdgeData()
           
 int getLinearOffset(int x, int y, int z, int offset)
           
protected  float getValue(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 org.jmol.util.TriangleData
intersectPlane
 
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

fractionOutside

protected float fractionOutside

integrateSquared

protected boolean integrateSquared

bsVoxels

protected java.util.BitSet bsVoxels

bsExcludedVertices

protected java.util.BitSet bsExcludedVertices

bsExcludedTriangles

protected java.util.BitSet bsExcludedTriangles

bsExcludedPlanes

protected java.util.BitSet bsExcludedPlanes

edgeData

protected java.lang.StringBuffer edgeData

mode

protected int mode

MODE_CUBE

protected static final int MODE_CUBE
See Also:
Constant Field Values

MODE_BITSET

protected static final int MODE_BITSET
See Also:
Constant Field Values

MODE_GETXYZ

protected static final int MODE_GETXYZ
See Also:
Constant Field Values

vertexValues

protected final float[] vertexValues

edgeCount

protected int edgeCount

voxelVertexVectors

protected final javax.vecmath.Vector3f[] voxelVertexVectors

edgeVectors

protected final javax.vecmath.Vector3f[] edgeVectors

yzPlanePts

protected static int[] yzPlanePts

edgePointIndexes

protected final int[] edgePointIndexes

isoPointIndexPlanes

protected int[][][] isoPointIndexPlanes

yzPlanes

protected float[][] yzPlanes

nTriangles

protected int nTriangles

bsValues

protected java.util.BitSet bsValues

pt0

protected final javax.vecmath.Point3f pt0

pointA

protected final javax.vecmath.Point3f 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 javax.vecmath.Vector3f[] 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,
                     java.util.BitSet bsVoxels)
Method Detail

getBsVoxels

public java.util.BitSet getBsVoxels()

setParameters

protected void setParameters(VolumeData volumeData,
                             Parameters params)

calcVoxelVertexVectors

protected void calcVoxelVertexVectors()

resetIndexPlane

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

getEdgeData

public java.lang.String getEdgeData()

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)

getValue

protected float getValue(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,
                            javax.vecmath.Point3f pt)

setLinearOffsets

protected void setLinearOffsets()

getLinearOffset

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