org.jmol.jvxl.calc

Class MarchingCubes

public class MarchingCubes extends Object

Field Summary
intcontourType
intcubeCountX
intcubeCountY
intcubeCountZ
static Point3i[]cubeVertexOffsets
static Vector3f[]cubeVertexVectors
floatcutoff
intedgeCount
static int[]edgeTypeTable
Vector3f[]edgeVectors
static byte[]edgeVertexes
static short[]insideMaskTable
booleanisContoured
booleanisCutoffAbsolute
booleanisXLowToHigh
int[]linearOffsets
int[]nullNeighbor
Point3fpointA
Point3fpt0
static byte[][]triangleTable2
Point3i[]vertexPoints
float[]vertexValues
VolumeDatavolumeData
VertexDataServervoxelReader
Vector3f[]voxelVertexVectors
intxyCount
Constructor Summary
MarchingCubes(VertexDataServer voxelReader, VolumeData volumeData, boolean isContoured, int contourType, float cutoff, boolean isCutoffAbsolute)
Method Summary
voidcalcVertexPoint(int x, int y, int z, int vertex, Point3f pt)
voidcalcVoxelVertexVectors()
intgenerateSurfaceData(boolean isXLowToHigh)
intgetLinearOffset(int x, int y, int z, int offset)
static booleanisInside(float voxelValue, float max, boolean isAbsolute)
booleanprocessOneCubical(int insideMask, int[] voxelPointIndexes, int x, int y, int z)
int[]propagateNeighborPointIndexes(int x, int y, int z, int[][] isoPointIndexes)
voidsetLinearOffsets()

Field Detail

contourType

private int contourType

cubeCountX

private int cubeCountX

cubeCountY

private int cubeCountY

cubeCountZ

private int cubeCountZ

cubeVertexOffsets

static final Point3i[] cubeVertexOffsets

cubeVertexVectors

static Vector3f[] cubeVertexVectors

cutoff

private float cutoff

edgeCount

int edgeCount

edgeTypeTable

private static final int[] edgeTypeTable

edgeVectors

private final Vector3f[] edgeVectors

edgeVertexes

private static final byte[] edgeVertexes

insideMaskTable

private static final short[] insideMaskTable

isContoured

private boolean isContoured

isCutoffAbsolute

private boolean isCutoffAbsolute

isXLowToHigh

boolean isXLowToHigh

linearOffsets

private final int[] linearOffsets

nullNeighbor

private final int[] nullNeighbor

pointA

private final Point3f pointA

pt0

private final Point3f pt0

triangleTable2

private static final byte[][] triangleTable2

vertexPoints

private final Point3i[] vertexPoints

vertexValues

private final float[] vertexValues

volumeData

private VolumeData volumeData

voxelReader

private VertexDataServer voxelReader

voxelVertexVectors

public final Vector3f[] voxelVertexVectors

xyCount

int xyCount

Constructor Detail

MarchingCubes

public MarchingCubes(VertexDataServer voxelReader, VolumeData volumeData, boolean isContoured, int contourType, float cutoff, boolean isCutoffAbsolute)

Method Detail

calcVertexPoint

public void calcVertexPoint(int x, int y, int z, int vertex, Point3f pt)

calcVoxelVertexVectors

private void calcVoxelVertexVectors()

generateSurfaceData

public int generateSurfaceData(boolean isXLowToHigh)

getLinearOffset

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

isInside

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

processOneCubical

private boolean processOneCubical(int insideMask, int[] voxelPointIndexes, int x, int y, int z)

propagateNeighborPointIndexes

private int[] propagateNeighborPointIndexes(int x, int y, int z, int[][] isoPointIndexes)

setLinearOffsets

void setLinearOffsets()