#ifndef _VNMATH_POSITION_H_ #define _VNMATH_POSITION_H_ #include "vector.h" namespace vn { namespace math { /// \brief Representation of a position/location. class PositionD { private: enum PositionType { POS_LLA, POS_ECEF }; public: // TEMP PositionD() { } private: PositionD(PositionType type, vec3d pos); public: /// \brief Creates a new PositionD from a latitude, longitude, altitude. /// /// \param[in] lla The position expressed as a latitude, longitude, altitude. /// \return The new PositionD. static PositionD fromLla(vec3d lla); /// \brief Creates a new PositionD from an earth-centered, earth-fixed. /// /// \param[in] ecef The position expressed as an earth-centered, earth-fixed. /// \return The new PositionD. static PositionD fromEcef(vec3d ecef); private: PositionType _underlyingType; vec3d _data; }; } } #endif