Skip to content

Class astrea::astro::Constellation

template <class Spacecraft_T>

ClassList > astrea > astro > Constellation

A Constellation is a collection ofSpacecraft , organized into Shells and/or Planes.More...

  • #include <Constellation.hpp>

Classes

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

Public Types

Type Name
typedef const sat_iterator const_iterator
Const iterator for iterating over all Spacecraft in theConstellation .
typedef sat_iterator iterator
Iterator for iterating over all Spacecraft in theConstellation .

Public Functions

Type Name
Constellation ()
Default constructor for Constellation .
Constellation (std::vector< Shell< Spacecraft_T >> shells)
Construct a Constellation from a vector of Shells.
Constellation (std::vector< Plane< Spacecraft_T >> planes)
Construct a Constellation from a vector of Planes.
Constellation (std::vector< Spacecraft_T > satellites)
Construct a Constellation from a vector ofSpacecraft .
Constellation (const std::vector< GeneralPerturbations > & gp, const AstrodynamicsSystem & system)
Construct a Constellation from a vector ofGeneralPerturbations objects.
Constellation (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)
Construct a Constellation with a specific configuration.
void add_plane (const Plane< Spacecraft_T > & plane, const std::size_t & shellId)
Add a Plane to theConstellation with a specific shell ID.
void add_plane (const Plane< Spacecraft_T > & plane)
Add a Plane to theConstellation without specifying a shell ID.
void add_shell (const Shell< Spacecraft_T > & shell)
Add a Shell to theConstellation .
void add_spacecraft (const Spacecraft_T & spacecraft, const std::size_t & planeId)
Add a Spacecraft to a specificPlane in theConstellation .
void add_spacecraft (const Spacecraft_T & spacecraft)
Add a Spacecraft to theConstellation without specifying aPlane ID.
iterator begin ()
Get an iterator to the beginning of the Constellation .
const_iterator begin () const
Get a const iterator to the beginning of the Constellation .
const_iterator cbegin () const
Get a const iterator to the beginning of the Constellation .
const_iterator cend () const
Get a const iterator to the end of the Constellation .
iterator end ()
Get an iterator to the end of the Constellation .
const_iterator end () const
Get a const iterator to the end of the Constellation .
const std::vector< Spacecraft_T > get_all_spacecraft () const
Get all Spacecraft in theConstellation .
const Plane< Spacecraft_T > & get_plane (const std::size_t & planeId) const
Get a specific Plane by its ID.
const std::vector< Plane< Spacecraft_T > > get_planes () const
Get all Planes in the Constellation .
const Shell< Spacecraft_T > & get_shell (const std::size_t & shellId) const
Get a specific Shell by its ID.
std::vector< Shell< Spacecraft_T > > & get_shells ()
Get all Shells in the Constellation .
const std::vector< Shell< Spacecraft_T > > & get_shells () const
Get all Shells in the Constellation .
const Spacecraft_T & get_spacecraft (const std::size_t & spacecraftId) const
Get a specific Spacecraft by its ID.
const std::size_t n_planes () const
Get the number of planes in the Constellation .
const std::size_t n_shells () const
Get the number of shells in the Constellation .
Spacecraft_T & operator[] (const std::size_t idx)
Access the Spacecraft at a specific index in theConstellation .
const Spacecraft_T & operator[] (const std::size_t idx) const
Access the Spacecraft at a specific index in theConstellation .
void propagate (const Time & propTime, const EquationsOfMotion & eom, Integrator & integrator)
Propagate the Constellation using the provided epoch, Equations of Motion, andIntegrator .
void propagate (const Date & endEpoch, const EquationsOfMotion & eom, Integrator & integrator)
Propagate the Constellation using the provided epoch, Equations of Motion, andIntegrator .
const std::size_t size () const
Get the size of the Constellation .
~Constellation () = default
Default destructor for Constellation .

Detailed Description

Template parameters:

Note:

Defaults to Spacecraft, but can be any class that inherits from Spacecraft.

Public Types Documentation

typedef const_iterator

Const iterator for iterating over all Spacecraft in theConstellation .

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

This const iterator allows iteration over all Spacecraft in the Constellation, regardless of their Shell or Plane.


typedef iterator

Iterator for iterating over all Spacecraft in theConstellation .

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

This iterator allows iteration over all Spacecraft in the Constellation, regardless of their Shell or Plane.


Public Functions Documentation

function Constellation [1/6]

Default constructor for Constellation .

inline astrea::astro::Constellation::Constellation () 


function Constellation [2/6]

Construct a Constellation from a vector of Shells.

astrea::astro::Constellation::Constellation (
    std::vector< Shell < Spacecraft_T >> shells
) 

Parameters:


function Constellation [3/6]

Construct a Constellation from a vector of Planes.

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

Parameters:


function Constellation [4/6]

Construct a Constellation from a vector ofSpacecraft .

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

Parameters:


function Constellation [5/6]

Construct a Constellation from a vector ofGeneralPerturbations objects.

astrea::astro::Constellation::Constellation (
    const std::vector< GeneralPerturbations > & gp,
    const AstrodynamicsSystem & system
) 

Parameters:


function Constellation [6/6]

Construct a Constellation with a specific configuration.

astrea::astro::Constellation::Constellation (
    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 AstrodynamicsSystem to use for the Constellation.
  • epoch The epoch of the Constellation.
  • semimajor The semimajor axis of the orbit.
  • inclination The inclination of the orbit.
  • T The number of shells in the Constellation.
  • P The number of planes in each shell.
  • F The number of spacecraft in each plane.
  • anchorRAAN The right ascension of ascending node (RAAN) for the first shell.
  • anchorAnomaly The argument of perigee for the first shell.

function add_plane [1/2]

Add a Plane to theConstellation with a specific shell ID.

void astrea::astro::Constellation::add_plane (
    const Plane < Spacecraft_T > & plane,
    const std::size_t & shellId
) 

Parameters:


function add_plane [2/2]

Add a Plane to theConstellation without specifying a shell ID.

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

Parameters:


function add_shell

Add a Shell to theConstellation .

void astrea::astro::Constellation::add_shell (
    const Shell < Spacecraft_T > & shell
) 

Parameters:


function add_spacecraft [1/2]

Add a Spacecraft to a specificPlane in theConstellation .

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

Parameters:


function add_spacecraft [2/2]

Add a Spacecraft to theConstellation without specifying aPlane ID.

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

Parameters:


function begin [1/2]

Get an iterator to the beginning of the Constellation .

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

Returns:

iterator An iterator pointing to the first Spacecraft in the Constellation.


function begin [2/2]

Get a const iterator to the beginning of the Constellation .

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

Returns:

const_iterator A const iterator pointing to the first Spacecraft in the Constellation.


function cbegin

Get a const iterator to the beginning of the Constellation .

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

Returns:

const_iterator A const iterator pointing to the first Spacecraft in the Constellation.


function cend

Get a const iterator to the end of the Constellation .

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

Returns:

const_iterator A const iterator pointing to one past the last Spacecraft in the Constellation.


function end [1/2]

Get an iterator to the end of the Constellation .

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

Returns:

iterator An iterator pointing to one past the last Spacecraft in the Constellation.


function end [2/2]

Get a const iterator to the end of the Constellation .

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

Returns:

const_iterator A const iterator pointing to one past the last Spacecraft in the Constellation.


function get_all_spacecraft

Get all Spacecraft in theConstellation .

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

Returns:

std::vector<Spacecraft_T> A vector of all Spacecraft in the Constellation.


function get_plane

Get a specific Plane by its ID.

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

Parameters:

  • planeId The ID of the Plane to retrieve.

Returns:

const Plane<Spacecraft_T>& A const reference to the Plane with the specified ID.


function get_planes

Get all Planes in the Constellation .

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

Returns:

std::vector<Plane<Spacecraft_T>>& A reference to the vector of Planes in the Constellation.


function get_shell

Get a specific Shell by its ID.

const Shell < Spacecraft_T > & astrea::astro::Constellation::get_shell (
    const std::size_t & shellId
) const

Parameters:

  • shellId The ID of the Shell to retrieve.

Returns:

const Shell<Spacecraft_T>& A const reference to the Shell with the specified ID.


function get_shells [1/2]

Get all Shells in the Constellation .

std::vector< Shell < Spacecraft_T > > & astrea::astro::Constellation::get_shells () 

Returns:

std::vector<Shell<Spacecraft_T>>& A reference to the vector of Shells in the Constellation.


function get_shells [2/2]

Get all Shells in the Constellation .

const std::vector< Shell < Spacecraft_T > > & astrea::astro::Constellation::get_shells () const

Returns:

const std::vector<Shell<Spacecraft_T>>& A const reference to the vector of Shells in the Constellation.


function get_spacecraft

Get a specific Spacecraft by its ID.

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

Parameters:

  • spacecraftId The ID of the Spacecraft to retrieve.

Returns:

const Spacecraft_T& A const reference to the Spacecraft with the specified ID.


function n_planes

Get the number of planes in the Constellation .

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

Returns:

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


function n_shells

Get the number of shells in the Constellation .

const std::size_t astrea::astro::Constellation::n_shells () const

Returns:

const std::size_t The number of shells in the Constellation.


function operator[]

Access the Spacecraft at a specific index in theConstellation .

Spacecraft_T & astrea::astro::Constellation::operator[] (
    const std::size_t idx
) 

Parameters:

Returns:

Spacecraft_T& A reference to the Spacecraft at the specified index.


function operator[]

Access the Spacecraft at a specific index in theConstellation .

const Spacecraft_T & astrea::astro::Constellation::operator[] (
    const std::size_t idx
) const

Parameters:

Returns:

const Spacecraft_T& A const reference to the Spacecraft at the specified index.


function propagate [1/2]

Propagate the Constellation using the provided epoch, Equations of Motion, andIntegrator .

void astrea::astro::Constellation::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 use for propagation.
  • integrator The Integrator to use for propagation.

function propagate [2/2]

Propagate the Constellation using the provided epoch, Equations of Motion, andIntegrator .

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

Parameters:

  • endEpoch The total propagation time after the initial state epoch.
  • eom The Equations of Motion to use for propagation.
  • integrator The Integrator to use for propagation.

function size

Get the size of the Constellation .

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

Returns:

const std::size_t The number of Spacecraft in the Constellation.


function ~Constellation

Default destructor for Constellation .

astrea::astro::Constellation::~Constellation () = default



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