Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 4694 in orxonox.OLD for orxonox/trunk/src/lib/util/list.h


Ignore:
Timestamp:
Jun 24, 2005, 6:10:13 PM (19 years ago)
Author:
patrick
Message:

orxonox/trunk: now ready to implement the collision detection algorithm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/lib/util/list.h

    r4574 r4694  
    3434
    3535  T* nextElement();
     36  T* seekElement(T* element);
    3637
    3738 private:
    3839  listElement<T>*    currentEl;                      //!< pointer to the current list element in the iterator
    3940  listElement<T>*    tmpEl;                          //!< temp listElemnt pointer
     41  listElement<T>*    startElement;                   //!< pointer to the start of the list
    4042};
    4143
     
    6163  this->currentEl = startElement;
    6264  this->tmpEl = NULL;
     65  this->startElement = startElement;
    6366}
    6467
     
    8790  this->currentEl = this->currentEl->next;
    8891  return this->tmpEl->curr;
     92}
     93
     94/**
     95   \brief gets the element after the selected one, sets the iterator to this point in the list
     96   \param element the element to seek
     97   \returns next list element
     98
     99  Attention: if you seek an element, the iterator pointer will point to the NEXT listelement after the argument!
     100 */
     101template<class T>
     102inline T* tIterator<T>::seekElement (T* element)
     103{
     104  for(this->tmpEl = this->startElement; this->tmpEl != NULL; this->tmpEl = this->tmpEl->next)
     105  {
     106    if( unlikely(this->tmpEl->curr == element))
     107    {
     108      if( this->tmpEl->next != NULL)
     109      {
     110        this->currentEl = this->tmpEl->next->next;
     111        return this->tmpEl->next->curr;
     112      }
     113      return NULL;
     114    }
     115  }
     116  return NULL;
    89117}
    90118
     
    109137  bool isEmpty();
    110138  int getSize();
    111   //T* enumerate();
    112139  bool inList(T* entity);
    113140  tIterator<T>* getIterator();
Note: See TracChangeset for help on using the changeset viewer.