14 #include <boost/serialization/access.hpp>
15 #include <boost/serialization/nvp.hpp>
16 #include <boost/serialization/list.hpp>
17 #include <boost/serialization/map.hpp>
18 #include <boost/serialization/vector.hpp>
19 #include <boost/serialization/string.hpp>
21 #include <vlutil/vlFilename.h>
22 #include <vlpi/entityType.h>
52 PhaseGroundClampHighFidelity = 1,
53 PhaseGroundClampLowFidelity = 2,
54 PhaseAltitudeIsAboveTerrain = 3,
55 PhaseGroundClampNone = 4,
58 PhaseClampWhileAltitudeChangeIsZero = 5
77 virtual void setMovementFile(
const std::string&);
78 virtual const std::string& movementFile()
const;
82 virtual void setFileConfiguration(
const std::string&);
83 virtual const std::string& fileConfiguration()
const;
87 virtual void setCompletionRule(CompletionRule);
88 virtual CompletionRule completionRule()
const;
91 virtual void setClampType(ClampType);
92 virtual ClampType clampType()
const;
95 virtual void setEntityType(
const DtEntityType&);
96 virtual DtEntityType entityType()
const;
100 virtual bool canBePerformed(
double deltaTime)
const;
103 virtual bool canStillBePerformed(
double deltatTime)
const;
107 virtual bool loadMovementFile(
const DtFilename& rootPath,
const std::string&,
int rowsToLoad = -1);
110 virtual bool isLoaded()
const;
113 virtual double simTime(
int row)
const;
116 virtual DtVector bodyOffsetVector(
int row)
const;
120 virtual DtTaitBryan orientationOffset(
int row)
const;
123 virtual void setSimulationStartTimeOffset(
double t);
126 virtual double simulationStartTimeOffset()
const;
131 friend class boost::serialization::access;
136 template<
class Archive>
137 void serialize(Archive & ar,
const unsigned int version)
139 ar & BOOST_SERIALIZATION_NVP(myMovementFile);
140 ar & BOOST_SERIALIZATION_NVP(myCompletionRule);
143 ar & BOOST_SERIALIZATION_NVP(myClampType);
147 ar & BOOST_SERIALIZATION_NVP(myFileConfiguration);
150 else if (Archive::is_loading::value)
154 ar & BOOST_SERIALIZATION_NVP(myGroundClamp);
158 myClampType = PhaseGroundClampHighFidelity;
162 ar & BOOST_SERIALIZATION_NVP(mySimulationStartTimeOffset);
163 ar & BOOST_SERIALIZATION_NVP(myEntityType);
186 typedef std::vector<DtScriptedMovementPhase>
Phases;
206 virtual void setName(
const std::string&);
207 virtual const std::string& name()
const;
217 virtual void removePhase(
int);
220 virtual const Phases& phases()
const;
227 virtual void setPhases(
const Phases&);
233 virtual bool load(
const DtFilename&);
236 virtual DtFilename loadedPath()
const;
240 virtual bool save(
const DtFilename&);
246 virtual bool hasValidPhases(
double simTimeDelta,
const std::set<int>& phasesPerformed);
249 virtual std::set<int> availablePhases(
double simTimeDelta,
const std::set<int>& phasesPerformed);
252 virtual void setFilename(
const DtFilename&);
255 virtual bool remove();
258 virtual int scriptType()
const;
261 virtual void setDescription(
const std::string&);
262 virtual const std::string& description()
const;
267 virtual void setCategories(
const std::string&);
268 virtual void setCategories(
const std::vector<std::string>&);
269 virtual std::vector<std::string> categories()
const;
270 virtual void addCategory(
const std::string&);
271 virtual void removeCategory(
const std::string&);
272 virtual const std::string& categoriesAsString()
const;
273 virtual bool hasCategory(
const std::string&)
const;
274 virtual void renameCategory(
const std::string& oldName,
const std::string& newName);
279 friend class boost::serialization::access;
284 template<
class Archive>
285 void serialize(Archive & ar,
const unsigned int version)
287 ar & BOOST_SERIALIZATION_NVP(myName);
292 ar & BOOST_SERIALIZATION_NVP(myMovementFileConfiguration);
294 myPreviousConfiguration = myMovementFileConfiguration;
297 ar & BOOST_SERIALIZATION_NVP(myPhases);
301 ar & BOOST_SERIALIZATION_NVP(myScriptType);
305 ar & BOOST_SERIALIZATION_NVP(myDescription);
306 ar & BOOST_SERIALIZATION_NVP(myCategories);
309 else if (Archive::is_loading::value)