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 DrConfig & getConfig () const noexcept
void setConfig (const DrConfig &config)

Protected Member Functions

const Situation & getSmoothSituation () const noexcept
void smooth (const Situation &update)
const Situation & smoothIfEnabled (const Situation &update)
 Smooths the update when configured to and returns what to publish. With smoothing off the walk is skipped and the returned reference is the argument itself.
void invalidateCache ()
bool isSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedSituation (const Situation &situation)
const Situation & getCachedSituation () const noexcept
bool isGeodeticSituationCached (sen::TimeStamp timeStamp) const noexcept
void setCachedGeodeticSituation (const GeodeticSituation &situation)
const GeodeticSituation & getCachedGeodeticSituation () 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

◆ smoothIfEnabled()

const Situation & sen::util::DeadReckonerBase::smoothIfEnabled ( const Situation & update)
nodiscardprotectedinherited

Smooths the update when configured to and returns what to publish. With smoothing off the walk is skipped and the returned reference is the argument itself.

◆ 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: