13 #include <boost/serialization/access.hpp>
14 #include <boost/serialization/nvp.hpp>
15 #include <boost/serialization/list.hpp>
16 #include <boost/serialization/map.hpp>
17 #include <boost/serialization/vector.hpp>
18 #include <boost/serialization/string.hpp>
19 #include <boost/function.hpp>
20 #include <boost/bind.hpp>
21 #include <boost/shared_ptr.hpp>
23 #include <vlutil/vlFilename.h>
24 #include <matrix/vlVector.h>
25 #include <matrix/vlTaitBryan.h>
46 template<
class Archive>
47 void serialize(Archive & ar,
const unsigned int version)
49 ar & BOOST_SERIALIZATION_NVP(myColumnInFile);
50 ar & BOOST_SERIALIZATION_NVP(myColumnType);
51 ar & BOOST_SERIALIZATION_NVP(myColumnUnits);
115 virtual void addColumn(
const std::string& type,
const std::string& units,
int columnInFile = -1);
118 virtual void removeColumn(
int);
121 virtual const Columns& columns()
const;
122 virtual void setColumns(
const Columns&);
125 virtual void setRowStart(
int);
127 virtual int rowStart()
const;
130 virtual int timeColumn()
const;
133 virtual int altitudeColumn()
const;
134 virtual int altitudeUnits()
const;
137 virtual int rangeColumn()
const;
138 virtual int rangeUnits()
const;
141 virtual int lateralDistanceColumn()
const;
142 virtual int lateralDistanceUnits()
const;
145 virtual int headingColumn()
const;
146 virtual int headingUnits()
const;
149 virtual int pitchColumn()
const;
150 virtual int pitchUnits()
const;
153 virtual int rollColumn()
const;
154 virtual int rollUnits()
const;
156 virtual int column(
const std::string&)
const;
157 virtual int units(
const std::string&)
const;
158 virtual double convertValueForColumn(
int col,
double value)
const;
161 virtual double convertTimeToSeconds(
double time)
const;
164 virtual void updateCache();
166 virtual int mapToInternalValue(
const std::string&)
const;
169 virtual double convertUnitsToNative(
double d,
int conv)
const;
175 virtual void fromString(
const DtString&);
189 virtual bool setColumn(
int col,
const std::string& type,
const std::string& unit,
int columnInFile = -1);
192 virtual void column(
int col,
int& columnInFile, std::string& type, std::string& unit)
const;
195 virtual void setDisplayName(
const std::string&);
196 virtual const std::string& displayName()
const;
199 virtual void setUniqueId(
const std::string&);
200 virtual const std::string& uniqueId()
const;
205 friend class boost::serialization::access;
210 template<
class Archive>
211 void serialize(Archive & ar,
const unsigned int version)
213 ar & BOOST_SERIALIZATION_NVP(myRowStart);
214 ar & BOOST_SERIALIZATION_NVP(myColumns);
218 ar & BOOST_SERIALIZATION_NVP(myDisplayName);
219 ar & BOOST_SERIALIZATION_NVP(myUniqueId);
222 if (Archive::is_loading::value)
235 CacheColumn(
int csv,
int col) : csvColumn(csv), conversion(col) {};
259 virtual DtMovementFileData loadMovementFileData(
const DtFilename&,
const std::string& configuration,
260 int loadRows = -1)
const = 0;
269 virtual std::vector<std::string> formatsForFile(
const DtFilename&)
const = 0;
295 virtual double simTime(
int)
const;
298 virtual int numRows()
const;
301 virtual bool hasOffsetOrientation()
const;
306 virtual DtVector bodyOffsetVector(
int row)
const;
310 virtual DtTaitBryan orientationOffset(
int row)
const;
313 virtual bool isLoaded()
const;
317 virtual bool load(
const DtFilename& file,
const std::string& configuration,
int rowsToLoad = -1);
320 virtual int movementRow(
double)
const;
323 virtual void reset();
327 virtual void setObjectOffsetLocation(
int row,
const DtVector&);
331 virtual void setObjectOffsetOrientation(
int row,
const DtTaitBryan&);
334 virtual void setTimeDelta(
int forRow,
double timeDelta);
337 virtual void removeRow(
int);
341 virtual void setDefaultTimeScale(
double);
342 virtual double defaultTimeScale()
const;
349 static std::vector<std::string> dialogStrings();
355 static std::vector<std::string> supportedExtensions();
358 static void removeLoadableFileType(
const DtString& extension);
365 static std::vector<std::string> formatsForFile(
const DtFilename&);
395 : myExtension(extension)
409 #define REGISTER_MOVEMENT_FILE_LOADER(extension, displayString, creator) \
410 static DtMovementFileAutoRegister autoRegisterMovementFileInt(extension, displayString, boost::bind(&creator));