|
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 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 newOctreeNode)
setChildZero
in class OctreeNode
this
- octree node's 0th child nodepublic OctreeARnode getARnode()
getARnode
in class OctreeNode
public void setARnode(OctreeARnode newARnode)
newARnode
- a new adaptive resolution octree nodepublic java.util.Vector getEdgeVertexList()
getEdgeVertexList
in class OctreeNode
public boolean setEdgeVertexList(java.util.Vector newList)
setEdgeVertexList
in class OctreeNode
newList
- a shared EdgeVertexList for this octree nodepublic java.util.Vector getFacialVertexList()
getFacialVertexList
in class OctreeNode
public boolean setFacialVertexList(java.util.Vector newList)
setFacialVertexList
in class OctreeNode
newList
- a shared facialVertexList for this octree nodepublic boolean addEdgeVertex(SharedEdgeVertex newSharedVertex)
addEdgeVertex
in class OctreeNode
public boolean addFacialVertex(SharedFacialVertex newSharedVertex)
addFacialVertex
in class OctreeNode
public void addTriangleEdge(TriangleEdge triangleEdge)
addTriangleEdge
in class OctreeNode
rlaramee.OctreeNode
public boolean updateEdgeVertices()
updateEdgeVertices
in class OctreeNode
rlaramee.OctreeNode
private 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 OctreeNode
surface
- a reference to the isosurfacepublic 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
rlaramee.OctreeNode
public void assembleChainGang()
assembleChainGang
in class OctreeNode
rlaramee.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 |