#include <tess_face_priority_list.h>
Inheritance diagram for NL3D::CTessFacePListNode:
Nevrax France
Definition at line 47 of file tess_face_priority_list.h.
Public Member Functions | |
void | appendPList (CTessFacePListNode &root) |
CTessFacePListNode (const CTessFacePListNode &) | |
CTessFacePListNode () | |
void | linkInPList (CTessFacePListNode &root) |
unlinkInPList, then link this node to the root of a list. | |
CTessFacePListNode * | nextInPList () const |
CTessFacePListNode & | operator= (const CTessFacePListNode &) |
CTessFacePListNode * | precInPList () const |
get next ptr. next==this if list empty. | |
void | unlinkInPList () |
if linked, unlink this node from his list. | |
~CTessFacePListNode () | |
Private Attributes | |
CTessFacePListNode * | _NextTessFaceInPList |
CTessFacePListNode * | _PrecTessFaceInPList |
|
Definition at line 52 of file tess_face_priority_list.h. References _NextTessFaceInPList, and _PrecTessFaceInPList.
00053 { 00054 _PrecTessFaceInPList= this; 00055 _NextTessFaceInPList= this; 00056 } |
|
Definition at line 57 of file tess_face_priority_list.h. References unlinkInPList().
00058 { 00059 // if not done, unlink. 00060 unlinkInPList(); 00061 } |
|
Definition at line 64 of file tess_face_priority_list.h. References _NextTessFaceInPList, and _PrecTessFaceInPList.
00065 { 00066 _PrecTessFaceInPList= this; 00067 _NextTessFaceInPList= this; 00068 } |
|
append a list just after this node. root is the root of the list. It is not inserted in the result. After this, the list pointed by "root" is empty. Definition at line 88 of file tess_face_priority_list.cpp. References _NextTessFaceInPList, and _PrecTessFaceInPList. Referenced by NL3D::CLandscape::refine(), NL3D::CTessFacePriorityList::shift(), and NL3D::CTessFacePriorityList::CRollingTable::shiftEntries().
00089 { 00090 // If list to append is not empty. 00091 if( root._NextTessFaceInPList != &root ) 00092 { 00093 // If we are empty. 00094 if( _NextTessFaceInPList==this ) 00095 { 00096 // link the appendList to the root. 00097 _PrecTessFaceInPList= root._PrecTessFaceInPList; 00098 _NextTessFaceInPList= root._NextTessFaceInPList; 00099 // link the root to the appendList. 00100 _PrecTessFaceInPList->_NextTessFaceInPList= this; 00101 _NextTessFaceInPList->_PrecTessFaceInPList= this; 00102 } 00103 // else bind first-last in the interval prec-next. 00104 else 00105 { 00106 CTessFacePListNode *first= root._NextTessFaceInPList; 00107 CTessFacePListNode *last= root._PrecTessFaceInPList; 00108 CTessFacePListNode *prec= this; 00109 CTessFacePListNode *next= _NextTessFaceInPList; 00110 // insert the appendList in our list. 00111 next->_PrecTessFaceInPList= last; 00112 prec->_NextTessFaceInPList= first; 00113 // insert our list in the appendList. 00114 last->_NextTessFaceInPList= next; 00115 first->_PrecTessFaceInPList= prec; 00116 } 00117 00118 // clear input list. 00119 root._PrecTessFaceInPList= &root; 00120 root._NextTessFaceInPList= &root; 00121 } 00122 } |
|
unlinkInPList, then link this node to the root of a list.
Definition at line 49 of file tess_face_priority_list.cpp. References _NextTessFaceInPList, and _PrecTessFaceInPList. Referenced by NL3D::CLandscape::newTessFace().
00050 { 00051 // unlink old list from me. 00052 _PrecTessFaceInPList->_NextTessFaceInPList= _NextTessFaceInPList; 00053 _NextTessFaceInPList->_PrecTessFaceInPList= _PrecTessFaceInPList; 00054 00055 // link me to the list. 00056 _PrecTessFaceInPList= &root; 00057 _NextTessFaceInPList= root._NextTessFaceInPList; 00058 // link the list to me. 00059 root._NextTessFaceInPList->_PrecTessFaceInPList= this; 00060 root._NextTessFaceInPList= this; 00061 /* 00062 NB if list was empty (this, this), then 00063 _PrecTessFaceInPList= &root 00064 _NextTessFaceInPList= root._NextTessFaceInPList= &root ! 00065 root._NextTessFaceInPList->_PrecTessFaceInPList= this; => root._PrecTessFaceInPList= this 00066 root._NextTessFaceInPList= this 00067 */ 00068 } |
|
Definition at line 84 of file tess_face_priority_list.h. References _NextTessFaceInPList. Referenced by NL3D::CTessFacePriorityList::CRollingTable::clearRollTableEntry(), and NL3D::CLandscape::refine().
00084 {return _NextTessFaceInPList;} |
|
Definition at line 70 of file tess_face_priority_list.h.
00070 {return *this;} |
|
get next ptr. next==this if list empty.
Definition at line 83 of file tess_face_priority_list.h. References _PrecTessFaceInPList.
00083 {return _PrecTessFaceInPList;} |
|
if linked, unlink this node from his list.
Definition at line 71 of file tess_face_priority_list.cpp. References _NextTessFaceInPList, and _PrecTessFaceInPList. Referenced by NL3D::CTessFacePriorityList::CRollingTable::clearRollTableEntry(), NL3D::CLandscape::deleteTessFace(), NL3D::CTessFacePriorityList::shift(), NL3D::CTessFacePriorityList::shiftAll(), NL3D::CTessFace::split(), NL3D::CTessFace::splitRectangular(), NL3D::CTessFace::updateRefineSplit(), and ~CTessFacePListNode().
00072 { 00073 /* 00074 NB: if this node was empty (this, this), this is a No-Op. 00075 If this node was the last of a list, then the root correctly get (&root, &root) after this. 00076 */ 00077 // unlink old list from me. 00078 _PrecTessFaceInPList->_NextTessFaceInPList= _NextTessFaceInPList; 00079 _NextTessFaceInPList->_PrecTessFaceInPList= _PrecTessFaceInPList; 00080 00081 // reset to empty node. 00082 _PrecTessFaceInPList= this; 00083 _NextTessFaceInPList= this; 00084 } |
|
Definition at line 88 of file tess_face_priority_list.h. Referenced by appendPList(), CTessFacePListNode(), linkInPList(), nextInPList(), and unlinkInPList(). |
|
Definition at line 87 of file tess_face_priority_list.h. Referenced by appendPList(), CTessFacePListNode(), linkInPList(), precInPList(), and unlinkInPList(). |