8#include <janus/math/Quaternion.hpp>
19 [[nodiscard]]
virtual Vec3<Scalar>
22 [[nodiscard]]
virtual Vec3<Scalar>
25 [[nodiscard]]
virtual Vec3<Scalar>
30 [[nodiscard]]
virtual Vec3<Scalar>
37template <
typename Scalar>
41 : frame_(std::move(
frame)) {}
43 [[nodiscard]] Vec3<Scalar>
to_parent(
const Vec3<Scalar> &v)
const override {
44 return frame_.to_ecef(v);
47 [[nodiscard]] Vec3<Scalar>
49 return frame_.from_ecef(v);
52 [[nodiscard]] Vec3<Scalar>
54 return frame_.position_to_ecef(pos);
57 [[nodiscard]] Vec3<Scalar>
59 return frame_.position_from_ecef(pos);
71template <
typename Scalar>
75 : R_(R_child_to_parent) {}
77 [[nodiscard]] Vec3<Scalar>
to_parent(
const Vec3<Scalar> &v)
const override {
81 [[nodiscard]] Vec3<Scalar>
83 return R_.transpose() * v;
91template <
typename Scalar>
95 const janus::Quaternion<Scalar> &q_child_to_parent)
96 : q_(q_child_to_parent) {}
98 [[nodiscard]] Vec3<Scalar>
to_parent(
const Vec3<Scalar> &v)
const override {
102 [[nodiscard]] Vec3<Scalar>
104 return q_.conjugate().rotate(v);
108 janus::Quaternion<Scalar> q_;
Vec3< Scalar > to_parent(const Vec3< Scalar > &v) const override
Definition TransformProvider.hpp:43
const CoordinateFrame< Scalar > & frame() const
Definition TransformProvider.hpp:62
CoordinateFrameProvider(CoordinateFrame< Scalar > frame)
Definition TransformProvider.hpp:40
Vec3< Scalar > position_from_parent(const Vec3< Scalar > &pos) const override
Definition TransformProvider.hpp:58
Vec3< Scalar > position_to_parent(const Vec3< Scalar > &pos) const override
Definition TransformProvider.hpp:53
Vec3< Scalar > from_parent(const Vec3< Scalar > &v) const override
Definition TransformProvider.hpp:48
Vec3< Scalar > to_parent(const Vec3< Scalar > &v) const override
Definition TransformProvider.hpp:77
Vec3< Scalar > from_parent(const Vec3< Scalar > &v) const override
Definition TransformProvider.hpp:82
DCMProvider(const Mat3< Scalar > &R_child_to_parent)
Definition TransformProvider.hpp:74
Vec3< Scalar > from_parent(const Vec3< Scalar > &v) const override
Definition TransformProvider.hpp:103
QuaternionProvider(const janus::Quaternion< Scalar > &q_child_to_parent)
Definition TransformProvider.hpp:94
Vec3< Scalar > to_parent(const Vec3< Scalar > &v) const override
Definition TransformProvider.hpp:98
Definition Aerodynamics.hpp:11
Definition FramePrimitives.hpp:44