Namespace NominalSystems.Universe
Classes
- AstroConstants
[Nominal] This class stores all of the astrophysical constants that are relevant to some of the modules present within the library. This includes information for all of the currently known planets and their properties.
- CelestialBody
[Nominal] A celestial body is able to represent a planet, moon, or other celestial object. This will be able to reflect the state of the body from the SPICE kernels and can contribute to the gravitational forces in the simulation.
- ConstellationLibrary
[Nominal] This library is able to calculate spacecraft constellation parameters from a pre-configured design of constellation. This has helper functions for both Coplanar and Walker-Delta constellations.
- DateTimeLibrary
[Nominal] A datetime library will be used to provide a set of functions for working with dates and times.
- DynamicEffector
[Nominal] The base class for all dynamic effectors. It is able to provide a force to change the position of a object.
- ElectromagneticModel
[Nominal] An electromagnetic (EM) model can be added to any universe object which is able to produce a signature in the EM spectrum. This will enable EM signature lookups or standard EM models.
- ExtensionSystem
[Nominal] The extension system is able to handle custom ticking functionality for use with the API and any other form. It just enables the ability to tick at a specific interval.
- GeodeticLibrary
[Nominal] This is a static library for geodetic functions that are used to calculate the position of a point on the Earth's or other celestial body's surface.
- GravityLibrary
[Nominal] Static library for accessing gravity functions for some generic positions and forces of planets.
- GravityModel
[Nominal] A Gravity Effector class is able to calculate the Gravity at some location in respect to all of the bodies in the Universe that are spawned.
- GroundObject
[Nominal] Ground objects are located on the surface of celestial bodies. They are also an entity and can have components attached to them.
- GroundStation
[Nominal] A ground station is able to track objects in space and determine access between these objects and ground stations. Objects can include spacecraft, planets, the Sun, or other ground stations. It is also a ground body, meaning it can be placed on the world.
- IntegrationLibrary
[Nominal] This library allows for the integrator to run for an Euler or RK4 method. This will perform the integration methods for a specific object that is integrable. The object must implement from the IIntegrable interface.
- JSONLibrary
[Nominal] This is a helper library that is able to create JSON objects and intepret them using Strings. This is useful for the Unreal applications for handling JSON objects with strings instead.
- Logger
[Nominal] This class is able to log messages to the console. This can also sync messages to the Unreal applications using the Mono framework and will be able to log a number of severity types.
- MagneticModel
[Nominal] The magnetic model will be able to detect the presence of a magnetic field around the object. This will look at the magnetospheres that exists on the celestial bodies.
- MaritimeSystem
[Nominal] The maritime system is able to keep track of vessels and manage the AIS integration for the vessels and messages.
- MassLibrary
[Nominal] A static library that helps with converting different mass values between different frames of reference. These include Center of Masses and Moment of Inertias. The frames of reference are: L -> Component (Local) Frame B -> Body Frame (Spacecraft) N -> Inertial Frame
- OrbitalMotionLibrary
[Nominal] Helper library for Orbital motion functions. These include Classical (Keplerian) elements, Vector Elements, Two Line Elements, Hill Frame and general orbital motion.
- PhysicalObject
[Nominal] The physical object is the root class for all objects in the simulation that have a mass, a position and a transform relative to the world. The physical object class can be attached to other physical objects, creating a chain of components for a spacecraft or other body.
- PlanetLibrary
[Nominal] This library is able to return lists of correct information and data about the available planets in the solar system and the planets that can be added.
- PredictionModel
[Nominal] The prediction model is produced by the prediction engine and is able to calculate pass times based on the paths of the objects. This will already store a list of data points for the object and will be able to calculate individual states and access times.
- Predictor
[Nominal]
- SatellitePredictor
[Nominal] This is a predictor that is able to predict the path of a satellite over the course of time. This will handle all calculations to produce a prediction model that can be used to analyse the path passes for an observer or ground station. This will also run models based on the propagation type.
- Schematic
[Nominal] A schematic is a blueprint for a structure or system. This can be applied to any simulation object and will be used to generate data if needed.
- SimulationExtension
[Nominal] The simulation extension provides additional functionality to the simulation for accessing objects, adding objects, and updating the simulation using more appropriate tick events.
- SolarModel
[Nominal] Defines the behaviour for a solar observer that is able to determine the solar flux of the sun and the eclipse based on the planets at the current position of the attached target. This model can be placed on any particular universe object class.
- SolarSystem
[Nominal] Container class for spawning in all Universe models and simulation objects. This will handle the creation of the planets, environments and the epoch of the simulation.
- Spacecraft
[Nominal] The spacecraft is a complex object that is used to represent a spacecraft in the simulation. It is a physical object that can be affected by external forces, contain state and dynamic effectors and is able to be integrated.
- SpiceLibrary
[Nominal] Interfaces with NASA SPICE library and is able to fetch the current ephemeris and time information from SPICE. All functions involving SPICE are thread-safe and require a lock to make them thread-safe.
- StateEffector
[Nominal] A State Effector is able to provide a force to rotate an object on an axis. A state effector does not adjust the position of the spacecraft, merely adjusts the internal states or rotations.
- StateModel
[Nominal] The state properties model is able to store a range of states and be able to integrate over these states during the simulation. It is common that the state properties is added to a spacecraft for integrating through a state and is able to manage the base state data for the object itself.
- ThermalModel
[Nominal] A thermal model can be added to any universe object which is able to manage the thermal data of a particular object. This will enable thermal CSV lookups or standard Thermal models.
- TrackingSystem
[Nominal] The tracking system is able to keep track of data and objects over the lifetime of the simulation and can store data into databases associated with this particular system.
- UniverseBehaviour
[Nominal] This is the base class for an object that exists within the simulation that does not have a physical appearance or visualisation. This is purely some behaviour that exists that can be constructed and added to the system.
- UniverseEvent
[Nominal] The universe event object is the base object for all universe event types. This includes Universe behaviours, objects, models and systems. This handles the functionality of ticking through the objects as well as managing the event lifetimes.
- UniverseModel
[Nominal] The Universe Model is a base class for handling additional functionality that can exist on Universe Components. These can be fetched from the component and if they exist, they will be created or returned.
- UniverseModel<T>
[Nominal] The Universe Model is a base class for handling additional functionality that can exist on Universe Components. These can be fetched from the component and if they exist, they will be created or returned. This type is defined based on the object that can be attached to.
- UniverseObject
[Nominal] A universe object is a special object that can have a physical position and may be visible in the world. It can be attached to a parent or moved around relative to the origin. This object is useful for visualisations to help keep track of the locations of objects.
- UniverseParentAttribute
[Nominal] This attribute can be added to any Universe Object, or Universe Behaviour, that will specify which objects they can be attached to. If there is no Universe Parent, it will be able to attach to any object (within the domain). There can be many parent attributes added if required.
- UniverseSystem
[Nominal] This is the base class for all systems that exist within a Nominal simulation. Simulation systems always exist and can be fetched by any object that inherits from the Universe classes.
- Vehicle
[Nominal] A ground vehicle is able to move along the ground of a planet and be controlled. The vehicle can have a reference frame for which the movement is relative to.
- Vessel
[Nominal] This class defines a vessel that can represent the state of a particular object at sea level based. This can also be used to connect to maritime data-streams and represent a position of a vessel. This object will always exist on the surface of a WGS-84 (World Geodetic System) globe, which is the true non-spherical shape of the Earth.
Structs
- ClassicElements
[Nominal] This structure contains the set of Keplerian orbital elements that define the spacecraft translational state. This contains the six Keplerian elements and the associated properties that can be derived from them.
- EquinoctialElements
[Nominal] This structure contains the set of Equinoctial elements that define the spacecraft translational state.
- GeodeticElements
[Nominal] This structure contains the set of Geographic elements that exist around a particular body.
- NonSingularElements
[Nominal] A different parameterisation of the orbital elements that are particularly useful for formation flying of spacecraft.
- PredictionPass
[Nominal] Stores information for a particular pass that might be calculated based on a prediction between the motion of a spacecraft and a ground station or observer.
- RelativeElements
[Nominal] This structure contains the set of Relative orbital elements that define the relative state between two spacecraft.
- SpacecraftAccess
[Nominal] Structure that defines the access of a specific spacecraft to a ground station, including the elevation and azimuth angles. This is useful for prediction analysis and determining the range of access over a network.
- TwoLineElements
[Nominal] This structure handles all necessary functions required to to import a Two Line Element set (TLE) to the simulation. A standard TLE will also include a first line with the name of the object, with the second and third lines being the actual TLE data, following the international standard.
- VectorElements
[Nominal] This structure contains a state vector that define a body's translational state. This includes the velocity and the position of the body relative to the inertial origin.
Interfaces
- IIntegrable
[Nominal] The integrable interface allows a particular object to be integrated by the integrator.
Enums
- RotationType
[Nominal] This defines the type of rotation that is defined for the non-orbital trajectories, which include being able to use real lookup data or using some form of attitude data.