Sen API
Sen Libraries
Loading...
Searching...
No Matches
sen::util::DeadReckonerTemplateBase< T > Class Template Reference

Base class for the DeadReckoner and SettableDeadReckoner classes. More...

#include <dead_reckoner_base.h>

Inheritance diagram for sen::util::DeadReckonerTemplateBase< T >:

Public Types

using SpatialVariant = std::remove_const_t<std::remove_reference_t<decltype(std::declval<T>().getSpatial())>>
using StaticSpatial = std::variant_alternative_t<0U, SpatialVariant>
using FpsSpatial = std::variant_alternative_t<1U, SpatialVariant>
using RpsSpatial = std::variant_alternative_t<2U, SpatialVariant>
using RvsSpatial = std::variant_alternative_t<3U, SpatialVariant>
using FvsSpatial = std::variant_alternative_t<4U, SpatialVariant>
using RprLocation = decltype(std::declval<RvsSpatial>().worldLocation)
using RprOrientation = decltype(std::declval<RvsSpatial>().orientation)
using RprVelocity = decltype(std::declval<RvsSpatial>().velocityVector)
using RprAcceleration = decltype(std::declval<RvsSpatial>().accelerationVector)
using RprAngularVelocity = decltype(std::declval<RvsSpatial>().angularVelocity)

Public Member Functions

 DeadReckonerTemplateBase (DrConfig config={})
 ~DeadReckonerTemplateBase () override=default
virtual Situation situation (sen::TimeStamp timeStamp)
 Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:
virtual GeodeticSituation geodeticSituation (sen::TimeStamp timeStamp)
 Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:
void updateSituation (const Situation &value)
 Updates the last known real time Situation. A valid timestamp is needed inside the Situation provided as argument.
void updateGeodeticSituation (const GeodeticSituation &value)
 Updates the last known real time GeodeticSituation. A valid timestamp is needed inside the GeodeticSituation provided as argument.
const DrConfiggetConfig () const noexcept
void setConfig (const DrConfig &config)

Protected Member Functions

const SituationgetSmoothSituation () const noexcept
void smooth (const Situation &update)
void invalidateCache ()
bool isSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedSituation (const Situation &situation)
const SituationgetCachedSituation () const noexcept
bool isGeodeticSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedGeodeticSituation (const GeodeticSituation &situation)
const GeodeticSituationgetCachedGeodeticSituation () const noexcept

Static Protected Member Functions

static Situation extrapolate (const SpatialVariant &spatial, sen::TimeStamp time, sen::TimeStamp lastTimeStamp)
 Returns the extrapolated situation of the RPR Entity given its Spatial field and two timestamps that define a time delta for the extrapolation.

Detailed Description

template<typename T>
class sen::util::DeadReckonerTemplateBase< T >

Base class for the DeadReckoner and SettableDeadReckoner classes.

Member Typedef Documentation

◆ SpatialVariant

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::SpatialVariant = std::remove_const_t<std::remove_reference_t<decltype(std::declval<T>().getSpatial())>>

◆ StaticSpatial

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::StaticSpatial = std::variant_alternative_t<0U, SpatialVariant>

◆ FpsSpatial

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::FpsSpatial = std::variant_alternative_t<1U, SpatialVariant>

◆ RpsSpatial

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RpsSpatial = std::variant_alternative_t<2U, SpatialVariant>

◆ RvsSpatial

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RvsSpatial = std::variant_alternative_t<3U, SpatialVariant>

◆ FvsSpatial

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::FvsSpatial = std::variant_alternative_t<4U, SpatialVariant>

◆ RprLocation

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RprLocation = decltype(std::declval<RvsSpatial>().worldLocation)

◆ RprOrientation

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RprOrientation = decltype(std::declval<RvsSpatial>().orientation)

◆ RprVelocity

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RprVelocity = decltype(std::declval<RvsSpatial>().velocityVector)

◆ RprAcceleration

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RprAcceleration = decltype(std::declval<RvsSpatial>().accelerationVector)

◆ RprAngularVelocity

template<typename T>
using sen::util::DeadReckonerTemplateBase< T >::RprAngularVelocity = decltype(std::declval<RvsSpatial>().angularVelocity)

Constructor & Destructor Documentation

◆ DeadReckonerTemplateBase()

template<typename T>
sen::util::DeadReckonerTemplateBase< T >::DeadReckonerTemplateBase ( DrConfig config = {})
explicit

