Skip to content

Class astrea::astro::Shell

template <class Spacecraft_T>

ClassList > astrea > astro > Shell

A Shell is a collection of planes, each containing a set ofSpacecraft . It is used to represent sub-constellations of satellites in orbit.More...

  • #include <Shell.hpp>

Classes

Type Name
class sat_iterator
Iterator for iterating over all Spacecraft in theShell .

Public Types

Type Name
typedef const sat_iterator const_iterator
Const iterator for iterating over all Planes in the Shell .
typedef sat_iterator iterator
Iterator for iterating over all Planes in the Shell .

Public Functions

Type Name
Shell () = default
Default constructor for Shell . Initializes an empty shell with no planes or spacecraft.
Shell (std::vector< Plane< Spacecraft_T >> planes)
Constructor for Shell with a vector of planes.
Shell (std::vector< Spacecraft_T > satellites)
Constructor for Shell with a vector of satellites.
Shell (const AstrodynamicsSystem & sys, const Date & epoch, const Distance & semimajor, const Angle & inclination, const std::size_t & T, const std::size_t & P, const double & F, const Angle & anchorRAAN=0.0 *mp_units::angular::unit_symbols::rad, const Angle & anchorAnomaly=0.0 *mp_units::angular::unit_symbols::rad)
Constructor for Shell with a Walker parameters.
void add_plane (const Plane< Spacecraft_T > & plane)
Adds a plane to the shell.
void add_spacecraft (const Spacecraft_T & spacecraft, const std::size_t & planeId)
Adds a spacecraft to a specific plane in the shell.
void add_spacecraft (const Spacecraft_T & spacecraft)
Adds a spacecraft to the shell.
iterator begin ()
Get an iterator to the beginning of the Shell .
const_iterator begin () const
Get a const iterator to the beginning of the Shell .
const_iterator cbegin () const
Get a const iterator to the beginning of the Shell .
const_iterator cend () const
Get a const iterator to the end of the Shell .
iterator end ()
Get an iterator to the end of the Shell .
const_iterator end () const
Get a const iterator to the end of the Shell .
const std::vector< Spacecraft_T > get_all_spacecraft () const
Returns a vector of all spacecraft in the shell.
const std::size_t get_id () const
const Plane< Spacecraft_T > & get_plane (const std::size_t & planeId) const
Returns a reference to a specific plane in the shell by its ID.
std::vector< Plane< Spacecraft_T > > & get_planes ()
Returns a reference to the vector of planes in the shell.
const std::vector< Plane< Spacecraft_T > > & get_planes () const
Returns a constant reference to the vector of planes in the shell.
const Spacecraft_T & get_spacecraft (const std::size_t & spacecraftId) const
Returns a reference to a specific spacecraft in the shell by its ID.
const std::size_t n_planes () const
Returns the number of planes in the shell.
void propagate (const Time & propTime, const EquationsOfMotion & eom, Integrator & integrator)
Propagates the shell's spacecraft using the provided equations of motion and integrator.
void propagate (const Date & endEpoch, const EquationsOfMotion & eom, Integrator & integrator)
Propagates the shell's spacecraft using the provided equations of motion and integrator.
const std::size_t size () const
Returns the size of the shell, which is the number of spacecraft it contains.
~Shell ()
Destructor for Shell . Cleans up the shell and its planes.

Detailed Description

Template parameters:

  • Spacecraft_T The type of spacecraft contained in the shell, must derive from Spacecraft.

Note:

This class is templated to allow for different types of spacecraft, but it must be derived from the Spacecraft base class.

Public Types Documentation

typedef const_iterator

Const iterator for iterating over all Planes in the Shell .

using astrea::astro::Shell< Spacecraft_T >::const_iterator =  const sat_iterator;


typedef iterator

Iterator for iterating over all Planes in the Shell .

using astrea::astro::Shell< Spacecraft_T >::iterator =  sat_iterator;


Public Functions Documentation

function Shell [1/4]

Default constructor for Shell . Initializes an empty shell with no planes or spacecraft.

astrea::astro::Shell::Shell () = default


function Shell [2/4]

Constructor for Shell with a vector of planes.

astrea::astro::Shell::Shell (
    std::vector< Plane < Spacecraft_T >> planes
) 

Parameters:

  • planes A vector of Plane objects containing Spacecraft_T.

function Shell [3/4]

Constructor for Shell with a vector of satellites.

astrea::astro::Shell::Shell (
    std::vector< Spacecraft_T > satellites
) 

Parameters:

  • satellites A vector of Spacecraft_T objects to be added to the shell.

function Shell [4/4]

Constructor for Shell with a Walker parameters.

astrea::astro::Shell::Shell (
    const AstrodynamicsSystem & sys,
    const Date & epoch,
    const Distance & semimajor,
    const Angle & inclination,
    const std::size_t & T,
    const std::size_t & P,
    const double & F,
    const Angle & anchorRAAN=0.0 *mp_units::angular::unit_symbols::rad,
    const Angle & anchorAnomaly=0.0 *mp_units::angular::unit_symbols::rad
) 

