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