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&);
399 : myExtension(extension)
413 #define REGISTER_MOVEMENT_FILE_LOADER(extension, displayString, creator) \
414 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:254
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
std::string myColumnUnits
Definition: movementFile.h:44
int conversion
Definition: movementFile.h:238
Definition: movementFile.h:71
virtual ~DtMovementFileAutoRegister()
Definition: movementFile.h:404
std::map< std::string, MovementFileLoader > MovementFileLoaders
Definition: movementFile.h:388
CachedMap myCachedColumnsByType
Definition: movementFile.h:243
TimeConversion
Definition: movementFile.h:57
CachedMap myCachedColumnsByColumn
Definition: movementFile.h:244
Definition: movementFile.h:69
std::map< std::string, CacheColumn > CachedMap
Definition: movementFile.h:241
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...
void serialize(Archive &ar, const unsigned int version)
Definition: movementFile.h:47
CacheColumn(int csv, int col)
Definition: movementFile.h:235
DistanceConversion
Definition: movementFile.h:65
int myRowStart
Definition: movementFile.h:229
Definition: movementFile.h:60
Definition: movementFile.h:40
std::string displayString
Definition: movementFile.h:385
Definition: movementFile.h:232
std::vector< DtMovementFileRow > DtMovementFileData
Definition: movementFile.h:251
DtMovementFileData myMovementFileData
Definition: movementFile.h:380
This class will load in and return data from a movement file.
Definition: movementFile.h:273
boost::shared_ptr< DtMovementFileLoaderInterface > myMovementFileInterface
Definition: movementFile.h:391
std::vector< DtScriptedMovementFileConfiguration > MovementFileConfigurations
Definition: movementFile.h:278
std::string myExtension
Definition: movementFile.h:410
IMGUI_API void Columns(int count=1, const char *id=NULL, bool border=true)
Definition: movementFile.h:394
std::string myUniqueId
Definition: movementFile.h:246
DtMovementFileAutoRegister(const std::string &extension, const std::string &displayString, DtMovementFile::MovementFileLoaderInterfaceCreator fcn)
Definition: movementFile.h:397
boost::function< DtMovementFileLoaderInterface *()> MovementFileLoaderInterfaceCreator
Definition: movementFile.h:276
Definition: movementFile.h:61
std::vector< Column > Columns
Definition: movementFile.h:55
static MovementFileLoaders * theMovementFileLoaders
Definition: movementFile.h:389
double myDefaultTimeScale
Definition: movementFile.h:379
Definition: movementFile.h:70
CacheColumn()
Definition: movementFile.h:234
int myColumnInFile
Definition: movementFile.h:42
std::vector< double > DtMovementFileRow
Definition: movementFile.h:250
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:37
std::string myColumnType
Definition: movementFile.h:43
MovementFileLoaderInterfaceCreator fcn
Definition: movementFile.h:384
const DtScriptedMovementFileConfiguration & configuration() const
Returns the configuration for the file.
Definition: movementFile.h:374
Definition: movementFile.h:72
#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:73
std::string myDisplayName
Definition: movementFile.h:247
Columns myColumns
Definition: movementFile.h:230
Definition: movementFile.h:382
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:211