Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::HalfEdgeGraph::TriangleList Class Reference

List of all members.

Public Member Functions

 TriangleList (void)
void reset (void)
bool empty (void)
UInt32 countElem (void)
void release (Triangle &node)
void add (Triangle &triangle)
void paste (TriangleList &list)

Public Attributes

Trianglefirst
Trianglelast

Detailed Description

Definition at line 115 of file OSGHalfEdgeGraph.h.


Constructor & Destructor Documentation

osg::HalfEdgeGraph::TriangleList::TriangleList void   )  [inline]
 

Definition at line 116 of file OSGHalfEdgeGraph.inl.

00117     : first(0), last(0)
00118     {
00119     }


Member Function Documentation

void osg::HalfEdgeGraph::TriangleList::reset void   )  [inline]
 

Definition at line 122 of file OSGHalfEdgeGraph.inl.

References first, and last.

00123 {
00124     first = 0; last = 0;
00125 }

bool osg::HalfEdgeGraph::TriangleList::empty void   )  [inline]
 

Definition at line 128 of file OSGHalfEdgeGraph.inl.

References first.

Referenced by osg::HalfEdgeGraph::calcOptPrim(), and paste().

00129 {
00130     return first ? false : true;
00131 }

UInt32 osg::HalfEdgeGraph::TriangleList::countElem void   )  [inline]
 

Definition at line 134 of file OSGHalfEdgeGraph.inl.

References first, and osg::HalfEdgeGraph::Triangle::next.

Referenced by osg::HalfEdgeGraph::calcOptPrim(), and osg::HalfEdgeGraph::verify().

00135 {
00136     UInt32 count = 0;
00137     for(Triangle *f = first; f; f = f->next)
00138         ++count;
00139     return count;
00140 }

void osg::HalfEdgeGraph::TriangleList::release Triangle node  )  [inline]
 

Definition at line 143 of file OSGHalfEdgeGraph.inl.

References first, last, osg::HalfEdgeGraph::Triangle::next, and osg::HalfEdgeGraph::Triangle::prev.

Referenced by osg::HalfEdgeGraph::calcOptPrim(), and osg::HalfEdgeGraph::dropOutTriangle().

00144 {
00145     if(node.next)
00146     {
00147         if(node.prev)
00148         {
00149             node.next->prev = node.prev;
00150             node.prev->next = node.next;
00151         }
00152         else
00153         {
00154             node.next->prev = 0;
00155             this->first = node.next;
00156         }
00157     }
00158     else
00159     {
00160         if(node.prev)
00161         {
00162             node.prev->next = 0;
00163             this->last = node.prev;
00164         }
00165         else
00166         {
00167             this->first = 0;
00168             this->last = 0;
00169         }
00170     }
00171     node.next = node.prev = 0;
00172 }

void osg::HalfEdgeGraph::TriangleList::add Triangle triangle  )  [inline]
 

Definition at line 175 of file OSGHalfEdgeGraph.inl.

References first, last, osg::HalfEdgeGraph::Triangle::next, and osg::HalfEdgeGraph::Triangle::prev.

Referenced by osg::HalfEdgeGraph::addTriangle(), osg::HalfEdgeGraph::calcOptPrim(), and osg::HalfEdgeGraph::dropOutTriangle().

00176 {
00177     if(last)
00178     {
00179         last->next = ▵
00180         triangle.prev = last;
00181         last = ▵
00182     }
00183     else
00184     {
00185         last = ▵
00186         first = ▵
00187     }
00188 }

void osg::HalfEdgeGraph::TriangleList::paste TriangleList list  )  [inline]
 

Definition at line 191 of file OSGHalfEdgeGraph.inl.

References empty(), first, last, osg::HalfEdgeGraph::Triangle::next, and osg::HalfEdgeGraph::Triangle::prev.

Referenced by osg::HalfEdgeGraph::calcOptPrim().

00192 {
00193     if(&list != this)
00194     {
00195         if(empty())
00196         {
00197             first = list.first;
00198             last  = list.last;
00199         }
00200         else
00201         {
00202             if(list.first)
00203             {
00204                 last->next = list.first;
00205                 list.first->prev = last;
00206                 last = list.last;
00207             }
00208         }
00209         list.first = 0;
00210         list.last  = 0;
00211     }
00212 }


Member Data Documentation

Triangle* osg::HalfEdgeGraph::TriangleList::first
 

Definition at line 120 of file OSGHalfEdgeGraph.h.

Referenced by add(), osg::HalfEdgeGraph::calcOptPrim(), osg::HalfEdgeGraph::calcStripCost(), countElem(), empty(), paste(), release(), reset(), and osg::HalfEdgeGraph::verify().

Triangle* osg::HalfEdgeGraph::TriangleList::last
 

Definition at line 121 of file OSGHalfEdgeGraph.h.

Referenced by add(), osg::HalfEdgeGraph::calcStripCost(), paste(), release(), and reset().


The documentation for this class was generated from the following files:
Generated on Thu Aug 25 04:15:33 2005 for OpenSG by  doxygen 1.4.3