Class GroundObject
- Namespace
- NominalSystems.Universe
- Assembly
- NominalSystems.Universe.dll
Ground objects are located on the surface of gravity bodies. They are also an entity and can have components attached to them.
public class GroundObject : PhysicalObject
- Inheritance
-
GroundObject
- Derived
- Inherited Members
Constructors
GroundObject()
protected GroundObject()
Fields
Altitude
[m] The altitude that the object is located above the surface of the planet
[EditableVariable("m", 0, false, "", "", false)]
public double Altitude
Field Value
DCM_LP
Rotation matrix from planet-centered, planet-fixed frame P to site-local topographic (SEZ) frame L coordinates
protected Matrix3 DCM_LP
Field Value
DCM_PN
Rotation matrix from inertial frame N to planet-centered to planet-fixed frame P
protected Matrix3 DCM_PN
Field Value
In_SpicePlanetStateMsg
A reference to the message for the SPICE planet attached to
public SpicePlanetStateMessage In_SpicePlanetStateMsg
Field Value
Name
[-] The unique name of this ground object
[EditableVariable("-", false, "", "", false)]
public string Name
Field Value
R_LP_N
[m] The position between the ground object and planet in inertial frame
protected Vector3 R_LP_N
Field Value
R_LP_P_Init
[m] Initial Ground Location to Planet origin vector in planet frame coordinates.
protected Vector3 R_LP_P_Init
Field Value
Properties
Latitude
[deg] The latitude that this object is located at on the surface of the planet
[EditableVariable("deg", -90, 90, false, "", "", false)]
public virtual double Latitude { get; set; }
Property Value
Longitude
[deg] The longitude that this object is located at on the surface of the planet
[EditableVariable("deg", -180, 180, false, "", "", false)]
public virtual double Longitude { get; set; }
Property Value
Planet
The name of the planet that the ground object is located on.
[EditableVariable("-", false, "", "", false)]
public string Planet { get; protected set; }
Property Value
Position
[m] The position of the body
[EditableVariable("m", false, "", "", false)]
public Vector3 Position { get; set; }
Property Value
RHat_LP_N
[-] The unit vector from the ground object and planet
protected Vector3 RHat_LP_N { get; }
Property Value
Rotation
[deg] The rotation of the body in pitch, roll, yaw
[EditableVariable("deg", true, "", "", false)]
public virtual Vector3 Rotation { get; set; }
Property Value
Methods
CalculatePCPF(GeodeticElements)
[m] Calculates the PCPF coordinates from a particular LLA set of coordinates. This can be overriden for some more advanced calculations, such as a WGS one.
protected virtual Vector3 CalculatePCPF(GeodeticElements lla)
Parameters
lla
GeodeticElements[deg] The LLA value
Returns
- Vector3
[m] The PCPF position
IsChildTypeSupported(Type)
Returns true if 'Component' type is a supported child
protected override bool IsChildTypeSupported(Type type)
Parameters
type
Typea 'Component' type
Returns
OnBegin(double)
Called when the 'Component' is beginning
protected override void OnBegin(double time)
Parameters
time
doublecurrent time (seconds)
OnReset(double)
Called when the 'Component' is reset from a simulation
protected override void OnReset(double time)
Parameters
time
doublereset time (seconds)
OnUpdate(double, double)
Called when the 'Component' should update
protected override void OnUpdate(double time, double step)
Parameters
SetLocation(double, double, double, string)
Updates the location of the ground body relative to the planet. If the location needs to be changed during the runtime, this function should be called and not the updating of the fields.
public virtual void SetLocation(double latitude, double longitude, double altitude, string planet = "earth")
Parameters
latitude
double[deg] Latitude of the body
longitude
double[deg] Longitude of the body
altitude
double[m] Altitude of the body
planet
string[-] The name of the stationed body
UpdateInertialCoordinates()
Updates the inertial coordinates of the ground body in relation to the planet.
protected virtual void UpdateInertialCoordinates()