LLRoamTriNode Class Reference

#include <llroam.h>

Collaboration diagram for LLRoamTriNode:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LLRoamTriNode (U8 level=0, S8 type=0, LLRoamTriNode *par=0)
virtual LLRoamTriNode * newLChild ()
virtual LLRoamTriNode * newRChild ()
virtual ~LLRoamTriNode ()
LLRoamTriNode * Lchild () const
LLRoamTriNode * Rchild () const
LLRoamTriNode * left () const
LLRoamTriNode * right () const
LLRoamTriNode * base () const
LLRoamTriNode * parent () 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 ()
LLRoamPatch * patch () const
void setPatch (LLRoamPatch *p)
const LLRoamTriNode * getFirstLeaf () const
const LLRoamTriNode * getNextLeaf () const
BOOL inQueue () const
void enqueue ()
void dequeue ()
BOOL checkConsistensy () const

Static Public Attributes

static LLRoam * sQueues

Protected Attributes

U8 mLevel
S8 mType
LLRoamTriNode * mParent
LLRoamTriNode * mLchild
LLRoamTriNode * mRchild
LLRoamTriNode * mLeft
LLRoamTriNode * mRight
LLRoamTriNode * mBase
LLRoamPatch * mPatch
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