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;
59 const std::string& type()
const;
64 bool isGeocentric()
const;
67 const std::string& parameters()
const;
71 bool set(
const std::string& type,
const std::string&
origin);
129 void setUseTopoForFlatEarthVectorConversion(
bool flag );
130 bool useTopoForFlatEarthVectorConversion()
const;
133 const DtMapDatum& datum()
const;
138 void setDatum(
const DtMapDatum& datum);
144 void netToLocalVec(
const DtVector& localpos,
const DtVector32& netvec, DtVector32& localvec)
const;
145 void netToLocalOri(
const DtVector& localpos,
const DtTaitBryan& netori, DtTaitBryan& localori)
const;
146 void netToLocalHpr(
const DtVector& localpos,
const DtTaitBryan& netori, DtTaitBryan& localhpr)
const;
147 void netBodyToLocalBody(
const DtVector& localpos,
const DtDcm& netdcm, DtDcm& localdcm)
const;
162 void netToLocalOri(
const double localpos[3],
const double netori[3],
double localori[3])
const;
167 void localToNetOri(
const DtVector& localpos,
const DtTaitBryan& localori, DtTaitBryan& netori)
const;
169 void localToNetVec(
const DtVector& localpos,
const DtVector32& localvec, DtVector32& netvec)
const;
172 inline void localToNetPos(
const double (&localpos)[3],
double (&netpos)[3])
const
175 memcpy(&localpos_v,localpos,
sizeof(localpos));
177 localToNetPos( localpos_v, netpos_v);
178 memcpy(netpos,&netpos_v,
sizeof(netpos));
182 void localToNetOri(
const double localpos[3],
const double localori[3],
double netori[3])
const;
192 static void setCreator(CoordinateSystemCreatorFn fn);
196 static const DtReferenceEllipsoid* referenceEllipsoid();
215 typedef boost::unordered_map<std::string, DtCoordinateConverter*>
ConverterMap;