Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9869 in orxonox.OLD for trunk/src/lib/coord/p_node.h


Ignore:
Timestamp:
Oct 3, 2006, 12:19:30 AM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/coord/p_node.h

    r9406 r9869  
    5050  PNODE_REPARENT_DELETE_CHILDREN       = 0x0040,    //!< Deletes the Children of the node when This Node is Removed. (Use with care).
    5151  /// FIXME
    52    PNODE_REPARENT_KEEP_POSITION         = 0x0080,    //!< Tries to keep the Position if the Node is reparented.
     52  PNODE_REPARENT_KEEP_POSITION         = 0x0080,    //!< Tries to keep the Position if the Node is reparented.
    5353
    5454
     
    7373
    7474//! Patent Node is a Engine to calculate the position of an Object in respect to the position of its parent.
    75 class PNode : virtual public BaseObject, virtual public Synchronizeable {
    76  public:
     75class PNode : virtual public BaseObject, virtual public Synchronizeable
     76{
     77  ObjectListDeclaration(PNode);
     78
     79public:
    7780  PNode (PNode* parent = PNode::getNullParent(), long nodeFlags = PNODE_PARENT_MODE_DEFAULT);
    7881  virtual ~PNode ();
     
    9598  inline const Vector& getRelCoor () const { return this->prevRelCoordinate; };
    9699  /** @returns the Relative Coordinate Destination */
    97   inline const Vector& getRelCoorSoft2D() const { return (this->toCoordinate)? *this->toCoordinate : this->relCoordinate; };
     100inline const Vector& getRelCoorSoft2D() const { return (this->toCoordinate)? *this->toCoordinate : this->relCoordinate; };
    98101  void setAbsCoor (const Vector& absCoord);
    99102  void setAbsCoor (float x, float y, float z);
     
    130133  inline const Quaternion& getRelDir () const { return this->prevRelDirection; };
    131134  /** @returns the Relative Directional Destination */
    132   inline const Quaternion& getRelDirSoft2D() const { return (this->toDirection)? *this->toDirection : this->relDirection; };
     135inline const Quaternion& getRelDirSoft2D() const { return (this->toDirection)? *this->toDirection : this->relDirection; };
    133136  /** @returns a Vector pointing into the relative Direction */
    134137  inline Vector getRelDirV() const { return this->prevRelDirection.apply(Vector(0,1,0)); };
     
    178181  void removeNodeFlags(unsigned short nodeFlags);
    179182
    180   // NULL_PARENT //
    181183  /** @returns the NullParent, the (main) ROOT of the PNode Tree. If it does not yet exist, it will be created. */
    182   static PNode* getNullParent()  { return (PNode::nullParent != NULL)? PNode::nullParent : PNode::createNullParent(); };
     184static PNode* getNullParent()  { return (PNode::nullParent != NULL) ? PNode::nullParent : PNode::createNullParent(); };
    183185
    184186  // UPDATING //
     
    195197  float distance(const PNode* node) const { return (this->getAbsCoor() - node->getAbsCoor()).len(); };
    196198
    197  private:
     199private:
    198200  /** tells the child that the parent's Coordinate has changed */
    199201  inline void parentCoorChanged () { this->bRelCoorChanged = true; }
    200202  /** tells the child that the parent's Direction has changed */
    201203  inline void parentDirChanged () { this->bRelDirChanged = true; }
    202  public:
     204public:
    203205  /** @returns the last calculated coordinate */
    204206  inline Vector getLastAbsCoor() { return this->lastAbsCoordinate; }
    205  private:
     207private:
    206208  static PNode* createNullParent();
    207209  void reparent();
     
    209211  void eraseChild(PNode* child);
    210212
    211  private:
     213private:
    212214  bool               bRelCoorChanged;    //!< If Relative Coordinate has changed since last time we checked
    213215  bool               bRelDirChanged;     //!< If Relative Direction has changed since last time we checked
     
    221223  Vector             lastAbsCoordinate;  //!< this is used for speedcalculation, it stores the last coordinate
    222224  Quaternion         prevRelDirection;   //!< The last Relative Direciton from the last update-Cycle.
    223 //  Quaternion         lastAbsDirection;
     225  //  Quaternion         lastAbsDirection;
    224226
    225227  Vector             velocity;           //!< Saves the velocity.
     
    238240  static PNode*      nullParent;         //!< The ROOT of the main PNode Tree.
    239241
    240   private:
    241     float coorx;
    242     float coory;
    243     float coorz;
    244 
    245     float rotw;
    246     float rotx;
    247     float roty;
    248     float rotz;
    249 
    250   private:
    251     int relCoordinate_handle;
    252     int relDirection_handle;
    253     Vector relCoordinate_write;
    254     Quaternion relDirection_write;
    255 
    256   public:
    257     virtual void varChangeHandler( std::list<int> & id );
     242private:
     243  float coorx;
     244  float coory;
     245  float coorz;
     246
     247  float rotw;
     248  float rotx;
     249  float roty;
     250  float rotz;
     251
     252private:
     253  int relCoordinate_handle;
     254  int relDirection_handle;
     255  Vector relCoordinate_write;
     256  Quaternion relDirection_write;
     257
     258public:
     259  virtual void varChangeHandler( std::list<int> & id );
    258260};
    259261
     262// NULL_PARENT //
     263class NullParent : public PNode
     264{
     265  ObjectListDeclaration(NullParent);
     266  friend class PNode;
     267  NullParent();
     268};
     269
     270
    260271#endif /* _P_NODE_H */
Note: See TracChangeset for help on using the changeset viewer.