◆ ~DeadReckonerTemplateBase()

template<typename T>
sen::util::DeadReckonerTemplateBase< T >::~DeadReckonerTemplateBase ( )
overridedefault

Member Function Documentation

◆ extrapolate()

template<typename T>
Situation sen::util::DeadReckonerTemplateBase< T >::extrapolate ( const SpatialVariant & spatial,
sen::TimeStamp time,
sen::TimeStamp lastTimeStamp )
inlinestaticnodiscardprotected

Returns the extrapolated situation of the RPR Entity given its Spatial field and two timestamps that define a time delta for the extrapolation.

◆ situation()

virtual Situation sen::util::DeadReckonerBase::situation ( sen::TimeStamp timeStamp)
nodiscardvirtualinherited

Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:

  • World position: ECEF coordinates
  • Orientation: Euler angles of the body reference system (x forward, y right, z down) with respect to ECEF
  • Velocity: In world coordinates for world-centered DR algorithms and in body coordinates for body-centered algorithms
  • Acceleration: In world coordinates for world-centered DR algorithms and in body coordinates for body-centered algorithms
  • AngularVelocity: In body coordinates.
  • AngularAcceleration: In body coordinates.

Reimplemented in sen::util::DeadReckoner< T >.

◆ geodeticSituation()

virtual GeodeticSituation sen::util::DeadReckonerBase::geodeticSituation ( sen::TimeStamp timeStamp)
nodiscardvirtualinherited

Returns the extrapolated/smoothed situation of the object at the timestamp introduced as argument, expressed in the following coordinates:

  • World position: Geodetic Latitude, Longitude and Altitude
  • Orientation: Euler angles of the body reference system (x forward, y right, z down) with respect to NED
  • Velocity: In NED coordinates for world-referenced algorithms, in body coordinates for body-referenced algorithms.
  • Acceleration: In NED coordinates for world-referenced algorithms, in body coordinates for body-referenced algorithms.
  • AngularVelocity: In body coordinates.
  • AngularAcceleration: In body coordinates.

Reimplemented in sen::util::DeadReckoner< T >.

◆ updateSituation()

void sen::util::DeadReckonerBase::updateSituation ( const Situation & value)
inherited

Updates the last known real time Situation. A valid timestamp is needed inside the Situation provided as argument.

◆ updateGeodeticSituation()

void sen::util::DeadReckonerBase::updateGeodeticSituation ( const GeodeticSituation & value)
inherited

Updates the last known real time GeodeticSituation. A valid timestamp is needed inside the GeodeticSituation provided as argument.

◆ getConfig()

const DrConfig & sen::util::DeadReckonerBase::getConfig ( ) const
nodiscardnoexceptinherited

◆ setConfig()

void sen::util::DeadReckonerBase::setConfig ( const DrConfig & config)
inherited

◆ getSmoothSituation()

const Situation & sen::util::DeadReckonerBase::getSmoothSituation ( ) const
nodiscardprotectednoexceptinherited

◆ smooth()

void sen::util::DeadReckonerBase::smooth ( const Situation & update)
protectedinherited

◆ invalidateCache()

void sen::util::DeadReckonerBase::invalidateCache ( )
inlineprotectedinherited

◆ isSituationCached()

bool sen::util::DeadReckonerBase::isSituationCached ( sen::TimeStamp timeStamp) const
inlinenodiscardprotectednoexceptinherited

◆ setCachedSituation()

void sen::util::DeadReckonerBase::setCachedSituation ( const Situation & situation)
inlineprotectedinherited

◆ getCachedSituation()

const Situation & sen::util::DeadReckonerBase::getCachedSituation ( ) const
inlinenodiscardprotectednoexceptinherited

◆ isGeodeticSituationCached()

bool sen::util::DeadReckonerBase::isGeodeticSituationCached ( sen::TimeStamp timeStamp) const
inlinenodiscardprotectednoexceptinherited

◆ setCachedGeodeticSituation()

void sen::util::DeadReckonerBase::setCachedGeodeticSituation ( const GeodeticSituation & situation)
inlineprotectedinherited

◆ getCachedGeodeticSituation()

const GeodeticSituation & sen::util::DeadReckonerBase::getCachedGeodeticSituation ( ) const
inlinenodiscardprotectednoexceptinherited

The documentation for this class was generated from the following file: