Gravity Engine 12.0
Unity Asset for Gravity
|
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...
Public Member Functions | |
void | InitNewParticles (int numLastActive, int numActive, ref double[,] r, ref double[,] v) |
Provide the initial positions and velocity for a range of particles. This method will be called as particles are created by the particle system. The implementing class must fill in the r[,] and v[,] arrays for the range specified. These arrays are indexed by [particle_num, dimension] where dimension 0,1,2 correspond to x,y,z. | |
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. | |
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 | InitNewParticles (int fromParticle, int toParticle, ref double[,] r, ref double[,] v) |
Provide the initial positions and velocity for a range of particles. This method will be called as particles are created by the particle system. The implementing class must fill in the r[,] and v[,] arrays for the range specified. These arrays are indexed by [particle_num, dimension] where dimension 0,1,2 correspond to x,y,z. | |
Public Attributes | |
float | ringWidthPercent |
Width of particle ring as a percent of ring radius. | |
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 |
Dust ring. Create a ring of particles in orbit around an NBody mass. Allows full control over the orbital attributes of the ring particles.
Must be attached to a particle system with a GravityParticles component.
void DustRing.ApplyScale | ( | float | scale | ) |
Apply scale to the orbit. This is used by the inspector scripts during scene setup. Do not use at run-time.
scale | Scale. |
void DustRing.InitNewParticles | ( | int | fromParticle, |
int | toParticle, | ||
ref double | r[,], | ||
ref double | v[,] | ||
) |
Provide the initial positions and velocity for a range of particles. This method will be called as particles are created by the particle system. The implementing class must fill in the r[,] and v[,] arrays for the range specified. These arrays are indexed by [particle_num, dimension] where dimension 0,1,2 correspond to x,y,z.
See the DustBox script for a sample usage of this interface.
fromParticle | From particle number. |
toParticle | To particle number. |
r | (out) 2D array [numParticles, 3] to hold physics position (x,y,z) per particle |
v | (out) 2D array [numParticles, 3] to hold velocity (x,y,z) per particle |
Implements IGravityParticlesInit.