Skip to content

Struct astrea::astro::detail::VehicleInner

template <typename T>

ClassList > astrea > astro > detail > VehicleInner

A template class for vehicle inner implementations. More...

  • #include <Vehicle.hpp>

Inherits the following classes: astrea::astro::detail::VehicleInnerBase

Public Attributes

Type Name
T _value
The value of the vehicle inner implementation, which is the user-defined vehicle type.

Public Functions

Type Name
VehicleInner () = default
Default constructor for VehicleInner .
VehicleInner (const VehicleInner &) = delete
Deleted copy assignment operator.
VehicleInner (VehicleInner &&) = delete
Deleted move assignment operator.
VehicleInner (const T & x)
Constructs a VehicleInner with a given value.
VehicleInner (T && x)
Constructs a VehicleInner with a given value.
virtual std::unique_ptr< VehicleInnerBase > clone () const
Clones the vehicle inner implementation.
virtual Unitless get_coefficient_of_drag () const
Gets the coefficient of drag of the vehicle or a default value.
virtual Unitless get_coefficient_of_lift () const
Gets the coefficient of lift of the vehicle or a default value.
virtual Unitless get_coefficient_of_reflectivity () const
Gets the coefficient of reflectivity of the vehicle or a default value.
virtual AccelerationVector< frames::earth::icrf > get_inertial_acceleration (const Date & date) override const
Get the acceleration of the frame in Earth-Centered Inertial coordinates.
virtual RadiusVector< frames::earth::icrf > get_inertial_position (const Date & date) override const
Get the position of the frame in Earth-Centered Inertial coordinates.
virtual VelocityVector< frames::earth::icrf > get_inertial_velocity (const Date & date) override const
Get the velocity of the frame in Earth-Centered Inertial coordinates.
virtual SurfaceArea get_lift_area () const
Gets the lift area of the vehicle or a default value.
virtual Mass get_mass () const
Gets the mass of the vehicle.
virtual std::string get_name () override const
Gets the name of the vehicle.
virtual const void * get_ptr () const
Gets a pointer to the internal vehicle instance.
virtual void * get_ptr ()
Gets a pointer to the internal vehicle instance.
virtual SurfaceArea get_ram_area () const
Gets the ram area of the vehicle or a default value.
virtual SurfaceArea get_solar_area () const
Gets the solar area of the vehicle or a default value.
VehicleInner & operator= (const VehicleInner &) = delete
Deleted copy assignment operator.
VehicleInner & operator= (VehicleInner &&) = delete
Deleted move assignment operator.
requires (!HasGetRamArea< U >) const
Gets the default ram area of the vehicle.
requires (HasGetRamArea< U >) const
Gets the ram area of the vehicle.
requires (!HasGetLiftArea< U >) const
Gets the default lift area of the vehicle.
requires (HasGetLiftArea< U >) const
Gets the lift area of the vehicle.
requires (!HasGetSolarArea< U >) const
Gets the default solar area of the vehicle.
requires (HasGetSolarArea< U >) const
Gets the solar area of the vehicle.
requires (!HasGetCoefficientOfDrag< U >) const
Gets the default coefficient of drag of the vehicle.
requires (HasGetCoefficientOfDrag< U >) const
Gets the coefficient of drag of the vehicle.
requires (!HasGetCoefficientOfLift< U >) const
Gets the default coefficient of lift of the vehicle.
requires (HasGetCoefficientOfLift< U >) const
Gets the coefficient of lift of the vehicle.
requires (!HasGetCoefficientOfReflectivity< U >) const
Gets the default coefficient of reflectivity of the vehicle.
requires (HasGetCoefficientOfReflectivity< U >) const
Gets the coefficient of reflectivity of the vehicle.

Public Functions inherited from astrea::astro::detail::VehicleInnerBase

See astrea::astro::detail::VehicleInnerBase

Type Name
virtual std::unique_ptr< VehicleInnerBase > clone () const = 0
Clones the vehicle inner implementation.
virtual Unitless get_coefficient_of_drag () const = 0
Gets the coefficient of drag of the vehicle.
virtual Unitless get_coefficient_of_lift () const = 0
Gets the coefficient of lift of the vehicle.
virtual Unitless get_coefficient_of_reflectivity () const = 0
Gets the coefficient of reflectivity of the vehicle.
virtual SurfaceArea get_lift_area () const = 0
Gets the lift area of the vehicle.
virtual Mass get_mass () const = 0
Gets the mass of the vehicle.
virtual const void * get_ptr () const = 0
Gets a pointer to the internal vehicle instance.
virtual void * get_ptr () = 0
Gets a pointer to the internal vehicle instance.
virtual SurfaceArea get_ram_area () const = 0
Gets the ram area of the vehicle.
virtual SurfaceArea get_solar_area () const = 0
Gets the solar area of the vehicle.
virtual ~VehicleInnerBase ()
Destructor for VehicleInnerBase .

Public Functions inherited from astrea::astro::FrameReference

See astrea::astro::FrameReference

Type Name
FrameReference () = default
Default constructor for FrameReference .
virtual CartesianVector< Acceleration, frames::earth::icrf > get_inertial_acceleration (const Date & date) const
Get the acceleration of the frame in Earth-Centered Inertial coordinates.
virtual CartesianVector< Distance, frames::earth::icrf > get_inertial_position (const Date & date) const = 0
Get the position of the frame in Earth-Centered Inertial coordinates.
virtual CartesianVector< Velocity, frames::earth::icrf > get_inertial_velocity (const Date & date) const = 0
Get the velocity of the frame in Earth-Centered Inertial coordinates.
virtual std::string get_name () const = 0
Get the name of the frame reference.
virtual ~FrameReference () = default
Default destructor for FrameReference .

Detailed Description

Template parameters:

  • T The type of the vehicle implementation.

Public Attributes Documentation

variable _value

The value of the vehicle inner implementation, which is the user-defined vehicle type.

T astrea::astro::detail::VehicleInner< T >::_value;


Public Functions Documentation

function VehicleInner [1/5]

Default constructor for VehicleInner .

astrea::astro::detail::VehicleInner::VehicleInner () = default


function VehicleInner [2/5]

Deleted copy assignment operator.

astrea::astro::detail::VehicleInner::VehicleInner (
    const VehicleInner &
) = delete


function VehicleInner [3/5]

Deleted move assignment operator.

astrea::astro::detail::VehicleInner::VehicleInner (
    VehicleInner &&
) = delete


function VehicleInner [4/5]

Constructs a VehicleInner with a given value.

inline explicit astrea::astro::detail::VehicleInner::VehicleInner (
    const T & x
) 

Parameters:

  • x The value to initialize the vehicle inner implementation.

function VehicleInner [5/5]

Constructs a VehicleInner with a given value.

inline explicit astrea::astro::detail::VehicleInner::VehicleInner (
    T && x
) 

Parameters:

  • x The value to initialize the vehicle inner implementation.

function clone

Clones the vehicle inner implementation.

inline virtual std::unique_ptr< VehicleInnerBase > astrea::astro::detail::VehicleInner::clone () const

Returns:

std::unique_ptr<VehicleInnerBase> A unique pointer to the cloned vehicle inner implementation.

Implements astrea::astro::detail::VehicleInnerBase::clone


function get_coefficient_of_drag

Gets the coefficient of drag of the vehicle or a default value.

inline virtual Unitless astrea::astro::detail::VehicleInner::get_coefficient_of_drag () const

Returns:

Unitless The coefficient of drag of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_coefficient_of_drag


function get_coefficient_of_lift

Gets the coefficient of lift of the vehicle or a default value.

inline virtual Unitless astrea::astro::detail::VehicleInner::get_coefficient_of_lift () const

Returns:

Unitless The coefficient of lift of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_coefficient_of_lift


function get_coefficient_of_reflectivity

Gets the coefficient of reflectivity of the vehicle or a default value.

inline virtual Unitless astrea::astro::detail::VehicleInner::get_coefficient_of_reflectivity () const

Returns:

Unitless The coefficient of reflectivity of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_coefficient_of_reflectivity


function get_inertial_acceleration

Get the acceleration of the frame in Earth-Centered Inertial coordinates.

inline virtual AccelerationVector < frames::earth::icrf > astrea::astro::detail::VehicleInner::get_inertial_acceleration (
    const Date & date
) override const

Parameters:

  • date The date for which to get the acceleration.

Returns:

AccelerationVector<frames::earth::icrf>

Implements astrea::astro::FrameReference::get_inertial_acceleration


function get_inertial_position

Get the position of the frame in Earth-Centered Inertial coordinates.

inline virtual RadiusVector < frames::earth::icrf > astrea::astro::detail::VehicleInner::get_inertial_position (
    const Date & date
) override const

Parameters:

  • date The date for which to get the position.

Returns:

RadiusVector<frames::earth::icrf>

Implements astrea::astro::FrameReference::get_inertial_position


function get_inertial_velocity

Get the velocity of the frame in Earth-Centered Inertial coordinates.

inline virtual VelocityVector < frames::earth::icrf > astrea::astro::detail::VehicleInner::get_inertial_velocity (
    const Date & date
) override const

