#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