org.jmol.jvxl.calc
Class MarchingSquares
public
class
MarchingSquares
extends Object
Method Summary |
int | addContourVertex(int x, int y, int z, Point3i offsets, Point3f vertexXYZ, float value) |
float | calcContourPoint(float cutoff, float valueA, float valueB, Point3f contourPoint) |
void | calcPixelVertexVectors() |
void | calcVertexPoints2d(int x, int y, int vertexA, int vertexB) |
void | calcVertexPoints3d(int x, int y, int vertexA, int vertexB) |
void | contourLocateXYZ(int ix, int iy, Point3f pt) |
boolean | createContours(float min, float max) |
void | createPlanarSquares() |
void | createTriangleSet(int nVertex, int mesh1, int mesh2) |
void | fillSquare(MarchingSquares.PlanarSquare square, int contourIndex, int edgeMask, boolean reverseWinding, int offset) |
int | findContourVertex(int ix, int iy) |
int | generateContourData(boolean haveData) |
int | generateContourData(float contourCutoff) |
int | getContourType() |
static int | getContourType(Point4f plane, Vector3f[] volumetricVectors) |
int | getContourVertexCount() |
float | getInterpolatedPixelValue(Point3f ptXYZ) |
void | getPixelCounts() |
void | getPlanarOrigin() |
void | getPlanarVectors() |
boolean | isInside2d(float voxelValue, float max) |
void | loadPixelData(boolean haveData) |
Point3i | locatePixel(Point3f ptXyz) |
Point3f | pixelPtToXYZ(int x, int y) |
void | processOneQuadrilateral(int insideMask, float cutoff, int[] pixelPointIndexes, int x, int y) |
int[] | propagateNeighborPointIndexes2d(int x, int y, int[][] isoPointIndexes2d, float[][] squareFractions2d) |
void | setContourData(int i, float value) |
void | setContourType() |
void | setMinMax(float valueMin, float valueMax) |
void | setPlanarTransform() |
static void | setupMatrix(Matrix3f mat, Vector3f[] cols) |
void | triangulateContours(boolean centerIsLow) |
void | xyzToPixelVector(Vector3f vector) |
private boolean contourFromZero
private int contourIndex
private float contourPlaneMaximumValue
private float contourPlaneMinimumValue
private final Point3f[] contourPoints
private int contourType
private int contourVertexCount
public static final int CONTOUR_POINT
private static final int defaultContourCount
private final Vector3f edgeVector
private static final byte[] edgeVertexes2d
public static final int EDGE_POINT
private static final byte[] insideMaskTable2d
private boolean is3DContour
private boolean logMessages
private final Matrix3f matXyzToPlane
private static final int nContourMax
private int nContours
private int nContoursSpecified
private int nSquares
private final int[] pixelCounts
private float[][] pixelData
private final Point3f pixelOrigin
private Vector3f[] pixelVertexVectors
private final Matrix3f planarMatrix
private final Point3f planarOrigin
private final float[] planarVectorLengths
private final Vector3f[] planarVectors
private final Point3f pointA
private final Point3f pointB
private final Vector3f pointVector
private final Point3i ptiTemp
private int squareCountX
private int squareCountY
private float[] squareFractions
private static final Point3i[] squareVertexOffsets
private static final Vector3f[] squareVertexVectors
private Point4f thePlane
private int thisContour
private final int[] triangleVertexList
private final Vector3f[] unitPlanarVectors
private float valueMax
private float valueMin
private final float[] vertexValues2d
public static final int VERTEX_POINT
public MarchingSquares(
VertexDataServer voxelReader,
VolumeData volumeData, Point4f thePlane, int nContours, int thisContour, boolean contourFromZero)
public int addContourVertex(int x, int y, int z, Point3i offsets, Point3f vertexXYZ, float value)
private float calcContourPoint(float cutoff, float valueA, float valueB, Point3f contourPoint)
private void calcPixelVertexVectors()
private void calcVertexPoints2d(int x, int y, int vertexA, int vertexB)
private void calcVertexPoints3d(int x, int y, int vertexA, int vertexB)
private void contourLocateXYZ(int ix, int iy, Point3f pt)
public boolean createContours(float min, float max)
private void createPlanarSquares()
private void createTriangleSet(int nVertex, int mesh1, int mesh2)
private int findContourVertex(int ix, int iy)
public int generateContourData(boolean haveData)
private int generateContourData(float contourCutoff)
public int getContourType()
private static int getContourType(Point4f plane, Vector3f[] volumetricVectors)
public int getContourVertexCount()
public float getInterpolatedPixelValue(Point3f ptXYZ)
private void getPixelCounts()
private void getPlanarOrigin()
private void getPlanarVectors()
private boolean isInside2d(float voxelValue, float max)
private void loadPixelData(boolean haveData)
private Point3i locatePixel(Point3f ptXyz)
private Point3f pixelPtToXYZ(int x, int y)
private void processOneQuadrilateral(int insideMask, float cutoff, int[] pixelPointIndexes, int x, int y)
private int[] propagateNeighborPointIndexes2d(int x, int y, int[][] isoPointIndexes2d, float[][] squareFractions2d)
public void setContourData(int i, float value)
private void setContourType()
public void setMinMax(float valueMin, float valueMax)
private void setPlanarTransform()
private static void setupMatrix(Matrix3f mat, Vector3f[] cols)
private void triangulateContours(boolean centerIsLow)
private void xyzToPixelVector(Vector3f vector)