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/bind.hpp>
22 #include <vlutil/vlFilename.h>
23 #include <matrix/vlVector.h>
24 #include <matrix/vlTaitBryan.h>
45 template<
class Archive>
46 void serialize(Archive & ar,
const unsigned int version)
48 ar & BOOST_SERIALIZATION_NVP(myColumnInFile);
49 ar & BOOST_SERIALIZATION_NVP(myColumnType);
50 ar & BOOST_SERIALIZATION_NVP(myColumnUnits);
114 virtual void addColumn(
const std::string& type,
const std::string& units,
int columnInFile = -1);
117 virtual void removeColumn(
int);
120 virtual const Columns& columns()
const;
121 virtual void setColumns(
const Columns&);
124 virtual void setRowStart(
int);
126 virtual int rowStart()
const;
129 virtual int timeColumn()
const;
132 virtual int altitudeColumn()
const;
133 virtual int altitudeUnits()
const;
136 virtual int rangeColumn()
const;
137 virtual int rangeUnits()
const;
140 virtual int lateralDistanceColumn()
const;
141 virtual int lateralDistanceUnits()
const;
144 virtual int headingColumn()
const;
145 virtual int headingUnits()
const;
148 virtual int pitchColumn()
const;
149 virtual int pitchUnits()
const;
152 virtual int rollColumn()
const;
153 virtual int rollUnits()
const;
155 virtual int column(
const std::string&)
const;
156 virtual int units(
const std::string&)
const;
157 virtual double convertValueForColumn(
int col,
double value)
const;
160 virtual double convertTimeToSeconds(
double time)
const;
163 virtual void updateCache();
165 virtual int mapToInternalValue(
const std::string&)
const;
168 virtual double convertUnitsToNative(
double d,
int conv)
const;
174 virtual void fromString(
const DtString&);
188 virtual bool setColumn(
int col,
const std::string& type,
const std::string& unit,
int columnInFile = -1);
191 virtual void column(
int col,
int& columnInFile, std::string& type, std::string& unit)
const;
194 virtual void setDisplayName(
const std::string&);
195 virtual const std::string& displayName()
const;
198 virtual void setUniqueId(
const std::string&);
199 virtual const std::string& uniqueId()
const;
204 friend class boost::serialization::access;
209 template<
class Archive>
210 void serialize(Archive & ar,
const unsigned int version)
212 ar & BOOST_SERIALIZATION_NVP(myRowStart);
213 ar & BOOST_SERIALIZATION_NVP(myColumns);
217 ar & BOOST_SERIALIZATION_NVP(myDisplayName);
218 ar & BOOST_SERIALIZATION_NVP(myUniqueId);
221 if (Archive::is_loading::value)
234 CacheColumn(
int csv,
int col) : csvColumn(csv), conversion(col) {};
258 virtual DtMovementFileData loadMovementFileData(
const DtFilename&,
const std::string& configuration,
259 int loadRows = -1)
const = 0;
268 virtual std::vector<std::string> formatsForFile(
const DtFilename&)
const = 0;
294 virtual double simTime(
int)
const;
297 virtual int numRows()
const;
300 virtual bool hasOffsetOrientation()
const;
305 virtual DtVector bodyOffsetVector(
int row)
const;
309 virtual DtTaitBryan orientationOffset(
int row)
const;
312 virtual bool isLoaded()
const;
316 virtual bool load(
const DtFilename& file,
const std::string& configuration,
int rowsToLoad = -1);
319 virtual int movementRow(
double)
const;
322 virtual void reset();
326 virtual void setObjectOffsetLocation(
int row,
const DtVector&);
330 virtual void setObjectOffsetOrientation(
int row,
const DtTaitBryan&);
333 virtual void setTimeDelta(
int forRow,
double timeDelta);
336 virtual void removeRow(
int);
340 virtual void setDefaultTimeScale(
double);
341 virtual double defaultTimeScale()
const;
348 static std::vector<std::string> dialogStrings();
354 static std::vector<std::string> supportedExtensions();
357 static void removeLoadableFileType(
const DtString& extension);
364 static std::vector<std::string> formatsForFile(
const DtFilename&);
398 : myExtension(extension)
412 #define REGISTER_MOVEMENT_FILE_LOADER(extension, displayString, creator) \
413 static DtMovementFileAutoRegister autoRegisterMovementFileInt(extension, displayString, boost::bind(&creator));
Interface that must be subclassed in order to be able to load a file for the movement file interface...
Definition: movementFile.h:253
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
std::string myColumnUnits
Definition: movementFile.h:43
int conversion
Definition: movementFile.h:237
Definition: movementFile.h:70
virtual ~DtMovementFileAutoRegister()
Definition: movementFile.h:403
std::map< std::string, MovementFileLoader > MovementFileLoaders
Definition: movementFile.h:387
CachedMap myCachedColumnsByType
Definition: movementFile.h:242
TimeConversion
Definition: movementFile.h:56
CachedMap myCachedColumnsByColumn
Definition: movementFile.h:243
Definition: movementFile.h:68
std::map< std::string, CacheColumn > CachedMap
Definition: movementFile.h:240
static int addLoadableFileType(std::string extension, std::string displayString, MovementFileLoaderInterfaceCreator)
Adds a new loadable file type and the creator for that file. Returns the number of items now in the l...
std::shared_ptr< DtMovementFileLoaderInterface > myMovementFileInterface
Definition: movementFile.h:390
void serialize(Archive &ar, const unsigned int version)
Definition: movementFile.h:46
CacheColumn(int csv, int col)
Definition: movementFile.h:234
DistanceConversion
Definition: movementFile.h:64
int myRowStart
Definition: movementFile.h:228
Definition: movementFile.h:59
Definition: movementFile.h:39
std::string displayString
Definition: movementFile.h:384
Definition: movementFile.h:231
std::vector< DtMovementFileRow > DtMovementFileData
Definition: movementFile.h:250
DtMovementFileData myMovementFileData
Definition: movementFile.h:379
This class will load in and return data from a movement file.
Definition: movementFile.h:272
std::vector< DtScriptedMovementFileConfiguration > MovementFileConfigurations
Definition: movementFile.h:277
std::string myExtension
Definition: movementFile.h:409
IMGUI_API void Columns(int count=1, const char *id=NULL, bool border=true)
Definition: movementFile.h:393
std::string myUniqueId
Definition: movementFile.h:245
DtMovementFileAutoRegister(const std::string &extension, const std::string &displayString, DtMovementFile::MovementFileLoaderInterfaceCreator fcn)
Definition: movementFile.h:396
boost::function< DtMovementFileLoaderInterface *()> MovementFileLoaderInterfaceCreator
Definition: movementFile.h:275
Definition: movementFile.h:60
std::vector< Column > Columns
Definition: movementFile.h:54
static MovementFileLoaders * theMovementFileLoaders
Definition: movementFile.h:388
double myDefaultTimeScale
Definition: movementFile.h:378
Definition: movementFile.h:69
CacheColumn()
Definition: movementFile.h:233
int myColumnInFile
Definition: movementFile.h:41
std::vector< double > DtMovementFileRow
Definition: movementFile.h:249
static void removeLoadableFileType(const DtString &extension)
Removes a loadable type.
The DtScriptedMovementObject will contain information about an object that can be used for scripted m...
Definition: movementFile.h:36
std::string myColumnType
Definition: movementFile.h:42
MovementFileLoaderInterfaceCreator fcn
Definition: movementFile.h:383
const DtScriptedMovementFileConfiguration & configuration() const
Returns the configuration for the file.
Definition: movementFile.h:373
Definition: movementFile.h:71
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
Definition: movementFile.h:72
std::string myDisplayName
Definition: movementFile.h:246
Columns myColumns
Definition: movementFile.h:229
Definition: movementFile.h:381
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: movementFile.h:210