Gravity Engine 12.0
Unity Asset for Gravity
Loading...
Searching...
No Matches
BinaryPair Class Reference

Binary Pair. More...

Inheritance diagram for BinaryPair:
EllipseBase IOrbitScalable IOrbitPositions

Public Member Functions

void SetupBodies ()
 
void ApplyScale (float scale)
 Apply scale to the orbit. This is used by the inspector scripts during scene setup. Do not use at run-time.
 
void ApplyXZChange ()
 
- Public Member Functions inherited from EllipseBase
void Init ()
 Init the ellipse, verify a center body is present, determine orientation and update transform.
 
void SetCenterBody (GameObject centerBody)
 Sets the center body and initializes the ellipse configuration.
 
void InitFromOrbitData (OrbitData od)
 Inits an EllipseBase orbit from orbital parameters contained in an OrbitData.
 
OrbitData GetOrbitData ()
 
void SetInitialPosition (NBody nbody)
 Sets the initial position based on the orbit parameters. Used in the init phase to set the NBody in the correct position in the scene before handing control GE.
 
Vector3[] OrbitPositions (int numPoints, Vector3 centerPos, bool doSceneMapping)
 Calculate an array of points that describe the specified orbit.
 
Vector3[] OrbitSegmentPositions (int numPoints, Vector3 centerPos, Vector3 startPos, Vector3 endPos, bool shortPath)
 Generate the points for an orbit segment given the start and end positions. If shortPath then the short path between the points will be shown, otherwise the long way around.
 
GameObject GetCenterObject ()
 Return the center object around which this ellipse is defined.
 
Vector3[] OrbitPositions (int numPoints, Vector3 centerPos, bool doSceneMapping)
 
void ApplyScale (float scale)
 Interface to apply the scale to the distance parameter of an orbit.
 
void ApplyXZChange ()
 

Public Attributes

Vector3 initialPosition
 Velocity of center of mass of the binary pair.
 
Vector3 velocity
 
- Public Attributes inherited from EllipseBase
ParamBy paramBy = ParamBy.AXIS_A
 Define ellipse by semi0major axis (A) or closest approach (P)
 
GameObject centerObject
 object to orbit around (if null, will take parent game object)
 
float ecc
 eccentricity (0..1, 0=circle, 1=linear)
 
float a_scaled = -1f
 
float p_scaled
 
float a = 10f
 (a,p) hold the values for a and p in the unit system specified by the gravity engine. These are scaled and used to set a and p for game simulation based on the unit scaling system provided by gravity engine.
 
float p
 pericenter - based on paramBy user can specify a OR p. a = p/(1-ecc)
 
float omega_uc
 "longitude of ascending node" - angle from x-axis to line from focus to pericenter
 
float omega_lc
 "argument of perienter" - angle from ascending node to pericenter
 
float inclination
 inclination (degrees!)
 
float phase
 initial TRUE anomoly (angle wrt line from focus to closest approach)
 

Additional Inherited Members

- Public Types inherited from EllipseBase
enum  ParamBy { AXIS_A , CLOSEST_P }
 
- Protected Member Functions inherited from EllipseBase
void UpdateOrbitParams ()
 
void CalculateRotation ()
 
- Protected Attributes inherited from EllipseBase
Quaternion ellipse_orientation
 
NBody centerNbody
 
OrbitData initData
 

Detailed Description

Binary Pair.

Configures the initial velocities for two roughly equal masses to establish their elliptical orbits around the center of mass of the pair.

Must have two NBody objects as immediate children.

The BinaryPair object can optionally have a zero-mass NBody and Orbit component attached. This will be used to determine the initial conditions for the binary pair (position and velocity) so the binary pair can be placed in orbit around another body. This "dummy" NBody is only used during the setup. (It will continue to evolve but there is no model attached and nothing in the scene will be affected by its zero mass.

Member Function Documentation

◆ ApplyScale()

void BinaryPair.ApplyScale ( float  scale)

Apply scale to the orbit. This is used by the inspector scripts during scene setup. Do not use at run-time.

Parameters
scaleScale.

Implements IOrbitScalable.

◆ ApplyXZChange()

void BinaryPair.ApplyXZChange ( )

Implements IOrbitScalable.


The documentation for this class was generated from the following file: