|
IsoSurface Rendering of an AR Representation | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--rlaramee.OctreeNode | +--rlaramee.OctreeLeafNode
Description: The Octree is made up of Octree Nodes. In the tree representation, the lower the level nodes store data at a higher resolution. Each node is an octant of a parent node. We may want 2 classes of tree nodes: in memory and external. An external having a seek address or file name.
Internal nodes also have 2 values: the minimum and maximum values of all its decendants [children].
leaf nodes: leaf nodes have 8 data values and a minimum and maximum of those data values. It is the leaf nodes that are rendered.
Each octant is labeled using the convention
from page 87 of Applications of Spacial Data Structures
by H. Samet.
Note: it is only the labeling convention taken from H. Samet, not the
numbering. (H. Samet uses a different numbering convention.)
The octants are numbered using the convention from page 233 of
The Visualization Toolkit (first edition) Figure 8-11
This is the same as the cube-vertex numbering and labeling.
start date Fri 30 April 1999
Fields inherited from class rlaramee.OctreeNode |
childNumber, cube, debug, parentNode, processed, siblingNode, triangleList |
Constructor Summary | |
OctreeLeafNode(Cube newCube)
a constructor takes a cube -this constructor is intended to be used to create a real octree node (with all it's data) |
Method Summary | |
boolean |
addEdgeVertex(SharedEdgeVertex newSharedVertex)
|
boolean |
addFacialVertex(SharedFacialVertex newSharedVertex)
|
void |
addTriangleEdge(TriangleEdge triangleEdge)
|
void |
assembleChainGang()
|
byte |
deleteTriangles(IsoSurface surface)
|
byte |
faceWithMaxChains()
|
byte |
generateTriangleFans(IsoSurface surface)
|
OctreeARnode |
getARnode()
|
OctreeNode |
getChildZero()
We need to have this method in place because the Octree.getChild(int childn) method does not know whether it is an internal node or a leaf node. |
java.util.Vector |
getEdgeVertexList()
|
java.util.Vector |
getFacialVertexList()
|
float |
getMaximum()
|
float |
getMinimum()
|
byte |
maxChainsPerFace()
|
SharedEdgeVertex |
onCoarseEdge(TriangleVertex fineVertex,
byte fineOctant,
byte direction)
|
SharedFacialVertex |
onCoarseFace(TriangleVertex fineVertex,
byte fineOctant,
byte direction)
|
void |
print()
print out a node's private data members |
boolean |
setChildZero(OctreeNode node)
This is another dummy method so we may treat internal nodes and leaf nodes the same. |
boolean |
setEdgeVertexList(java.util.Vector newList)
|
boolean |
setFacialVertexList(java.util.Vector newList)
|
boolean |
setMaximum(float newMax)
|
boolean |
setMinimum(float newMin)
In the Octree.addNodeFromBottom() method, child cubes set their parent's minimum and maximum values. |
java.lang.String |
toString()
print out a node's information |
boolean |
updateEdgeVertices()
|
Methods inherited from class java.lang.Object |
|
Constructor Detail |
public OctreeLeafNode(Cube newCube)
cube
- the node's cube (membership)Method Detail |
public float getMinimum()
getMinimum
in class OctreeNode
public float getMaximum()
getMaximum
in class OctreeNode
public boolean setMinimum(float newMin)
setMinimum
in class OctreeNode
newMin
- a candidate for a new minimum scalar value (of all
8 child nodes)public boolean setMaximum(float newMax)
setMaximum
in class OctreeNode
newMax
- a candidate for a new maximum scalar value (of all
8 child nodes)public OctreeNode getChildZero()
getChildZero
in class OctreeNode
public boolean setChildZero(OctreeNode node)
Used in the octree traversal and building algorithm(s):
setChildZero
in class OctreeNode
node
- a parent OctreeNodepublic java.util.Vector getEdgeVertexList()
getEdgeVertexList
in class OctreeNode
public boolean setEdgeVertexList(java.util.Vector newList)
setEdgeVertexList
in class OctreeNode
public boolean addEdgeVertex(SharedEdgeVertex newSharedVertex)
addEdgeVertex
in class OctreeNode
public java.util.Vector getFacialVertexList()
getFacialVertexList
in class OctreeNode
public boolean setFacialVertexList(java.util.Vector newList)
setFacialVertexList
in class OctreeNode
public boolean addFacialVertex(SharedFacialVertex newSharedVertex)
addFacialVertex
in class OctreeNode
public void addTriangleEdge(TriangleEdge triangleEdge)
addTriangleEdge
in class OctreeNode
public boolean updateEdgeVertices()
updateEdgeVertices
in class OctreeNode
public SharedEdgeVertex onCoarseEdge(TriangleVertex fineVertex, byte fineOctant, byte direction)
onCoarseEdge
in class OctreeNode
public SharedFacialVertex onCoarseFace(TriangleVertex fineVertex, byte fineOctant, byte direction)
onCoarseFace
in class OctreeNode
public void assembleChainGang()
assembleChainGang
in class OctreeNode
public OctreeARnode getARnode()
getARnode
in class OctreeNode
public byte deleteTriangles(IsoSurface surface)
deleteTriangles
in class OctreeNode
public byte maxChainsPerFace()
maxChainsPerFace
in class OctreeNode
public byte faceWithMaxChains()
faceWithMaxChains
in class OctreeNode
public byte generateTriangleFans(IsoSurface surface)
generateTriangleFans
in class OctreeNode
public java.lang.String toString()
toString
in class java.lang.Object
public void print()
print
in class OctreeNode
|
IsoSurface Rendering of an AR Representation | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |