12 #include <matrix/vlVector.h>
13 #include <boost/unordered_map.hpp>
18 class DtReferenceEllipsoid;
23 class DtNoOpCoordinateConverter;
24 class DtFlatEarthCoordinateConverter;
25 class DtGeocentricCoordinateConverter;
26 class DtUtmCoordinateConverter;
27 class DtCartesianCoordinateConverter;
28 class DtLambertCoordinateConverter;
29 class DtCoordinateConverterFactory;
30 class DtCoordinateConverter;
32 class DtCoordinateDisplay;
33 class DtCoordinateDisplayCollection;
34 class DtUnitConverterCollection;
36 class DtWorldMagneticModel;
63 const std::string& type()
const;
68 bool isGeocentric()
const;
71 const std::string& parameters()
const;
75 bool set(
const std::string& type,
const std::string&
origin);
133 void setUseTopoForFlatEarthVectorConversion(
bool flag );
134 bool useTopoForFlatEarthVectorConversion()
const;
137 const DtMapDatum& datum()
const;
142 void setDatum(
const DtMapDatum& datum);
148 void netToLocalVec(
const DtVector& localpos,
const DtVector32& netvec, DtVector32& localvec)
const;
149 void netToLocalOri(
const DtVector& localpos,
const DtTaitBryan& netori, DtTaitBryan& localori)
const;
150 void netToLocalHpr(
const DtVector& localpos,
const DtTaitBryan& netori, DtTaitBryan& localhpr)
const;
151 void netBodyToLocalBody(
const DtVector& localpos,
const DtDcm& netdcm, DtDcm& localdcm)
const;
166 void netToLocalOri(
const double localpos[3],
const double netori[3],
double localori[3])
const;
171 void localToNetOri(
const DtVector& localpos,
const DtTaitBryan& localori, DtTaitBryan& netori)
const;
173 void localToNetVec(
const DtVector& localpos,
const DtVector32& localvec, DtVector32& netvec)
const;
176 inline void localToNetPos(
const double (&localpos)[3],
double (&netpos)[3])
const
179 memcpy(&localpos_v,localpos,
sizeof(localpos));
181 localToNetPos( localpos_v, netpos_v);
182 memcpy(netpos,&netpos_v,
sizeof(netpos));
186 void localToNetOri(
const double localpos[3],
const double localori[3],
double netori[3])
const;
191 virtual bool createWorldMagneticModel(time_t unixTime);
205 static void setCreator(CoordinateSystemCreatorFn fn);
208 static const DtReferenceEllipsoid* referenceEllipsoid();
223 typedef boost::unordered_map<std::string, DtCoordinateConverter*>
ConverterMap;
Instances of DtUtmCoordSystem provide transformations and utilities for converting between network an...
Definition: DtUtmCoordinateConverter.h:20
A unicode string.
Definition: DtUnicode.h:33
DtCoordinateConverter * myCurrentConverter
Definition: DtCoordinateSystem.h:226
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
DtCoordinateConverter is the base class for 'local (cig) to geocentric' converters.
Definition: DtCoordinateConverter.h:25
Instances of DtFlatCigManager provide transformations and utilities for converting between Cig and Fl...
Definition: DtFlatEarthCoordinateConverter.h:20
Abstract interface class for all coordinate system displays.
Definition: DtCoordinateDisplay.h:24
voidpf uLong int origin
Definition: ioapi.h:42
DtUnitConverterCollection * myUnits
Definition: DtCoordinateSystem.h:230
static DtCoordinateConverterFactory theCoordConverterFactory
Definition: DtCoordinateSystem.h:239
Contains the interface to the world magnetic model.
Definition: DtWorldMagneticModel.h:37
static CoordinateSystemCloneFn theCloneFn
Definition: DtCoordinateSystem.h:238
ConverterMap myConverters
Definition: DtCoordinateSystem.h:225
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
Collection of DtCoordinateSystemDisplay objects for displaying coordinates in multiple coordinate sys...
Definition: DtCoordinateDisplayCollection.h:20
DtWorldMagneticModel * myWorldMagneticModel
Definition: DtCoordinateSystem.h:233
Contains DLL export macros.
Instances of vpNetLambertCoordConverter provide transformations and utilities for converting between ...
Definition: DtLambertCoordinateConverter.h:21
static CoordinateSystemCreatorFn theCreatorFn
Definition: DtCoordinateSystem.h:237
std::string myCoordinateSystemParameters
Definition: DtCoordinateSystem.h:227
static DtReferenceEllipsoid * theReferenceEllipsoidPtr
Definition: DtCoordinateSystem.h:240
Repository for all unit converters.
Definition: DtUnitConverterCollection.h:27
bool myUseTopoForFlatEarthVectorConversion
Definition: DtCoordinateSystem.h:231
DtCoordinateDisplayCollection * myDisplays
Definition: DtCoordinateSystem.h:229
Instances of DtCartesianCoordinateConverter provide transformations and utilities for converting betw...
Definition: DtCartesianCoordinateConverter.h:23
vpNetNoOpCoordConverter does no coordinate conversions
Definition: DtNoOpCoordinateConverter.h:19
void localToNetPos(const double(&localpos)[3], double(&netpos)[3]) const
These functions are useful for converting raw double values coords.
Definition: DtCoordinateSystem.h:176
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
A factory class for holding coordinate convertor creators.
Definition: DtCoordinateConverterFactory.h:20
boost::unordered_map< std::string, DtCoordinateConverter * > ConverterMap
Definition: DtCoordinateSystem.h:223
Instances of DtGeocentricCoordinateConverter provide transformations and utilities for converting bet...
Definition: DtGeocentricCoordinateConverter.h:20
Contains the DtDisplayUnitsSettingsRecord class declaration.