Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 4574 in orxonox.OLD for orxonox/trunk


Ignore:
Timestamp:
Jun 10, 2005, 1:50:37 AM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: PNode debug info much better now (recursive)

Location:
orxonox/trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/lib/coord/p_node.cc

    r4571 r4574  
    426426      PNode* pn = iterator->nextElement();
    427427      while( pn != NULL)
    428         {
    429           /* if this node has changed, make sure, that all children are updated also */
     428      {
     429        /* if this node has changed, make sure, that all children are updated also */
    430430          if( this->bRelCoorChanged || this->bAbsCoorChanged)
    431431            pn->parentCoorChanged ();
     
    436436          pn = iterator->nextElement();
    437437        }
    438 
     438      delete iterator;
    439439      this->bRelCoorChanged = false;
    440440      this->bAbsCoorChanged = false;
     
    446446/**
    447447   \brief displays some information about this pNode
    448 */
    449 void PNode::debug(unsigned int depth) const
    450 {
    451   PRINTF(2)("PNode::debug() - absCoord: (%f, %f, %f)\n",
    452          this->absCoordinate.x,
    453          this->absCoordinate.y,
    454          this->absCoordinate.z);
     448   \param depth The deph into which to debug the children of this PNode to.
     449  (0: all children will be debugged, 1: only this PNode, 2: this and direct children...)
     450   \param level The n-th level of the Node we draw (this is internal and only for nice output)
     451*/
     452void PNode::debug(unsigned int depth, unsigned int level) const
     453{
     454  for (unsigned int i = 0; i < level; i++)
     455    PRINT(0)("|");
     456  if (this->children->getSize() > 0)
     457    PRINT(0)("+");
     458  PRINT(0)("PNode(%s::%s) - absCoord: (%0.2f, %0.2f, %0.2f), relCoord(%0.2f, %0.2f, %0.2f)\n",
     459           this->getClassName(),
     460           this->getName(),
     461           this->absCoordinate.x,
     462           this->absCoordinate.y,
     463           this->absCoordinate.z,
     464           this->relCoordinate.x,
     465           this->relCoordinate.y,
     466           this->relCoordinate.z );
     467  if (depth >= 2 || depth == 0)
     468  {
     469    tIterator<PNode>* iterator = this->children->getIterator();
     470      //PNode* pn = this->children->enumerate ();
     471    PNode* pn = iterator->nextElement();
     472    while( pn != NULL)
     473    {
     474      if (depth == 0)
     475        pn->debug(0, level + 1);
     476      else
     477        pn->debug(depth - 1, level +1);
     478      pn = iterator->nextElement();
     479    }
     480    delete iterator;
     481  }
    455482}
    456483
  • orxonox/trunk/src/lib/coord/p_node.h

    r4571 r4574  
    3232template<class T> class tList;
    3333
    34 //! enumeration for the different translation-binding-types
    35 //typedef enum parentingMode {PNODE_LOCAL_ROTATE, PNODE_ROTATE_MOVEMENT, PNODE_ALL, PNODE_MOVEMENT, PNODE_ROTATE_AND_MOVE};
    3634// linkage modes
    3735#define PNODE_LOCAL_ROTATE       1    //!< Rotates all the children around their centers.
     
    9492  void update (float dt);
    9593
    96   void debug (unsigned int depth = 1) const;
     94  void debug (unsigned int depth = 1, unsigned int level = 0) const;
    9795  void debugDraw(float size = 1.0) const;
    9896
  • orxonox/trunk/src/lib/util/list.h

    r4508 r4574  
    1414
    1515
    16 //! a list element of the tList, 
     16//! a list element of the tList,
    1717template<class T> struct listElement
    1818{
     
    3232  tIterator(listElement<T>* startElement);
    3333  ~tIterator();
    34  
     34
    3535  T* nextElement();
    3636
     
    4545   \param startElement:  the first list element from the tList
    4646
    47    normaly you will use it like this: 
     47   normaly you will use it like this:
    4848
    4949   tIterator<char>* nameIterator = nameList->getIterator();
    50    char name* = nameIterator->nextElement(); 
     50   char name* = nameIterator->nextElement();
    5151   while( name != NULL)
    5252   {
    5353     PRINTF(3)("found name: %s in list\n", name);
    54      name = nameIterator->nextElement(); 
     54     name = nameIterator->nextElement();
    5555   }
    56    delete nameIterator;       
    57 */
    58 template<class T>
    59 inline tIterator<T>::tIterator (listElement<T>* startElement) 
     56   delete nameIterator;
     57*/
     58template<class T>
     59inline tIterator<T>::tIterator (listElement<T>* startElement)
    6060{
    6161  this->currentEl = startElement;
     
    9696   you will use this as a generic list for all type of objects
    9797*/
    98 template<class T> class tList 
     98template<class T> class tList
    9999{
    100100 public:
     
    127127*/
    128128template<class T>
    129 inline tList<T>::tList () 
     129inline tList<T>::tList ()
    130130{
    131131  this->first = NULL;
     
    138138   \brief the deconstructor
    139139
    140    this will delete only the list. ATTENTION: the list is deleted, but the objects in the list will 
     140   this will delete only the list. ATTENTION: the list is deleted, but the objects in the list will
    141141   not be deleted
    142142*/
    143143template<class T>
    144 inline tList<T>::~tList () 
     144inline tList<T>::~tList ()
    145145{
    146146  this->currentEl = this->first;
     
    191191    {
    192192      if( unlikely(this->currentEl->curr == entity))
    193         {
    194           if( unlikely(this->currentEl->prev  == NULL)) this->first = this->currentEl->next;
    195           else this->currentEl->prev->next = this->currentEl->next;
    196 
    197           if( unlikely(this->currentEl->next == NULL)) this->last = this->currentEl->prev;
    198           else this->currentEl->next->prev = this->currentEl->prev;
    199 
    200           delete this->currentEl;
    201           this->size--;
    202           return;
    203         }
     193        {
     194          if( unlikely(this->currentEl->prev  == NULL)) this->first = this->currentEl->next;
     195          else this->currentEl->prev->next = this->currentEl->next;
     196
     197          if( unlikely(this->currentEl->next == NULL)) this->last = this->currentEl->prev;
     198          else this->currentEl->next->prev = this->currentEl->prev;
     199
     200          delete this->currentEl;
     201          this->size--;
     202          return;
     203        }
    204204      this->currentEl = this->currentEl->next;
    205205    }
     
    266266template<class T>
    267267inline bool tList<T>::inList(T* entity)
    268 { 
     268{
    269269  // pre checks
    270270  if(this->size == 0) return false;
     
    277277
    278278  // post checks
    279   if(this->currentEl == NULL) 
     279  if(this->currentEl == NULL)
    280280    return false;
    281281  else
  • orxonox/trunk/src/story_entities/world.cc

    r4571 r4574  
    519519
    520520  new PhysicsConnection(testEntity, gravity);
     521
     522
     523  NullParent::getInstance()->debug(0);
    521524}
    522525
Note: See TracChangeset for help on using the changeset viewer.