|
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.OctreeInternalNode
Description: There is an opportunity to save memory by distinguishing between internal octree nodes and leaf nodes. Internal octree nodes contain:
Leaf nodes however, do not need to store all of this information. Leaf nodes eliminate the need to store minimum and maximum (1 float is 4 bytes) vertex values as well as a pointer (4 bytes) to their 0th child. The minimum and maximum vertex values may simply be computed. This represents a savings of 12 bytes for each leaf node. At level 1 there may be up to 262,144 leaf nodes for a potential savings of approximately 3.1 megabytes. Level 0 may consist of up to 2,087,152 leaf nodes for a potential savings of about 25.2 megabytes.
start date Thurs 1 June 00
| Field Summary | |
private OctreeNode |
childZero
|
private float |
maximum
a double is 8 bytes |
private float |
minimum
a float is 4 bytes |
private OctreeARnode |
octreeARnode
|
| Fields inherited from class rlaramee.OctreeNode |
childNumber, cube, debug, parentNode, processed, siblingNode, triangleList |
| Constructor Summary | |
OctreeInternalNode(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)
This method merely calls OctreeARnode.addEdgeVertex(SharedEdgeVertex) . |
boolean |
addFacialVertex(SharedFacialVertex newSharedVertex)
This method merely calls OctreeARnode.addFacialVertex(SharedEdgeVertex) . |
void |
addTriangleEdge(TriangleEdge triangleEdge)
This method merely calls OctreeARnode.addTriangleEdge(TriangleEdge) . |
void |
assembleChainGang()
|
byte |
deleteTriangles(IsoSurface surface)
This is called from IsoSurfaceAdaptive.processSubdivide() An octree node has do delete its old coarser triangles before being subdivided. |
byte |
faceWithMaxChains()
|
private TriangleVertex |
findCommonEdge(TriangleVertex coarseVertex)
Deprecated. -Is this method still being used? |
byte |
generateTriangleFans(IsoSurface surface)
|
OctreeARnode |
getARnode()
|
OctreeNode |
getChildZero()
|
java.util.Vector |
getEdgeVertexList()
The following methods are really an interface for collaboration with the adaptive resolution octree node |
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 |
void |
setARnode(OctreeARnode newARnode)
|
boolean |
setChildZero(OctreeNode newOctreeNode)
|
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()
Deprecated. -this has to be updated in order to search TriangleEdge objects |
| Methods inherited from class java.lang.Object |
|
| Field Detail |
private float minimum
private float maximum
private OctreeNode childZero
private OctreeARnode octreeARnode
| Constructor Detail |
public OctreeInternalNode(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 newOctreeNode)
setChildZero in class OctreeNodethis - octree node's 0th child nodepublic OctreeARnode getARnode()
getARnode in class OctreeNodepublic void setARnode(OctreeARnode newARnode)
newARnode - a new adaptive resolution octree nodepublic java.util.Vector getEdgeVertexList()
getEdgeVertexList in class OctreeNodepublic boolean setEdgeVertexList(java.util.Vector newList)
setEdgeVertexList in class OctreeNodenewList - a shared EdgeVertexList for this octree nodepublic java.util.Vector getFacialVertexList()
getFacialVertexList in class OctreeNodepublic boolean setFacialVertexList(java.util.Vector newList)
setFacialVertexList in class OctreeNodenewList - a shared facialVertexList for this octree nodepublic boolean addEdgeVertex(SharedEdgeVertex newSharedVertex)
addEdgeVertex in class OctreeNodepublic boolean addFacialVertex(SharedFacialVertex newSharedVertex)
addFacialVertex in class OctreeNodepublic void addTriangleEdge(TriangleEdge triangleEdge)
addTriangleEdge in class OctreeNoderlaramee.OctreeNodepublic boolean updateEdgeVertices()
updateEdgeVertices in class OctreeNoderlaramee.OctreeNodeprivate TriangleVertex findCommonEdge(TriangleVertex coarseVertex)
coarseVertex - the vertex we may update if we find a
shared edge vertex on the same edgepublic byte deleteTriangles(IsoSurface surface)
deleteTriangles in class OctreeNodesurface - a reference to the isosurface
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 OctreeNoderlaramee.OctreeNodepublic void assembleChainGang()
assembleChainGang in class OctreeNoderlaramee.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 | |||||||