16 #include <matrix/vlVector.h>
17 #include <boost/unordered_map.hpp>
27 class DtNoOpCoordinateConverter;
28 class DtFlatEarthCoordinateConverter;
29 class DtGeocentricCoordinateConverter;
30 class DtUtmCoordinateConverter;
31 class DtCartesianCoordinateConverter;
32 class DtLambertCoordinateConverter;
33 class DtCoordinateConverterFactory;
36 class DtCoordinateDisplay;
37 class DtCoordinateDisplayCollection;
38 class DtUnitConverterCollection;
62 const std::string& type()
const;
67 bool isGeocentric()
const;
70 const std::string& parameters()
const;
74 bool set(
const std::string& type,
const std::string& origin);
132 void setUseTopoForFlatEarthVectorConversion(
bool flag );
133 bool useTopoForFlatEarthVectorConversion()
const;
136 const DtMapDatum& datum()
const;
141 void setDatum(
const DtMapDatum& datum);
147 void netToLocalOri(
const DtVector& localpos,
const DtTaitBryan& netori, DtTaitBryan& localori)
const;
148 void netToLocalHpr(
const DtVector& localpos,
const DtTaitBryan& netori, DtTaitBryan& localhpr)
const;
149 void netBodyToLocalBody(
const DtVector& localpos,
const DtDcm& netdcm, DtDcm& localdcm)
const;
164 void netToLocalOri(
const double localpos[3],
const double netori[3],
double localori[3])
const;
169 void localToNetOri(
const DtVector& localpos,
const DtTaitBryan& localori, DtTaitBryan& netori)
const;
173 inline void localToNetPos(
const double (&localpos)[3],
double (&netpos)[3])
const
176 memcpy(&localpos_v,localpos,
sizeof(localpos));
178 localToNetPos( localpos_v, netpos_v);
179 memcpy(netpos,&netpos_v,
sizeof(netpos));
183 void localToNetOri(
const double localpos[3],
const double localori[3],
double netori[3])
const;
193 static void setCreator(CoordinateSystemCreatorFn fn);
210 typedef boost::unordered_map<std::string, DtCoordinateConverter*>
ConverterMap;