LLRoamTriNode Class Reference

#include <llroam.h>

Collaboration diagram for LLRoamTriNode:

Collaboration graph
List of all members.

Public Member Functions

 LLRoamTriNode (U8 level=0, S8 type=0, LLRoamTriNode *par=0)
virtual LLRoamTriNodenewLChild ()
virtual LLRoamTriNodenewRChild ()
virtual ~LLRoamTriNode ()
LLRoamTriNodeLchild () const
LLRoamTriNodeRchild () const
LLRoamTriNodeleft () const
LLRoamTriNoderight () const
LLRoamTriNodebase () const
LLRoamTriNodeparent () const
void setLeft (LLRoamTriNode *left)
void setRight (LLRoamTriNode *right)
void setBase (LLRoamTriNode *base)
void setParent (LLRoamTriNode *parent)
U8 level () const
BOOL leaf () const
void updateLink (LLRoamTriNode *old_link, LLRoamTriNode *new_link)
BOOL split (BOOL forceful=FALSE)
BOOL merge ()
void mergeSimple ()
void update ()
virtual void updatePassive ()
virtual BOOL refine ()
virtual void initForcefulRefine ()
virtual void flushFromQueue ()
LLRoamPatchpatch () const
void setPatch (LLRoamPatch *p)
const LLRoamTriNodegetFirstLeaf () const
const LLRoamTriNodegetNextLeaf () const
BOOL inQueue () const
void enqueue ()
void dequeue ()
BOOL checkConsistensy () const

Static Public Attributes

static LLRoamsQueues

Protected Attributes

U8 mLevel
S8 mType
BOOL mLeaf
BOOL mInQueue

Detailed Description

Definition at line 45 of file llroam.h.

Constructor & Destructor Documentation

LLRoamTriNode::LLRoamTriNode ( U8  level = 0,
S8  type = 0,
LLRoamTriNode par = 0 
) [inline]

Definition at line 66 of file llroam.h.

Referenced by newLChild(), and newRChild().

LLRoamTriNode::~LLRoamTriNode (  )  [virtual]

Definition at line 184 of file llroam.cpp.

References mLchild, and mRchild.

Member Function Documentation

LLRoamTriNode* LLRoamTriNode::base (  )  const [inline]

Definition at line 85 of file llroam.h.

References mBase.

Referenced by checkConsistensy(), merge(), mergeSimple(), setBase(), and split().

BOOL LLRoamTriNode::checkConsistensy (  )  const [inline]

Definition at line 115 of file llroam.h.

References base(), FALSE, Lchild(), leaf(), Rchild(), and TRUE.

Referenced by LLRoamPatch::checkConsistensy().

void LLRoamTriNode::dequeue (  )  [inline]

Definition at line 113 of file llroam.h.

References FALSE, and mInQueue.

void LLRoamTriNode::enqueue (  )  [inline]

Definition at line 112 of file llroam.h.

References mInQueue, and TRUE.

virtual void LLRoamTriNode::flushFromQueue (  )  [inline, virtual]

Definition at line 104 of file llroam.h.

Referenced by LLRoam::flushSplit().

const LLRoamTriNode * LLRoamTriNode::getFirstLeaf (  )  const

Definition at line 196 of file llroam.cpp.

References Lchild(), and leaf().

Referenced by getNextLeaf().

const LLRoamTriNode * LLRoamTriNode::getNextLeaf (  )  const

Definition at line 203 of file llroam.cpp.

References getFirstLeaf(), Lchild(), NULL, parent(), and Rchild().

virtual void LLRoamTriNode::initForcefulRefine (  )  [inline, virtual]

Definition at line 103 of file llroam.h.

Referenced by split().

BOOL LLRoamTriNode::inQueue (  )  const [inline]

Definition at line 111 of file llroam.h.

References mInQueue.

LLRoamTriNode* LLRoamTriNode::Lchild (  )  const [inline]

Definition at line 81 of file llroam.h.

References mLchild.

Referenced by checkConsistensy(), getFirstLeaf(), getNextLeaf(), LLRoam::processSplit(), and split().

BOOL LLRoamTriNode::leaf (  )  const [inline]

Definition at line 92 of file llroam.h.

References mLeaf.

Referenced by checkConsistensy(), getFirstLeaf(), merge(), split(), and update().

LLRoamTriNode* LLRoamTriNode::left (  )  const [inline]

Definition at line 83 of file llroam.h.

References mLeft.

Referenced by setLeft().

U8 LLRoamTriNode::level (  )  const [inline]

Definition at line 91 of file llroam.h.

References mLevel.

Referenced by LLRoamPatch::refine().

BOOL LLRoamTriNode::merge (  ) 

Definition at line 103 of file llroam.cpp.

References base(), FALSE, leaf(), mBase, merge(), mLchild, mLeaf, mLeft, mRchild, mRight, NULL, LLRoamPatch::numTrisDec(), LLRoamPatch::numTrisInc(), patch(), refine(), TRUE, and updateLink().

Referenced by merge().

void LLRoamTriNode::mergeSimple (  ) 

Definition at line 144 of file llroam.cpp.

References base(), mLchild, mLeaf, mLeft, mRchild, mRight, LLRoam::numOfProcessedTrisInc(), LLRoamPatch::numTrisDec(), patch(), sQueues, TRUE, and updateLink().

Referenced by LLRoam::flushMerge(), and LLRoam::processMerge().

virtual LLRoamTriNode* LLRoamTriNode::newLChild (  )  [inline, virtual]

Definition at line 71 of file llroam.h.

References LLRoamTriNode(), and mLevel.

