|
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 OctreeNodepublic float getMaximum()
getMaximum in class OctreeNodepublic boolean setMinimum(float newMin)
setMinimum in class OctreeNodenewMin - a candidate for a new minimum scalar value (of all
8 child nodes)public boolean setMaximum(float newMax)
setMaximum in class OctreeNodenewMax - a candidate for a new maximum scalar value (of all
8 child nodes)public OctreeNode getChildZero()
getChildZero in class OctreeNodepublic boolean setChildZero(OctreeNode node)
Used in the octree traversal and building algorithm(s):
setChildZero in class OctreeNodenode - a parent OctreeNodepublic java.util.Vector getEdgeVertexList()
getEdgeVertexList in class OctreeNodepublic boolean setEdgeVertexList(java.util.Vector newList)
setEdgeVertexList in class OctreeNodepublic boolean addEdgeVertex(SharedEdgeVertex newSharedVertex)
addEdgeVertex in class OctreeNodepublic java.util.Vector getFacialVertexList()
getFacialVertexList in class OctreeNodepublic boolean setFacialVertexList(java.util.Vector newList)
setFacialVertexList in class OctreeNodepublic boolean addFacialVertex(SharedFacialVertex newSharedVertex)
addFacialVertex in class OctreeNodepublic void addTriangleEdge(TriangleEdge triangleEdge)
addTriangleEdge in class OctreeNodepublic 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 OctreeNodepublic void assembleChainGang()
assembleChainGang in class OctreeNodepublic OctreeARnode getARnode()
getARnode in class OctreeNodepublic byte deleteTriangles(IsoSurface surface)
deleteTriangles in class OctreeNodepublic byte maxChainsPerFace()
maxChainsPerFace in class OctreeNodepublic byte faceWithMaxChains()
faceWithMaxChains in class OctreeNodepublic byte generateTriangleFans(IsoSurface surface)
generateTriangleFans in class OctreeNodepublic java.lang.String toString()
toString in class java.lang.Objectpublic 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 | |||||||