Skip to content

File astro.fwd.hpp

File List > astrea > astro > astro > astro.fwd.hpp

Go to the documentation of this file

#pragma once

#include <astro/types/enums.hpp>

namespace astrea {
namespace astro {

class State;
class StatePartial;
class StateHistory;

// ELement sets
class Cartesian;
class Keplerian;
class Equinoctial;
class TwoLineElements;
class CartesianPartial;
class KeplerianPartial;
class EquinoctialPartial;
class TwoLineElementsPartial;
class GeneralPerturbations;
class OrbitalElements;
class OrbitalElementPartials;

class CartesianStm;
class KeplerianStm;
class EquinoctialStm;
class StateTransitionMatrix;

template <class Value_T, class Frame_T>
class CartesianVector;

template <CelestialBodyId origin, FrameAxis axis>
struct Frame;

template <CelestialBodyId origin, FrameAxis axis>
    requires(origin != CelestialBodyId::UNSET && origin != CelestialBodyId::CUSTOM)
struct InertialFrame;

template <CelestialBodyId origin>
    requires(origin != CelestialBodyId::UNSET)
struct BodyFixedFrame;

template <class Frame_T, FrameAxis axis>
    requires(axis != FrameAxis::ICRF && axis != FrameAxis::J2000 && axis != FrameAxis::BODY_FIXED)
class DynamicFrame;

struct LocalHorizontalLocalVertical;
struct RadialInTrackCrossTrack;
struct VelocityNormalBinormal;
struct Perifocal;

template <typename In_Frame_T, typename Out_Frame_T>
class DirectionCosineMatrix;

// Platforms
template <class Spacecraft_T>
class Constellation;
template <class Spacecraft_T>
class Plane;
template <class Spacecraft_T>
class Shell;
class Spacecraft;
template <class Payload_T, class PayloadParameters_T>
class Payload;
class PayloadParameters;
template <class Payload_T>
class PayloadPlatform;
class Vehicle;

// Propagation
class EquationsOfMotion;
class Integrator;
class LambertSolver;
class Event;
class EventDetector;

// Systems
class AstrodynamicsSystem;
class CelestialBody;
struct CelestialBodyParameters;

// Time
class Date;
class Interval;
struct JulianDateClock;

} // namespace astro
} // namespace astrea