Table of Contents

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

double

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

Matrix3

DCM_PN

Rotation matrix from inertial frame N to planet-centered to planet-fixed frame P

protected Matrix3 DCM_PN

Field Value

Matrix3

In_SpicePlanetStateMsg

A reference to the message for the SPICE planet attached to

public SpicePlanetStateMessage In_SpicePlanetStateMsg

Field Value

SpicePlanetStateMessage

Name

[-] The unique name of this ground object

[EditableVariable("-", false, "", "", false)]
public string Name

Field Value

string

R_LP_N

[m] The position between the ground object and planet in inertial frame

protected Vector3 R_LP_N

Field Value

Vector3

R_LP_P_Init

[m] Initial Ground Location to Planet origin vector in planet frame coordinates.

protected Vector3 R_LP_P_Init

Field Value

Vector3

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

double

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

double

Planet

The name of the planet that the ground object is located on.

[EditableVariable("-", false, "", "", false)]
public string Planet { get; protected set; }

Property Value

string

Position

[m] The position of the body

[EditableVariable("m", false, "", "", false)]
public Vector3 Position { get; set; }

Property Value

Vector3

RHat_LP_N

[-] The unit vector from the ground object and planet

protected Vector3 RHat_LP_N { get; }

Property Value

Vector3

Rotation

[deg] The rotation of the body in pitch, roll, yaw

[EditableVariable("deg", true, "", "", false)]
public virtual Vector3 Rotation { get; set; }

Property Value

Vector3

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 Type

a 'Component' type

Returns

bool

OnBegin(double)

Called when the 'Component' is beginning

protected override void OnBegin(double time)

Parameters

time double

current time (seconds)

OnReset(double)

Called when the 'Component' is reset from a simulation

protected override void OnReset(double time)

Parameters

time double

reset time (seconds)

OnUpdate(double, double)

Called when the 'Component' should update

protected override void OnUpdate(double time, double step)

Parameters

time double

current time (seconds)

step double

the time step (seconds)

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()