org.jmol.jvxl.calc

Class MarchingSquares

public class MarchingSquares extends Object

Nested Class Summary
static classMarchingSquares.ContourVertex
static classMarchingSquares.PlanarSquare
Field Summary
booleancontourFromZero
intcontourIndex
floatcontourPlaneMaximumValue
floatcontourPlaneMinimumValue
Point3f[]contourPoints
intcontourType
intcontourVertexCount
MarchingSquares.ContourVertex[]contourVertexes
static intCONTOUR_POINT
static intdefaultContourCount
Vector3fedgeVector
static byte[]edgeVertexes2d
static intEDGE_POINT
static byte[]insideMaskTable2d
booleanis3DContour
booleanlogMessages
Matrix3fmatXyzToPlane
static intnContourMax
intnContours
intnContoursSpecified
intnSquares
int[]pixelCounts
float[][]pixelData
Point3fpixelOrigin
Vector3f[]pixelVertexVectors
Matrix3fplanarMatrix
Point3fplanarOrigin
MarchingSquares.PlanarSquare[]planarSquares
float[]planarVectorLengths
Vector3f[]planarVectors
Point3fpointA
Point3fpointB
Vector3fpointVector
Point3iptiTemp
intsquareCountX
intsquareCountY
float[]squareFractions
static Point3i[]squareVertexOffsets
static Vector3f[]squareVertexVectors
Point4fthePlane
intthisContour
int[]triangleVertexList
Vector3f[]unitPlanarVectors
floatvalueMax
floatvalueMin
float[]vertexValues2d
VolumeDatavolumeData
VertexDataServervoxelReader
static intVERTEX_POINT
Constructor Summary
MarchingSquares(VertexDataServer voxelReader, VolumeData volumeData, Point4f thePlane, int nContours, int thisContour, boolean contourFromZero)
Method Summary
intaddContourVertex(int x, int y, int z, Point3i offsets, Point3f vertexXYZ, float value)
floatcalcContourPoint(float cutoff, float valueA, float valueB, Point3f contourPoint)
voidcalcPixelVertexVectors()
voidcalcVertexPoints2d(int x, int y, int vertexA, int vertexB)
voidcalcVertexPoints3d(int x, int y, int vertexA, int vertexB)
voidcontourLocateXYZ(int ix, int iy, Point3f pt)
booleancreateContours(float min, float max)
voidcreatePlanarSquares()
voidcreateTriangleSet(int nVertex, int mesh1, int mesh2)
voidfillSquare(MarchingSquares.PlanarSquare square, int contourIndex, int edgeMask, boolean reverseWinding, int offset)
intfindContourVertex(int ix, int iy)
intgenerateContourData(boolean haveData)
intgenerateContourData(float contourCutoff)
intgetContourType()
static intgetContourType(Point4f plane, Vector3f[] volumetricVectors)
intgetContourVertexCount()
floatgetInterpolatedPixelValue(Point3f ptXYZ)
voidgetPixelCounts()
voidgetPlanarOrigin()
voidgetPlanarVectors()
booleanisInside2d(float voxelValue, float max)
voidloadPixelData(boolean haveData)
Point3ilocatePixel(Point3f ptXyz)
Point3fpixelPtToXYZ(int x, int y)
voidprocessOneQuadrilateral(int insideMask, float cutoff, int[] pixelPointIndexes, int x, int y)
int[]propagateNeighborPointIndexes2d(int x, int y, int[][] isoPointIndexes2d, float[][] squareFractions2d)
voidsetContourData(int i, float value)
voidsetContourType()
voidsetMinMax(float valueMin, float valueMax)
voidsetPlanarTransform()
static voidsetupMatrix(Matrix3f mat, Vector3f[] cols)
voidtriangulateContours(boolean centerIsLow)
voidxyzToPixelVector(Vector3f vector)

Field Detail

contourFromZero

private boolean contourFromZero

contourIndex

private int contourIndex

contourPlaneMaximumValue

private float contourPlaneMaximumValue

contourPlaneMinimumValue

private float contourPlaneMinimumValue

contourPoints

private final Point3f[] contourPoints

contourType

private int contourType

contourVertexCount

private int contourVertexCount

contourVertexes

private MarchingSquares.ContourVertex[] contourVertexes

CONTOUR_POINT

public static final int CONTOUR_POINT

defaultContourCount

private static final int defaultContourCount

edgeVector

private final Vector3f edgeVector

edgeVertexes2d

private static final byte[] edgeVertexes2d

EDGE_POINT

public static final int EDGE_POINT

