Program Listing for File WanderPosVelAtt.hpp
↰ Return to documentation for file (src/navtk/inertial/WanderPosVelAtt.hpp)
#pragma once
#include <navtk/aspn.hpp>
#include <navtk/inertial/InertialPosVelAtt.hpp>
#include <navtk/linear_algebra.hpp>
#include <navtk/tensors.hpp>
namespace navtk {
namespace inertial {
class WanderPosVelAtt : public InertialPosVelAtt {
public:
WanderPosVelAtt(
const aspn_xtensor::TypeTimestamp& time = aspn_xtensor::TypeTimestamp((int64_t)0),
Matrix3 C_n_to_e = eye(3),
double alt = 0.0,
Vector3 vn = zeros(3),
Matrix3 C_s_to_l = eye(3),
AspnMessageType message_type = ASPN_EXTENDED_BEGIN);
WanderPosVelAtt(const aspn_xtensor::TypeTimestamp& time,
const std::tuple<Matrix3, double, Vector3, Matrix3>& tup,
AspnMessageType message_type = ASPN_EXTENDED_BEGIN);
std::shared_ptr<InertialPosVelAtt> clone() const override;
Vector3 get_llh() const override;
Vector3 get_vned() const override;
Matrix3 get_C_s_to_ned() const override;
std::pair<Matrix3, double> get_C_n_to_e_h() const override;
Vector3 get_vn() const override;
Matrix3 get_C_s_to_l() const override;
bool is_wander_capable() const override { return true; }
private:
Matrix3 C_n_to_e;
double h;
Vector3 vn;
Matrix3 C_s_to_l;
};
} // namespace inertial
} // namespace navtk