Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10091 in orxonox.OLD for branches/playability


Ignore:
Timestamp:
Dec 18, 2006, 4:36:03 PM (18 years ago)
Author:
bknecht
Message:

a few more steps fusing TrackElement and TrackManager to Track.. not very far, can't really work during the afternoon. Will have some time this evening

Location:
branches/playability/src/util/track
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/playability/src/util/track/track.cc

    r10088 r10091  
    2626#include "track/track.h"
    2727
    28 #include "track/track_manager.h"
    2928#include "p_node.h"
    3029
     
    5958void Track::init()
    6059{
    61   // resetting all elements
    62   this->firstTrackElem = NULL;
    63 
    64 
    65   // make a debug track
    66   this->firstTrackElem = new TrackElement();
    67   this->firstTrackElem->ID = 1;
    68   this->firstTrackElem->setName("root");
    69 
    70   this->currentTrackElem = firstTrackElem;
    71 
    7260  this->curveType = CURVE_BEZIER;
    73   this->trackElemCount = 1;
    74 
     61  this->startingTime = 0;
     62  this->duration = 10;
     63  this->endTime = 1;
     64  this->width = 10;
     65  this->curve = new BezierCurve();
    7566  this->trackNode = new PNode(PNode::getNullParent(), PNODE_ALL);
    7667}
     
    8172Track::~Track()
    8273{
    83   if( this->firstTrackElem)
    84     delete this->firstTrackElem;
     74
    8575}
    8676
     
    117107void Track::addPoint(Vector newPoint)
    118108{
    119 //   if (this->currentTrackElem->isFresh)
    120 //     {
    121 //       this->setCurveType(CURVE_BEZIER, this->currentTrackElem);
    122 //       this->currentTrackElem->isFresh = false;
    123 //     }
    124 //   trackElem->curve->addNode(newPoint);
    125 //   trackElem->nodeCount++;
     109   this->curve->addNode(newPoint);
     110   this->nodeCount++;
    126111}
    127112
     
    173158}
    174159
    175 Vector TrackManager::calcPos() const
    176 {
    177   return this->currentTrackElem->curve->calcPos((this->localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
    178 }
    179 
    180 Vector TrackManager::calcDir() const
    181 {
    182   return this->currentTrackElem->curve->calcDir((this->localTime - this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
     160Vector Track::calcPos() const
     161{
     162  return this->curve->calcPos((this->localTime-this->startingTime)/this->duration);
     163}
     164
     165Vector Track::calcDir() const
     166{
     167  return this->curve->calcDir((this->localTime - this->startingTime)/this->duration);
    183168}
    184169
     
    222207 * @returns the main TrackNode
    223208*/
    224 PNode* TrackManager::getTrackNode()
     209PNode* Track::getTrackNode()
    225210{
    226211  return this->trackNode;
  • branches/playability/src/util/track/track.h

    r10088 r10091  
    1212class PNode;
    1313class TiXmlElement;
    14 class TrackElement;
    1514
    1615class Track : public BaseObject
     
    2322   virtual ~Track();
    2423
    25       virtual void loadParams(const TiXmlElement* root);
    26       void addPoint(float x, float y, float z);
    27       void addPoint(Vector newPoint);
     24   virtual void loadParams(const TiXmlElement* root);
     25   void addPoint(float x, float y, float z);
     26   void addPoint(Vector newPoint);
    2827
    29       void finalize();
    30       inline Vector calcPos() const;
    31       inline Vector calcDir() const;
    32       void tick(float dt);
     28   void finalize();
     29   inline Vector calcPos() const;
     30   inline Vector calcDir() const;
     31   void tick(float dt);
    3332
    34       PNode* getTrackNode();
     33   PNode* getTrackNode();
     34     
     35   float                 startingTime;         //!< The time at which this Track begins.
     36   float                 duration;             //!< The time used to cross this Track (curve).
     37   float                 endTime;              //!< The time at which this Track ends.
     38   float                 width;                //!< Th width of the Path. This tells the Player(s), how far he(they) can go to the left/right.
    3539
    36   private:
    37     void init();
     40   int                   nodeCount;            //!< The count of points this Track has.
     41   Curve*                curve;                //!< The Curve of this Track
     42
     43 private:
     44   void init();
    3845
    3946
    4047 private:
    41       TrackElement*        firstTrackElem;         //!< The first TrackElement that exists.
    42       TrackElement*        currentTrackElem;       //!< The TrackElement we are working on.
    43       CurveType            curveType;              //!< The CurveType the entire TrackSystem will have.
    44       int                  trackElemCount;         //!< The count of TrackElements that exist.
    45 
    46       PNode*               trackNode;              //!< The node that is slave to the Track. This node will be moved while update the Track, and must NOT move itself.
     48   CurveType            curveType;              //!< The CurveType the entire TrackSystem will have.
     49   float                localTime;              //!< The time that has been passed since the traveling the Track.
     50   PNode*               trackNode;              //!< The node that is slave to the Track. This node will be moved while update the Track, and must NOT move itself.
    4751};
    4852
Note: See TracChangeset for help on using the changeset viewer.