Referenced by split().

virtual LLRoamTriNode* LLRoamTriNode::newRChild (  )  [inline, virtual]

Definition at line 75 of file llroam.h.

References LLRoamTriNode(), and mLevel.

Referenced by split().

LLRoamTriNode* LLRoamTriNode::parent (  )  const [inline]

Definition at line 86 of file llroam.h.

References mParent.

Referenced by getNextLeaf(), and setParent().

LLRoamPatch* LLRoamTriNode::patch (  )  const [inline]

Definition at line 105 of file llroam.h.

References mPatch.

Referenced by merge(), mergeSimple(), refine(), and split().

LLRoamTriNode* LLRoamTriNode::Rchild (  )  const [inline]

Definition at line 82 of file llroam.h.

References mRchild.

Referenced by checkConsistensy(), getNextLeaf(), and split().

BOOL LLRoamTriNode::refine (  )  [inline, virtual]

Definition at line 231 of file llroam.h.

References patch(), and LLRoamPatch::refine().

Referenced by merge(), and update().

LLRoamTriNode* LLRoamTriNode::right (  )  const [inline]

Definition at line 84 of file llroam.h.

References mRight.

Referenced by setRight().

void LLRoamTriNode::setBase ( LLRoamTriNode base  )  [inline]

Definition at line 89 of file llroam.h.

References base(), and mBase.

Referenced by LLRoamPatch::setTris(), and split().

void LLRoamTriNode::setLeft ( LLRoamTriNode left  )  [inline]

Definition at line 87 of file llroam.h.

References left(), and mLeft.

Referenced by split().

void LLRoamTriNode::setParent ( LLRoamTriNode parent  )  [inline]

Definition at line 90 of file llroam.h.

References mParent, and parent().

void LLRoamTriNode::setPatch ( LLRoamPatch p  )  [inline]

Definition at line 106 of file llroam.h.

References mPatch, and p.

Referenced by LLRoamPatch::setTris().

void LLRoamTriNode::setRight ( LLRoamTriNode right  )  [inline]

Definition at line 88 of file llroam.h.

References mRight, and right().

Referenced by split().

BOOL LLRoamTriNode::split ( BOOL  forceful = FALSE  ) 

Definition at line 48 of file llroam.cpp.

References base(), FALSE, initForcefulRefine(), Lchild(), leaf(), mBase, mLchild, mLeaf, mLeft, mRchild, mRight, newLChild(), newRChild(), NULL, LLRoam::numOfProcessedTrisInc(), LLRoamPatch::numTrisInc(), patch(), Rchild(), setBase(), setLeft(), setRight(), split(), sQueues, TRUE, and updateLink().

Referenced by split().

void LLRoamTriNode::update (  ) 

Definition at line 159 of file llroam.cpp.

References leaf(), LLRoam::queueForMerge(), LLRoam::queueForSplit(), refine(), and sQueues.

Referenced by LLRoam::processSplit(), and LLRoamPatch::update().

void LLRoamTriNode::updateLink ( LLRoamTriNode old_link,
LLRoamTriNode new_link 

Definition at line 38 of file llroam.cpp.

References mBase, mLeft, and mRight.

Referenced by merge(), mergeSimple(), and split().

virtual void LLRoamTriNode::updatePassive (  )  [inline, virtual]

Definition at line 100 of file llroam.h.

Referenced by LLRoamPatch::updatePassive().

Member Data Documentation

LLRoamTriNode* LLRoamTriNode::mBase [protected]

Definition at line 55 of file llroam.h.

Referenced by base(), merge(), setBase(), split(), and updateLink().

BOOL LLRoamTriNode::mInQueue [protected]

Definition at line 58 of file llroam.h.

Referenced by dequeue(), enqueue(), and inQueue().

LLRoamTriNode* LLRoamTriNode::mLchild [protected]

Definition at line 51 of file llroam.h.

Referenced by Lchild(), merge(), mergeSimple(), split(), and ~LLRoamTriNode().

BOOL LLRoamTriNode::mLeaf [protected]

Definition at line 57 of file llroam.h.

Referenced by leaf(), merge(), mergeSimple(), and split().

LLRoamTriNode* LLRoamTriNode::mLeft [protected]

Definition at line 53 of file llroam.h.

Referenced by left(), merge(), mergeSimple(), setLeft(), split(), and updateLink().

U8 LLRoamTriNode::mLevel [protected]

Definition at line 48 of file llroam.h.

Referenced by level(), newLChild(), and newRChild().

LLRoamTriNode* LLRoamTriNode::mParent [protected]

Definition at line 50 of file llroam.h.

Referenced by parent(), and setParent().

LLRoamPatch* LLRoamTriNode::mPatch [protected]

Definition at line 56 of file llroam.h.

Referenced by patch(), and setPatch().

LLRoamTriNode* LLRoamTriNode::mRchild [protected]

Definition at line 52 of file llroam.h.

Referenced by merge(), mergeSimple(), Rchild(), split(), and ~LLRoamTriNode().

LLRoamTriNode* LLRoamTriNode::mRight [protected]

Definition at line 54 of file llroam.h.

Referenced by merge(), mergeSimple(), right(), setRight(), split(), and updateLink().

S8 LLRoamTriNode::mType [protected]

Definition at line 49 of file llroam.h.

LLRoam * LLRoamTriNode::sQueues [static]

Definition at line 61 of file llroam.h.

Referenced by mergeSimple(), split(), and update().

The documentation for this class was generated from the following files:
Generated on Thu Jul 1 06:11:42 2010 for Second Life Viewer by  doxygen 1.4.7