Gravity Engine 2 4.0
Loading...
Searching...
No Matches
GravityEngine2 Namespace Reference

Classes

class  BodyInitData
 Container class to hold common info for init of an orbital body. More...
 
class  Booster
 Booster External Acceleration. More...
 
class  CR3BP
 Circular Restricted Three Body Problem. More...
 
class  DustBall
 
class  DustRing
 Dust ring. Create a ring of particles in orbit around an NBody mass. Allows full control over the orbital attributes of the ring particles. More...
 
class  EarthAtmosphere
 Computes the acceleration due to drag in the Earth's atmosphere for a given height and velocity. More...
 
class  EarthSunlight
 Set the illumination direction for a directional light for the Earth based on evolving time in world seconds. More...
 
class  EphemerisData
 Contatiner class to hold info on ephemeris data read from a file. More...
 
class  EphemerisLoader
 Class to load ephemeris data and place is GEBodyState array. More...
 
class  EphemerisPropagator
 Code used by GEPhysicsCore to evolve according to an ephemeris table. The data values have been repackaged by GECore and converted into GE units by the time this code acts on them. More...
 
class  ExternalAccel
 The integrators in the GEPhysicsCore can be configured to include additional forces (beyond gravity) to their force computations. Typical examples include a continuous thrust rocket, atmospheric drag or changes to the gravitation force itself (e.g. 1/R) More...
 