Parameters:

  • date The date for which to get the velocity.

Returns:

VelocityVector<frames::earth::icrf>

Implements astrea::astro::FrameReference::get_inertial_velocity


function get_lift_area

Gets the lift area of the vehicle or a default value.

inline virtual SurfaceArea astrea::astro::detail::VehicleInner::get_lift_area () const

Returns:

SurfaceArea The lift area of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_lift_area


function get_mass

Gets the mass of the vehicle.

inline virtual Mass astrea::astro::detail::VehicleInner::get_mass () const

Returns:

Mass The mass of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_mass


function get_name

Gets the name of the vehicle.

inline virtual std::string astrea::astro::detail::VehicleInner::get_name () override const

Returns:

std::string The name of the vehicle.

Implements astrea::astro::FrameReference::get_name


function get_ptr [1/2]

Gets a pointer to the internal vehicle instance.

inline virtual const void * astrea::astro::detail::VehicleInner::get_ptr () const

Returns:

const void* A pointer to the internal vehicle instance.

Implements astrea::astro::detail::VehicleInnerBase::get_ptr


function get_ptr [2/2]

Gets a pointer to the internal vehicle instance.

inline virtual void * astrea::astro::detail::VehicleInner::get_ptr () 

Returns:

void* A pointer to the internal vehicle instance.

Implements astrea::astro::detail::VehicleInnerBase::get_ptr


function get_ram_area

Gets the ram area of the vehicle or a default value.

inline virtual SurfaceArea astrea::astro::detail::VehicleInner::get_ram_area () const

Returns:

SurfaceArea The ram area of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_ram_area


function get_solar_area

Gets the solar area of the vehicle or a default value.

inline virtual SurfaceArea astrea::astro::detail::VehicleInner::get_solar_area () const

Returns:

SurfaceArea The solar area of the vehicle.

Implements astrea::astro::detail::VehicleInnerBase::get_solar_area


function operator=

Deleted copy assignment operator.

VehicleInner & astrea::astro::detail::VehicleInner::operator= (
    const VehicleInner &
) = delete


function operator=

Deleted move assignment operator.

VehicleInner & astrea::astro::detail::VehicleInner::operator= (
    VehicleInner &&
) = delete


function requires [1/12]

Gets the default ram area of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    !HasGetRamArea< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the ram area from.

Returns:

SurfaceArea The ram area of the vehicle.


function requires [2/12]

Gets the ram area of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    HasGetRamArea< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the ram area from.

Returns:

SurfaceArea The ram area of the vehicle.


function requires [3/12]

Gets the default lift area of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    !HasGetLiftArea< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the lift area from.

Returns:

SurfaceArea The lift area of the vehicle.


function requires [4/12]

Gets the lift area of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    HasGetLiftArea< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the lift area from.

Returns:

SurfaceArea The lift area of the vehicle.


function requires [5/12]

Gets the default solar area of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    !HasGetSolarArea< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the solar area from.

Returns:

SurfaceArea The solar area of the vehicle.


function requires [6/12]

Gets the solar area of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    HasGetSolarArea< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the solar area from.

Returns:

SurfaceArea The solar area of the vehicle.


function requires [7/12]

Gets the default coefficient of drag of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    !HasGetCoefficientOfDrag< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the coefficient of drag from.

Returns:

Unitless The coefficient of drag of the vehicle.


function requires [8/12]

Gets the coefficient of drag of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    HasGetCoefficientOfDrag< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the coefficient of drag from.

Returns:

Unitless The coefficient of drag of the vehicle.


function requires [9/12]

Gets the default coefficient of lift of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    !HasGetCoefficientOfLift< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the coefficient of lift from.

Returns:

Unitless The coefficient of lift of the vehicle.


function requires [10/12]

Gets the coefficient of lift of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    HasGetCoefficientOfLift< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the coefficient of lift from.

Returns:

Unitless The coefficient of lift of the vehicle.


function requires [11/12]

Gets the default coefficient of reflectivity of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    !HasGetCoefficientOfReflectivity< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the coefficient of reflectivity from.

Returns:

Unitless The coefficient of reflectivity of the vehicle.


function requires [12/12]

Gets the coefficient of reflectivity of the vehicle.

template<typename U>
inline astrea::astro::detail::VehicleInner::requires (
    HasGetCoefficientOfReflectivity< U >
) const

Template parameters:

  • U The type of the vehicle implementation.

Parameters:

  • value The vehicle instance to get the coefficient of reflectivity from.

Returns:

Unitless The coefficient of reflectivity of the vehicle.



The documentation for this class was generated from the following file astrea/astro/astro/platforms/Vehicle.hpp