Parameters:

  • sys The astrodynamics system to which the shell belongs.
  • epoch The epoch date for the shell's orbit.
  • semimajor The semimajor axis of the shell's orbit.
  • inclination The inclination of the shell's orbit.
  • T The number of planes in the shell.
  • P The number of spacecraft per plane.
  • F The spacing factor between spacecraft in the same plane.
  • anchorRAAN The right ascension of ascending node for the shell's orbit (default is 0).
  • anchorAnomaly The argument of perigee for the shell's orbit (default is 0).

function add_plane

Adds a plane to the shell.

void astrea::astro::Shell::add_plane (
    const Plane < Spacecraft_T > & plane
) 

Parameters:

  • plane The Plane object to be added to the shell.

function add_spacecraft [1/2]

Adds a spacecraft to a specific plane in the shell.

void astrea::astro::Shell::add_spacecraft (
    const Spacecraft_T & spacecraft,
    const std::size_t & planeId
) 

Parameters:

  • spacecraft The Spacecraft_T object to be added.
  • planeId The ID of the plane to which the spacecraft will be added.

function add_spacecraft [2/2]

Adds a spacecraft to the shell.

void astrea::astro::Shell::add_spacecraft (
    const Spacecraft_T & spacecraft
) 

Parameters:

  • spacecraft The Spacecraft_T object to be added.

function begin [1/2]

Get an iterator to the beginning of the Shell .

inline iterator astrea::astro::Shell::begin () 

Returns:

iterator An iterator pointing to the first Plane in the Shell.


function begin [2/2]

Get a const iterator to the beginning of the Shell .

inline const_iterator astrea::astro::Shell::begin () const

Returns:

const_iterator A const iterator pointing to the first Plane in the Shell.


function cbegin

Get a const iterator to the beginning of the Shell .

inline const_iterator astrea::astro::Shell::cbegin () const

Returns:

const_iterator A const iterator pointing to the first Plane in the Shell.


function cend

Get a const iterator to the end of the Shell .

inline const_iterator astrea::astro::Shell::cend () const

Returns:

const_iterator A const iterator pointing to one past the last Plane in the Shell.


function end [1/2]

Get an iterator to the end of the Shell .

inline iterator astrea::astro::Shell::end () 

Returns:

iterator An iterator pointing to one past the last Plane in the Shell.


function end [2/2]

Get a const iterator to the end of the Shell .

inline const_iterator astrea::astro::Shell::end () const

Returns:

const_iterator A const iterator pointing to one past the last Plane in the Shell.


function get_all_spacecraft

Returns a vector of all spacecraft in the shell.

const std::vector< Spacecraft_T > astrea::astro::Shell::get_all_spacecraft () const

Returns:

const std::vector<Spacecraft_T> A vector containing all spacecraft in the shell.


function get_id

inline const std::size_t astrea::astro::Shell::get_id () const

function get_plane

Returns a reference to a specific plane in the shell by its ID.

const Plane < Spacecraft_T > & astrea::astro::Shell::get_plane (
    const std::size_t & planeId
) const

Parameters:

  • planeId The ID of the plane to retrieve.

Returns:

const Plane<Spacecraft_T>& A constant reference to the specified plane.


function get_planes [1/2]

Returns a reference to the vector of planes in the shell.

std::vector< Plane < Spacecraft_T > > & astrea::astro::Shell::get_planes () 

Returns:

std::vector<Plane<Spacecraft_T>>& A reference to the vector of planes in the shell.


function get_planes [2/2]

Returns a constant reference to the vector of planes in the shell.

const std::vector< Plane < Spacecraft_T > > & astrea::astro::Shell::get_planes () const

Returns:

const std::vector<Plane<Spacecraft_T>>& A constant reference to the vector of planes in the shell.


function get_spacecraft

Returns a reference to a specific spacecraft in the shell by its ID.

const Spacecraft_T & astrea::astro::Shell::get_spacecraft (
    const std::size_t & spacecraftId
) const

Parameters:

  • spacecraftId The ID of the spacecraft to retrieve.

Returns:

const Spacecraft_T& A constant reference to the specified spacecraft.


function n_planes

Returns the number of planes in the shell.

const std::size_t astrea::astro::Shell::n_planes () const

Returns:

const std::size_t The number of planes in the shell.


function propagate [1/2]

Propagates the shell's spacecraft using the provided equations of motion and integrator.

void astrea::astro::Shell::propagate (
    const Time & propTime,
    const EquationsOfMotion & eom,
    Integrator & integrator
) 

Parameters:

  • propTime The total propagation time after the initial state epoch.
  • eom The equations of motion to be used for propagation.
  • integrator The integrator to be used for numerical integration.

function propagate [2/2]

Propagates the shell's spacecraft using the provided equations of motion and integrator.

void astrea::astro::Shell::propagate (
    const Date & endEpoch,
    const EquationsOfMotion & eom,
    Integrator & integrator
) 

Parameters:

  • endEpoch The end epoch for propagation.
  • eom The equations of motion to be used for propagation.
  • integrator The integrator to be used for numerical integration.

function size

Returns the size of the shell, which is the number of spacecraft it contains.

const std::size_t astrea::astro::Shell::size () const

Returns:

const std::size_t The number of spacecraft in the shell.


function ~Shell

Destructor for Shell . Cleans up the shell and its planes.

inline astrea::astro::Shell::~Shell () 



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