Changeset 5769 in orxonox.OLD for trunk/src/lib/coord
- Timestamp:
- Nov 24, 2005, 11:18:39 PM (19 years ago)
- Location:
- trunk/src/lib/coord
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/coord/p_node.cc
r5671 r5769 496 496 if (child != NULL) 497 497 { 498 child->remove ();498 child->removeNode(); 499 499 // this->children->remove(child); 500 500 // child->parent = NULL; … … 507 507 * this can be the case, if an entity in the world is being destroyed. 508 508 */ 509 void PNode::remove ()509 void PNode::removeNode() 510 510 { 511 511 tIterator<PNode>* iterator = this->children->getIterator(); … … 513 513 514 514 while( pn != NULL) 515 515 { 516 516 NullParent::getInstance()->addChild(pn); 517 517 pn = iterator->nextElement(); … … 609 609 * worry, normaly... 610 610 */ 611 void PNode::update (float dt)611 void PNode::updateNode (float dt) 612 612 { 613 613 if( likely(this->parent != NULL)) … … 698 698 pn->parentDirChanged (); 699 699 700 pn->update (dt);700 pn->updateNode(dt); 701 701 pn = iterator->nextElement(); 702 702 } … … 708 708 } 709 709 710 711 void PNode::countChildNodes(int& nodes) const 712 { 713 nodes++; 714 tIterator<PNode>* it = this->children->getIterator(); 715 PNode* node = it->firstElement(); 716 while(node != NULL) 717 { 718 node->countChildNodes(nodes); 719 node = it->nextElement(); 720 } 721 722 } 723 724 710 725 /** 711 726 * displays some information about this pNode … … 714 729 * @param level !! INTERNAL !! The n-th level of the Node we draw (this is internal and only for nice output). 715 730 */ 716 void PNode::debug (unsigned int depth, unsigned int level) const731 void PNode::debugNode(unsigned int depth, unsigned int level) const 717 732 { 718 733 for (unsigned int i = 0; i < level; i++) … … 722 737 else 723 738 PRINT(0)(" -"); 724 PRINT(0)("PNode(%s::%s) - absCoord: (%0.2f, %0.2f, %0.2f), relCoord(%0.2f, %0.2f, %0.2f), direction(%0.2f, %0.2f, %0.2f) - %s\n", 739 740 int childNodeCount = 0; 741 this->countChildNodes(childNodeCount); 742 743 PRINT(0)("PNode(%s::%s) - absCoord: (%0.2f, %0.2f, %0.2f), relCoord(%0.2f, %0.2f, %0.2f), direction(%0.2f, %0.2f, %0.2f) - %s - %d childs\n", 725 744 this->getClassName(), 726 745 this->getName(), … … 734 753 this->getAbsDirV().y, 735 754 this->getAbsDirV().z, 736 this->parentingModeToChar(parentMode)); 755 this->parentingModeToChar(parentMode), 756 childNodeCount); 737 757 if (depth >= 2 || depth == 0) 738 758 { … … 743 763 { 744 764 if (depth == 0) 745 pn->debug (0, level + 1);765 pn->debugNode(0, level + 1); 746 766 else 747 pn->debug (depth - 1, level +1);767 pn->debugNode(depth - 1, level +1); 748 768 pn = iterator->nextElement(); 749 769 } -
trunk/src/lib/coord/p_node.h
r5750 r5769 30 30 typedef enum 31 31 { 32 PNODE_LOCAL_ROTATE = 1, //!< Rotates all the children around their centers. 33 PNODE_ROTATE_MOVEMENT = 2, //!< Moves all the children around the center of their parent, without the rotation around their own centers. 32 // PARENTAL FOLLOWING 33 PNODE_LOCAL_ROTATE = 0x00000001, //!< Rotates all the children around their centers. 34 PNODE_ROTATE_MOVEMENT = 0x00000002, //!< Moves all the children around the center of their parent, without the rotation around their own centers. 34 35 35 PNODE_MOVEMENT =4, //!< Moves all children along with the parent.36 PNODE_MOVEMENT = 0x00000004, //!< Moves all children along with the parent. 36 37 // special linkage modes 37 PNODE_ALL = 3, //!< Moves all children around the center of their parent, and also rotates their centers 38 PNODE_ROTATE_AND_MOVE = 5 //!< Rotates all children around their axis, and moves them as the Parent Moves, but does not rotate around the center of their parent. 38 PNODE_ALL = 0x00000003, //!< Moves all children around the center of their parent, and also rotates their centers 39 PNODE_ROTATE_AND_MOVE = 0x00000005, //!< Rotates all children around their axis, and moves them as the Parent Moves, but does not rotate around the center of their parent. 40 41 42 PNODE_INACTIVE_NODE = 0x00000010, //!< If the node is Active (if not, it and its child wont be updated). 43 44 // REPARENTING 45 PNODE_REPARENT_TO_NULLPARENT = 0x00000100, 46 PNODE_REPARENT_KEEP_POSITION = 0x00000200, 47 48 49 // DELETION 50 PNODE_PROHIBIT_CHILD_DELETE = 0x00010000, 51 PNODE_PROHIBIT_DELETE_WITH_PARENT = 0x00020000, 39 52 40 53 } PARENT_MODE; 41 54 42 55 //! The default mode of the translation-binding. 43 #define PNODE_PARENT_MODE_DEFAULT PNODE_ALL 56 #define PNODE_PARENT_MODE_DEFAULT PNODE_ALL | PNODE_REPARENT_KEEP_POSITION 44 57 45 58 … … 101 114 void addChild (const char* childName); 102 115 void removeChild (PNode* child); 103 void remove ();116 void removeNode(); 104 117 105 118 void setParent (PNode* parent); … … 108 121 inline PNode* getParent () const { return this->parent; }; 109 122 /** @returns the List of Children of this PNode */ 110 inline const tList<PNode>* getChildren() const { return this->children; };123 // inline const tList<PNode>* getChildren() const { return this->children; }; 111 124 112 125 void setParentSoft(PNode* parentNode, float bias = 1.0); … … 119 132 int getParentMode() const { return this->parentMode; }; 120 133 121 void update (float dt);134 void updateNode (float dt); 122 135 123 void debug (unsigned int depth = 1, unsigned int level = 0) const; 136 void countChildNodes(int& nodes) const; 137 void debugNode (unsigned int depth = 1, unsigned int level = 0) const; 124 138 void debugDraw(unsigned int depth = 1, float size = 1.0, const Vector& color = Vector(1, 0, 0), unsigned int level = 0) const; 125 139
Note: See TracChangeset
for help on using the changeset viewer.