class  GBUnits
 Gravity engine uses NBody units (nbu) (https://en.wikipedia.org/wiki/N-body_units) internally. This allows the numerical integration to work with values without worring about loss of precision due to odd choices of scale (e.g. galaxy simulation in cm). More...
 
class  GE2_Documentation
 Simple Script to provide a button to open related docs in a browser. More...
 
struct  GEBodyState
 Struct to hold the state information of a body being evolved in the GECore. Typically the information is in world units (unless the request to GEcore.StateById() specifically asked for GE internal units). More...
 
class  GEConst
 
class  GECore
 Gravity Engine Core Central class for evolution using gravity and propagators. More...
 
interface  GEListenerIF
 
class  GEManeuver
 GEmaneuver is the CLASS that represents a maneuver while it is being created and planned. As a class it is easy to adjust member variables during creation. It5 also holds a reference to the body to be applied (and optionally center it is relative to) by id. More...
 
struct  GEManeuverStruct
 Struct of types that are Burst/Job compatible to describe maneuvers for the IJob propagators. More...
 
class  GEPhysicsCore
 This (plus the. More...
 
class  GESphereCamera
 Key control to rotate camera boom using Arrow keys for rotation and < > keys for zoom. More...
 
class  GravityJ2
 
class  GravityMath
 
class  GSBinary
 Component to specify that two GSBody objects are in orbit around their mutual center of mass (CM). Use when the mass ratio of the two bodies m1/m2, m1 < m2 is non negligible. e.g. the Earth/Moon system. More...
 
class  GSBody
 A component for the in-scene representation of a body to be evolved with GE via a GravitySceneController. More...
 
class  GSBoosterMultiStage
 Specifies and controls a multi-stage rocket for launch from a planet surface. More...
 
class  GSCollider
 In Scene representation of a collider attached to a GSBody. More...
 
class  GSCommon
 
class  GSController
 The GSController (GSC) manages a set of gravitational bodies in an orbital system and their associated scene display components. There may be zero, one or many GSControllers that make reference to the gravitational bodies managed by this controller. More...
 
class  GSDisplay
 Control the display of all GSDisplay objects for a given GE. The GE is commonly implied by the use of GravitySceneController, otherwise it can be set via a script. More...
 
class  GSDisplay2D
 Display objects and trajectories on XY plot of ascent/launch path. More...
 
class  GSDisplay2DCoro
 Project the physical orbit onto the XZ view plane. More...
 
class  GSDisplayBody
 Class to display the location of a GSBody in a scene. More...
 
class  GSDisplayObject
 Abstract class to provide a API to allow display objects to add themselves to the GravitySceneDisplay (GSD) in the fashion they wish. More...
 
class  GSDisplayOrbit
 GSDisplayOrbit: This component has several usages: 1) Display an orbit for an existing (evolving) orbit in the scene. More...
 
class  GSDisplayOrbitPoint
 Display the specified point on the Orbit referenced by GSDisplayOrbit by moving the transform of this object to the correct location. More...
 
class  GSDisplayOrbitSegment
 Displays a segment of an orbit around a central body. More...
 
class  GSEarthAtmosphere
 Computes the acceleration due to drag in the Earth's atmosphere for a given height and velocity. More...
 
interface  GSExternalAcceleration
 Display class to allow a constant external acceleration to be added to an object that has a GRAVITY propagator. More...
 
class  GSLaunchDisplay
 Display objects and trajectories on XY plot of ascent/launch path. More...
 
class  GSMapDisplay
 Display objects and trajectories on a map projection of a planet. More...
 
class  GSParticles
 Evolve particles in the gravitation field computed by the GravityEngine. More...
 
class  GSStageDisplayMgr
 Manages the display of stages for a multi-stage booster. More...
 
class  GSTools
 
class  GSTransferShip
 Scene wrapper for the. More...
 
class  HohmannGeneral
 Hohmann transfer or rendezvous between any two circular orbits. Handles diffences in radius, inclination and RAAN (Omega). More...
 
class  I18N
 
interface  IGSParticlesInit
 Interface defining methods to be implemented to define particle positions and velocities for GravityParticles. More...
 
class  Integrators
 
class  InverseR
 
class  IonDrive
 
class  JPLHorizonTools
 
class  JPLThreeBodyCSV
 Script to use in Editor to read a CSV exported from the JPL Three Body website (https://ssd.jpl.nasa.gov/tools/periodic_orbits.html#/intro) More...
 
class  KeplerPropagator
 Code to propagate Kepler orbits (ellipse, parabola, hyperbola). More...
 
class  LambertBattin
 
class  LambertUniversal
 Calculate the universal Lambert transfer. This algorithm allows the transfer to be elliptic or hyperbolic as necessary to meet the designated transfer time. The transfer code can be used to determine the minimum energy transfer between the desired points/orbits - in this case the time of transfer is not specified. Additional API calls can be used to request a specific transfer time. It is frquently useful to obtain the most efficient transfer time and then use this as a baseline from which to investigate the dV cost of faster transfers. More...
 
class  LaunchSiteShim
 A kinda kludgy class to position a transform at the true physical surface of a planet and orient the indicated display axis model to be normal to the planets surface. More...
 
class  LeastSquaresFit
 Routines to do a linear least-squares fit. More...
 
class  LineScaler
 
class  Orbital
 Orbital utilities relating to classical orbital elements (COE) and converting between (r,v) <=> COE. More...
 
class  OrbitDisplayCommon
 
class  PKeplerPropagator
 Propagation using the PKEPLER algorithm from Vallado. More...
 
class  PolynomialSolver
 
class  SecantRootFind
 Secant root find method. More...
 
class  SGP4Propagator
 Code to propagate SGP4 satellites i.e. satellites in Earth orbit with modeling for atmosphere, oblate gravity, moon, sun etc. More...
 
struct  SGP4SatData
 
class  SGP4unit
 
class  SGP4utils
 
class  SolarMetaController
 The Solar System has a GSController for the motion of planets around the sun and separate controllers for any planets with satellites. Due to the difference length and mass scales these controllers will have different internal integration times. More...
 
class  SolarSystemBuilder
 SolarSystemBuilder is an Editor feature used to create a Solar System prior to running a scene. This class is just a struct like anchor for the editor operations. More...
 
class  SolarSystemTools
 
class  StructPool
 Utility to manage a pool of structs in GECore. More...
 
class  TimeUtils
 
class  TransferShip
 Class to determine the maneuvers required to get a ship at an existing position in orbit around a center body to a specified orbit. More...
 

Enumerations

enum  LambertMode { TO_R2 , INTERCEPT , RENDEZVOUS }
 Modes used internally to indicate type of calculation in ComputeXfer.
 
enum  ManeuverInfo {
  USER , HG_IO_PHASE , HG_IO_X1 , HG_IO_X2 ,
  HG_OI_PHASE , HG_OI_X1 , HG_OI_X2 , HG_CHV_1 ,
  HG_CHV_2 , HG_SOP_1 , HG_SOP_2 , HG_CIAN_1 ,
  LAM_1 , LAM_2 , LBAT_1 , LBAT_2 ,
  INTERCEPT
}
 It's useful to add info to a maneuver for debug that shows how the maneuver was generated (transfers etc.) Strings cannot be put into NativeArrays, so resort to tokens that can be decoded.
 
enum  ManeuverType { SET_VELOCITY , APPLY_DV , SCALAR_DV }
 

Functions

delegate void DoneCallback (GEManeuver gem, GEPhysicsCore.PhysEvent physEvent)