|
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.ChainGang
Description: This class encapsulates all the AR chain processing. Finer resolution nodes search their coarser resolution neighbors for triangle edges that lie on the faces and edges of their coarser neighbors. When a shared trianlge edge is found, it is added to a list of triangle edges. The triangle edges are then assembled into chains. A group of chains belonging to an OctreeARnode is called a chain gang. Their maybe multiple chains on each face of a cube.
start date Wed 16 May 2001
Field Summary | |
private Chain[] |
chainGang
the list of triangle edges is re-assembled into a chain gang |
private java.util.ArrayList |
triangleEdges
a list of triangle edges |
Constructor Summary | |
ChainGang()
For now, we reserve one chain for each side of the cube. |
Method Summary | |
void |
addTriangleEdge(TriangleEdge triangleEdge)
This method is called from OctreeARnode.addTriangleEdge() |
void |
assemble()
This method is called from OctreeARnode.assembleChainGang() . |
byte |
faceWithMaxChains()
|
Chain |
getChain(byte face)
Also called from OctreeInternalNode.generateTriangleFans() |
private TriangleEdge |
getChainLink(TriangleEdge link)
This method is called from OctreeARnode.assembleChainGang() . |
private TriangleEdge |
getChainStarter(byte face)
This method is called from OctreeARnode.assembleChainGang() . |
java.util.ArrayList |
getTriangleEdges()
|
byte |
maxChainsPerFace()
For our first version, there can only be one chain on a face. |
private void |
setChain(byte face,
Chain newChain)
|
private void |
setChainLink(TriangleEdge link,
byte face)
|
boolean |
setTriangleEdges(java.util.ArrayList newList)
|
java.lang.String |
toString()
print out a node's information |
Methods inherited from class java.lang.Object |
|
Field Detail |
private java.util.ArrayList triangleEdges
private Chain[] chainGang
Constructor Detail |
public ChainGang()
index side ----- ---- 0 Constant.RIGHT (x directions) 1 Constant.LEFT 2 Constant.UP (y directions) 3 Constant.DOWN 4 Constant.FRONT (z directions) 5 Constant.BACKFor now, we'll leave the triangle edges that don't "fit" onto a chain on the triangle edge list
Must watch out for MR and AR chains
Method Detail |
public java.util.ArrayList getTriangleEdges()
public boolean setTriangleEdges(java.util.ArrayList newList)
newList
- a triangle edge list for this octree nodepublic void addTriangleEdge(TriangleEdge triangleEdge)
triangleEdge
- the triangle edge we are adding to this AR octree
nodepublic Chain getChain(byte face)
face
- one of 6 faces on the cube: private void setChain(byte face, Chain newChain)
face
- one of 6 faces on the cube: newChain
- a new Chain objectprivate void setChainLink(TriangleEdge link, byte face)
link
- a link in one of the chainsface
- the AR octree node's face that the link is onpublic void assemble()
It is called after the first pass through the AR data and all of the AR octree nodes have been identified. It's job is to re-assemble the list of triangle edges that belong to this node into chains of edges that lie on the faces of this node.
private TriangleEdge getChainLink(TriangleEdge link)
edge
- a triangle edgeprivate TriangleEdge getChainStarter(byte face)
face
- the cube face on which to check for a chain starterpublic byte maxChainsPerFace()
public byte faceWithMaxChains()
public java.lang.String toString()
toString
in class java.lang.Object
|
IsoSurface Rendering of an AR Representation | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |