Sen API
Sen Libraries
Loading...
Searching...
No Matches
utils.h File Reference
#include "mat3.h"
#include "quat.h"
#include "sen/util/dr/algorithms.h"

Go to the source code of this file.

Classes

struct  sen::util::HaversineData
 Return type for the haversine helper containing the haversine distance and header between the start and end points. More...

Namespaces

namespace  sen
namespace  sen::util

Functions

Location sen::util::toWorldLocation (const Vec3d &value)
 Translates a Vec3d instance to an RPR world location structure.
Vec3d sen::util::fromWorldLocation (const Location &value)
 Converts an RPR world location structure to a Vec3d instance.
Vec3d sen::util::fromVelocity (const Velocity &value)
 Converts an RPR velocity vector structure to a Vec3d instance.
Velocity sen::util::toVelocity (const Vec3d &value)
 Converts a Vec3 to a RPR velocity vector structure.
Vec3d sen::util::fromAcceleration (const Acceleration &value)
 Converts an RPR acceleration vector structure to a Vec3d instance.
Acceleration sen::util::toAcceleration (const Vec3d &value)
 Converts an RPR acceleration vector structure to a Vec3d instance.
AngularAcceleration sen::util::toAngularAcceleration (const Vec3d &value)
 Converts an RPR angular acceleration vector structure to a Vec3d instance.
Vec3d sen::util::fromAngularVelocity (const AngularVelocity &value)
 Converts an RPR angular velocity vector structure to a Vec3d instance.
Vec3d sen::util::fromAngularAcceleration (const AngularAcceleration &value)
AngularVelocity sen::util::toAngularVelocity (const Vec3d &value)
 Converts an RPR angular velocity vector structure to a Vec3d instance.
Orientation sen::util::toOrientation (const Vec3d &value)
 Translates a Vec3d instance to an RPR orientation structure.
Vec3d sen::util::fromOrientationToVec (const Orientation &value)
 Converts an RPR orientation structure to a Vec3d instance.
Quatd sen::util::fromOrientationToQuat (const Orientation &value)
 Converts an RPR orientation structure to a Quatf instance.
Vec3d sen::util::nedToEcef (const Vec3d &value, const GeodeticWorldLocation &latLonAlt) noexcept
 Translates from NED to ECEF location coordinates using quaternions.
Vec3d sen::util::ecefToNed (const Vec3d &value, const GeodeticWorldLocation &latLonAlt) noexcept
 Translates from ECEF to NED location coordinates using quaternions.
Vec3d sen::util::bodyToNed (const Vec3d &value, const Orientation &orientationNed) noexcept
 Changes the basis of a vector from body referenced coordinates to NED coordinates.
Vec3d sen::util::nedToBody (const Vec3d &value, const Orientation &orientationNed) noexcept
 Changes the basis of a vector from NED coordinates to body referenced coordinates.
f64 sen::util::toRad (f64 value) noexcept
 Degrees to radians.
f64 sen::util::toDeg (f64 value) noexcept
 Radians to degrees.
Mat3d sen::util::makeR1 (const Vec3d &omega, f64 delta)
 Returns the R1 matrix used in the Dead Reckoning algorithms involving velocity in body coordinates.
Mat3d sen::util::makeR2 (const Vec3d &omega, f64 delta)
 Returns the R2 matrix used in the Dead Reckoning algorithms involving acceleration in body coordinates.
Vec3d sen::util::bodyToWorld (const Vec3d &value, const Orientation &bodyEulerAngles) noexcept
 Transforms a vector from body coordinates (x forward, y right, z down ) to world coordinates using quaternions given the Euler Angles of the transformation from the world reference system to the body reference system.
Vec3d sen::util::worldToBody (const Vec3d &value, const Orientation &bodyEulerAngles) noexcept
 Transforms a vector from world coordinates (ECEF) to body coordinates using quaternions given the Euler Angles of the transformation from the world reference system to the body reference system.
Location sen::util::extrapolateLocationWorld (const Situation &value, sen::Duration delta) noexcept
 Extrapolates the WorldLocation for the algorithms that use the World reference system.
Location sen::util::extrapolateLocationBody (const Situation &value, sen::Duration delta) noexcept
 Extrapolates the WorldLocation for the algorithms that use the Body reference system.
Velocity sen::util::extrapolateVelocity (const Velocity &value, const Acceleration &acceleration, sen::Duration delta) noexcept
 Extrapolates Velocities with constant Acceleration.
Orientation sen::util::extrapolateOrientation (const Orientation &value, sen::Duration delta, const AngularVelocity &angularVelocity, const AngularAcceleration &angularAcceleration={}) noexcept
 Performs a linear extrapolation the orientation of an entity using quaternions given a delta of time and the angular velocity in world coordinates.
std::array< Vec3d, 3U > sen::util::getNedTrihedron (const GeodeticWorldLocation &location)
 Returns the NED trihedron at a certain world location given the Latitude and Longitude.
Orientation sen::util::eulerAnglesFromTrihedrons (const Vec3d &xi, const Vec3d &yi, const Vec3d &zi, const Vec3d &xf, const Vec3d &yf)
 Given two trihedrons of vectors, computes the Euler Angles needed to transform the initial trihedron (xi, yi, zi) into the final trihedron (xf, yf, zf).
HaversineData sen::util::haversine (const GeodeticWorldLocation &start, const GeodeticWorldLocation &end)
 Given the start and end Geodetic Locations, returns the Haversine distance and heading.
f64 sen::util::hypot (f64 var1, f64 var2) noexcept
 Computes the hypotenuse given the sides.
bool sen::util::hasVelocity (const Velocity &velocity) noexcept
 Returns true if any of the components of the entity velocity is bigger than 0.1 m/s.
bool sen::util::hasAcceleration (const Acceleration &acceleration) noexcept
 Returns true if any of the components of the entity acceleration is bigger than 0.1 m/s2.
bool sen::util::hasAngularVelocity (const AngularVelocity &omega) noexcept
 Returns true if any of the components of the entity angular velocity is bigger than 1e-3 rad/s.

Class Documentation

◆ sen::util::HaversineData

struct sen::util::HaversineData

Return type for the haversine helper containing the haversine distance and header between the start and end points.

Class Members
LengthMeters distance
AngleRadians heading
AngleRadians pitch