51 lines
942 B
C++
51 lines
942 B
C++
#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 <c>PositionD</c> from a latitude, longitude, altitude.
|
|
///
|
|
/// \param[in] lla The position expressed as a latitude, longitude, altitude.
|
|
/// \return The new <c>PositionD</c>.
|
|
static PositionD fromLla(vec3d lla);
|
|
|
|
/// \brief Creates a new <c>PositionD</c> from an earth-centered, earth-fixed.
|
|
///
|
|
/// \param[in] ecef The position expressed as an earth-centered, earth-fixed.
|
|
/// \return The new <c>PositionD</c>.
|
|
static PositionD fromEcef(vec3d ecef);
|
|
|
|
private:
|
|
PositionType _underlyingType;
|
|
vec3d _data;
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|