- Timestamp:
- Jan 4, 2005, 5:44:21 AM (20 years ago)
- Location:
- orxonox/branches/parenting/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/parenting/src/curve.cc
r3328 r3330 27 27 #include <math.h> 28 28 #include <stdio.h> 29 30 29 31 30 /** -
orxonox/branches/parenting/src/curve.h
r3327 r3330 11 11 12 12 #include "vector.h" 13 14 //! An Enumerator that defines what sort of Curves are availible 15 enum CurveType {BEZIER, UPOINT}; 13 16 14 17 -
orxonox/branches/parenting/src/track_manager.cc
r3311 r3330 39 39 \todo this deconstructor is not jet implemented - do it 40 40 */ 41 TrackManager::~TrackManager () {} 42 41 TrackManager::~TrackManager () 42 { 43 44 } 45 46 /** 47 \brief Searches for a given trackID. 48 \param trackID the trackID to search for. 49 \returns The TrackElement #trackID if found, NULL otherways. 50 */ 51 TrackElement TrackManager::findTrackElementByID(int trackID) 52 { 53 54 } 55 56 // INITIALIZE // 57 58 /** 59 \brief Sets the trackID we are working on. 60 \param trackID the trackID we are working on 61 */ 62 void TrackManager::workOn(int trackID) 63 { 64 65 } 66 67 /** 68 \brief Sets the Type of the Curve 69 \brief curveType The Type to set 70 */ 71 void TrackManager::setType(CurveType curveType) 72 { 73 74 } 75 76 /** 77 \brief Sets the length of the current path in seconds. 78 \param time The length in seconds. 79 */ 80 81 void TrackManager::setLength(float time) 82 { 83 84 } 85 86 /** 87 \brief adds a point to the current TrackElement 88 \param newPoint The point to add. 89 */ 90 void TrackManager::addPoint(Vector newPoint) 91 { 92 93 } 94 95 /** 96 \brief adds save/splitpoint. 97 \param newPoint The point to add. 98 */ 99 void TrackManager::addHotPoint(Vector newPoint) 100 { 101 102 } 103 104 /** 105 \brief Sets the last HotPoint into a savePoint. 106 107 If no HotPoint was defined the last added Point will be rendered into a savePoint. \n 108 If the HotPoint was defined as a fork the Point will \b not be set into a savePoint. 109 */ 110 void TrackManager::setSavePoint(void) 111 { 112 113 } 114 115 /** 116 \brief adds some interessting non-linear movments through the level. 117 \param count The Count of childrens the current HotPoint will have. 118 119 If no HotPoint was defined the last added Point will be rendered into a fork. \n 120 If the HotPoint was defined as a savePoint the Point will \b not be set into a fork. 121 */ 122 void TrackManager::fork(int count, ...) 123 { 124 125 } 126 127 /** 128 \brief adds some interessting non-linear movments through the level. 129 \param count The Count of childrens the current HotPoint will have. 130 \param trackIDs A Pointer to an Array of ints which will hold the trackID's (the user will have to reserve space for this). 131 132 \see void TrackManager::fork(int count, ...) 133 */ 134 void TrackManager::forkV(int count, int* trackIDs) 135 { 136 137 } 138 139 /** 140 \brief decides under what condition a certain Path will be chosen. 141 \param groupID the ID on which to choose the preceding move 142 \param cond \todo think about this 143 */ 144 void TrackManager::condition(int groupID, PathCondition cond) 145 { 146 147 } 148 149 /** 150 \brief joins some tracks together again. 151 \param count The count of Paths to join. 152 153 Join will set the localTime to the longest time a Path has to get to this Point. \n 154 Join will join all curves to the first curve. 155 */ 156 void TrackManager::join(int count, ...) 157 { 158 159 } 160 161 /** 162 \brief joins some tracks together again. 163 \param count The count of Paths to join. 164 \param trackIDs an Array with the trackID's to join 165 166 \see void TrackManager::join(int count, ...) 167 */ 168 void TrackManager::joinV(int count, int* trackIDs) 169 { 170 171 } 172 173 // RUNTIME // 174 175 /** 176 \brief calculates the Position for the localTime of the Track. 177 \returns the calculated Position 178 */ 179 Vector TrackManager::calcPos() 180 { 181 182 } 183 184 /** 185 \brief calculates the Rotation for the localTime of the Track. 186 \returns the calculated Rotation 187 */ 188 Vector TrackManager::calcDir() 189 { 190 191 } 192 193 /** 194 \brief Advances the local-time of the Track around dt 195 \param dt The time about which to advance. 196 */ 197 void TrackManager::tick(float dt) 198 { 199 200 } 201 202 /** 203 \brief a Function that decides which Path we should follow. 204 \param graphID The Path to choose. 205 206 */ 207 void TrackManager::choosePath(int graphID) 208 { 209 210 } 211 -
orxonox/branches/parenting/src/track_manager.h
r3311 r3330 15 15 16 16 17 //! The TrackManager handles the flow of the Players through the game. 18 /** 19 \todo write the methodes 20 21 <b>The TrackManager works as followed:</b> \n 22 \n 23 <b>1. Initialize it, by setting up the Graph. You can do this by using the following Commands.</b> 24 \li workOn(): changes the ID that will be altered through the changes. 25 \li setType: lets you set the CurveType of the Curve we are Working on. (default is BezierCurve, set this as early as possible, for this uses resources). 26 \li setLength(): sets the length of the current path in seconds. 27 \li addPoint(): adds a point to the Curve. 28 \li addHotPoint(): adds save/splitpoint.\n 29 \li fork(): adds some interessting non-linear movments through the level (fork will force addHotPoint if not done then). 30 \li condition(): decides under what condition a certain Path will be chosen. 31 \li join(): joins some tracks together again. Join will set the localTime to the longest time a Path has to get to this Point) 32 \li setSavePoint(): Sets a HotPoint into a savePoint. A Savepoint can be used as a rollbackpoint if a Player gets shot. 33 34 35 look out: <b>SAVEPOINTS CAN NOT BE FORKS</b> (but joins), because the condition is really hard to guess if you do not give some impuls. \n 36 \n 37 <b> 2. Runtime knows the following: </b> 38 \li calcPos(): returns the current position on the track 39 \li calcDir(): returns the current Direction the track is flying on. 40 \li tick(): makes a Step on the Path. increases localTime by dt. 41 \li choosePath(): a Function that decides which Path we should follow. 42 43 TrackManager can be handled as a StateMachine. 44 */ 17 45 class TrackManager : public BaseObject { 46 private: 47 //! condition for choosing a certain Path. \todo implement a useful way. 48 struct PathCondition 49 { 50 51 }; 52 53 //! A Graph, that holds the curve-structure of a Level. 54 /** 55 A CurveGraph is used, to Define the structure of the Track itself. 56 It is a graph and not a tree, because paths can fork and join again. 57 */ 58 struct TrackElement 59 { 60 bool isSavePoint; //!< If the first node is a savePoint 61 bool isFork; //!< If the first node is a Fork 62 bool isJoined; //!< If the End of the Curve is joined. 63 PathCondition cond; //!< The Split Condition; 64 int ID; //!< The ID of this TrackElement 65 float length; //!< The time usedto cross this TrackElement (curve). 66 CurveType curveType; //!< The CurveType this will have. 67 int nodeCount; //!< The count of points this TrackElement has. 68 Curve* curve; //!< The Curve of this TrackElement 69 TrackElement** children; //!< A TrackElement can have a Tree of following TrackElements. 70 }; 71 72 73 TrackElement* firstGraph; //!< The first Graph-element we are on. 74 TrackElement* currentGraph; //!< The Graph-element we are working on. 75 float localTime; //!< The time that has been passed since the traveling the Track. 76 int trackElementCount; //!< The count of TrackElements that exist. 77 78 TrackElement findTrackElementByID(int trackID); 18 79 19 80 public: … … 21 82 ~TrackManager (); 22 83 84 // Methods to change the Path (initialisation) 85 void workOn(int trackID); 86 void setType(CurveType curveType); 87 void setLength(float time); 88 void addPoint(Vector newPoint); 89 void addHotPoint(Vector newPoint); 90 void setSavePoint(void); 91 void fork(int count, ...); 92 void forkV(int count, int* trackIDs); 93 void condition(int groupID, PathCondition cond); //!< \todo really do this!! 94 void join(int count, ...); 95 void joinV(int count, int* trackIDs); 23 96 97 // Methods to calculate the position on the Path (runtime) 98 Vector calcPos(); 99 Vector calcDir(); 100 void tick(float dt); 101 void choosePath(int graphID); 24 102 25 103 };
Note: See TracChangeset
for help on using the changeset viewer.