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 PhaseGroundClampGeodeticNone = 4,
58 PhaseClampWhileAltitudeChangeIsZero = 5,
59 PhasePhasedArrayRadarFaceCartesian = 6,
60 PhaseGroundClampTopographicNone = 7
79 virtual void setMovementFile(
const std::string&);
80 virtual const std::string& movementFile()
const;
84 virtual void setFileConfiguration(
const std::string&);
85 virtual const std::string& fileConfiguration()
const;
89 virtual void setCompletionRule(CompletionRule);
90 virtual CompletionRule completionRule()
const;
93 virtual void setClampType(ClampType);
94 virtual ClampType clampType()
const;
97 virtual void setEntityType(
const DtEntityType&);
98 virtual DtEntityType entityType()
const;
102 virtual bool canBePerformed(
double deltaTime)
const;
105 virtual bool canStillBePerformed(
double deltatTime)
const;
109 virtual bool loadMovementFile(
const DtFilename& rootPath,
const std::string&,
int rowsToLoad = -1);
112 virtual bool isLoaded()
const;
115 virtual double simTime(
int row)
const;
118 virtual DtVector bodyOffsetVector(
int row)
const;
122 virtual DtTaitBryan orientationOffset(
int row)
const;
125 virtual void setSimulationStartTimeOffset(
double t);
128 virtual double simulationStartTimeOffset()
const;
133 friend class boost::serialization::access;
138 template<
class Archive>
139 void serialize(Archive & ar,
const unsigned int version)
141 ar & BOOST_SERIALIZATION_NVP(myMovementFile);
142 ar & BOOST_SERIALIZATION_NVP(myCompletionRule);
145 ar & BOOST_SERIALIZATION_NVP(myClampType);
149 ar & BOOST_SERIALIZATION_NVP(myFileConfiguration);
152 else if (Archive::is_loading::value)
156 ar & BOOST_SERIALIZATION_NVP(myGroundClamp);
160 myClampType = PhaseGroundClampHighFidelity;
164 ar & BOOST_SERIALIZATION_NVP(mySimulationStartTimeOffset);
165 ar & BOOST_SERIALIZATION_NVP(myEntityType);
188 typedef std::vector<DtScriptedMovementPhase>
Phases;
208 virtual void setName(
const std::string&);
209 virtual const std::string& name()
const;
219 virtual void removePhase(
int);
222 virtual const Phases& phases()
const;
229 virtual void setPhases(
const Phases&);
235 virtual bool load(
const DtFilename&);
238 virtual DtFilename loadedPath()
const;
242 virtual bool save(
const DtFilename&);
248 virtual bool hasValidPhases(
double simTimeDelta,
const std::set<int>& phasesPerformed);
251 virtual std::set<int> availablePhases(
double simTimeDelta,
const std::set<int>& phasesPerformed);
254 virtual void setFilename(
const DtFilename&);
257 virtual bool remove();
260 virtual int scriptType()
const;
263 virtual void setDescription(
const std::string&);
264 virtual const std::string& description()
const;
269 virtual void setCategories(
const std::string&);
270 virtual void setCategories(
const std::vector<std::string>&);
271 virtual std::vector<std::string> categories()
const;
272 virtual void addCategory(
const std::string&);
273 virtual void removeCategory(
const std::string&);
274 virtual const std::string& categoriesAsString()
const;
275 virtual bool hasCategory(
const std::string&)
const;
276 virtual void renameCategory(
const std::string& oldName,
const std::string& newName);
281 friend class boost::serialization::access;
286 template<
class Archive>
287 void serialize(Archive & ar,
const unsigned int version)
289 ar & BOOST_SERIALIZATION_NVP(myName);
294 ar & BOOST_SERIALIZATION_NVP(myMovementFileConfiguration);
296 myPreviousConfiguration = myMovementFileConfiguration;
299 ar & BOOST_SERIALIZATION_NVP(myPhases);
303 ar & BOOST_SERIALIZATION_NVP(myScriptType);
307 ar & BOOST_SERIALIZATION_NVP(myDescription);
308 ar & BOOST_SERIALIZATION_NVP(myCategories);
311 else if (Archive::is_loading::value)