insideMaskTable2d

private static final byte[] insideMaskTable2d

is3DContour

private boolean is3DContour

logMessages

private boolean logMessages

matXyzToPlane

private final Matrix3f matXyzToPlane

nContourMax

private static final int nContourMax

nContours

private int nContours

nContoursSpecified

private int nContoursSpecified

nSquares

private int nSquares

pixelCounts

private final int[] pixelCounts

pixelData

private float[][] pixelData

pixelOrigin

private final Point3f pixelOrigin

pixelVertexVectors

private Vector3f[] pixelVertexVectors

planarMatrix

private final Matrix3f planarMatrix

planarOrigin

private final Point3f planarOrigin

planarSquares

private MarchingSquares.PlanarSquare[] planarSquares

planarVectorLengths

private final float[] planarVectorLengths

planarVectors

private final Vector3f[] planarVectors

pointA

private final Point3f pointA

pointB

private final Point3f pointB

pointVector

private final Vector3f pointVector

ptiTemp

private final Point3i ptiTemp

squareCountX

private int squareCountX

squareCountY

private int squareCountY

squareFractions

private float[] squareFractions

squareVertexOffsets

private static final Point3i[] squareVertexOffsets

squareVertexVectors

private static final Vector3f[] squareVertexVectors

thePlane

private Point4f thePlane

thisContour

private int thisContour

triangleVertexList

private final int[] triangleVertexList

unitPlanarVectors

private final Vector3f[] unitPlanarVectors

valueMax

private float valueMax

valueMin

private float valueMin

vertexValues2d

private final float[] vertexValues2d

volumeData

private VolumeData volumeData

voxelReader

private VertexDataServer voxelReader

VERTEX_POINT

public static final int VERTEX_POINT

Constructor Detail

MarchingSquares

public MarchingSquares(VertexDataServer voxelReader, VolumeData volumeData, Point4f thePlane, int nContours, int thisContour, boolean contourFromZero)

Method Detail

addContourVertex

public int addContourVertex(int x, int y, int z, Point3i offsets, Point3f vertexXYZ, float value)

calcContourPoint

private float calcContourPoint(float cutoff, float valueA, float valueB, Point3f contourPoint)

calcPixelVertexVectors

private void calcPixelVertexVectors()

calcVertexPoints2d

private void calcVertexPoints2d(int x, int y, int vertexA, int vertexB)

calcVertexPoints3d

private void calcVertexPoints3d(int x, int y, int vertexA, int vertexB)

contourLocateXYZ

private void contourLocateXYZ(int ix, int iy, Point3f pt)

createContours

public boolean createContours(float min, float max)

createPlanarSquares

private void createPlanarSquares()

createTriangleSet

private void createTriangleSet(int nVertex, int mesh1, int mesh2)

fillSquare

private void fillSquare(MarchingSquares.PlanarSquare square, int contourIndex, int edgeMask, boolean reverseWinding, int offset)

findContourVertex

private int findContourVertex(int ix, int iy)

generateContourData

public int generateContourData(boolean haveData)

generateContourData

private int generateContourData(float contourCutoff)

getContourType

public int getContourType()

getContourType

private static int getContourType(Point4f plane, Vector3f[] volumetricVectors)

getContourVertexCount

public int getContourVertexCount()

getInterpolatedPixelValue

public float getInterpolatedPixelValue(Point3f ptXYZ)

getPixelCounts

private void getPixelCounts()

getPlanarOrigin

private void getPlanarOrigin()

getPlanarVectors

private void getPlanarVectors()

isInside2d

private boolean isInside2d(float voxelValue, float max)

loadPixelData

private void loadPixelData(boolean haveData)

locatePixel

private Point3i locatePixel(Point3f ptXyz)

pixelPtToXYZ

private Point3f pixelPtToXYZ(int x, int y)

processOneQuadrilateral

private void processOneQuadrilateral(int insideMask, float cutoff, int[] pixelPointIndexes, int x, int y)

propagateNeighborPointIndexes2d

private int[] propagateNeighborPointIndexes2d(int x, int y, int[][] isoPointIndexes2d, float[][] squareFractions2d)

setContourData

public void setContourData(int i, float value)

setContourType

private void setContourType()

setMinMax

public void setMinMax(float valueMin, float valueMax)

setPlanarTransform

private void setPlanarTransform()

setupMatrix

private static void setupMatrix(Matrix3f mat, Vector3f[] cols)

triangulateContours

private void triangulateContours(boolean centerIsLow)

xyzToPixelVector

private void xyzToPixelVector(Vector3f vector)