|
| static std::unique_ptr< Orientation > | Factory (const std::string &aOrientation) |
| static void | CalculateGeneral (double aYawECS, double aPitchECS, double aRollECS, const UtVec3d &aX_AxisOrientationECI, const UtVec3d &aZ_AxisConstraintECI, double &aPsi, double &aTheta, double &aPhi) |
| static void | CalculateX_Aligned (const UtVec3d &aX_AxisOrientationECI, const UtVec3d &aZ_AxisConstraintECI, double &aPsi, double &aTheta, double &aPhi) |
| static void | CalculateZ_Aligned (const UtVec3d &aZ_AxisOrientationECI, const UtVec3d &aX_AxisConstraintECI, double &aPsi, double &aTheta, double &aPhi) |
| static void | CalculatePCS_DirectionCosines (const UtVec3d &aX_AxisOrientationECI, const UtVec3d &aZ_AxisConstraintECI, UtVec3d &aX_DC, UtVec3d &aY_DC, UtVec3d &aZ_DC) |
A class hierarchy encapsulating various options for satellite attitude profiles: The profiles are as follows:
-
ECI velocity with nadir constraint:
The satellite's x-axis is pointing along the satellite's velocity vector, the z axis is constrained perpendicular to x and in the plane of the x-axis and the nadir vector.
-
ECI velocity with solar constraint:
The satellite's x-axis is pointing along the satellite's velocity vector, the z axis is constrained perpendicular to x and in the plane of the x-axis and the sun vector.
-
Nadir pointing with ECI Velocity Constraint:
The satellite's z-axis is pointing to the earth's center, the x axis is constrained perpendicular to z and in the plane of the z-axis and the ECI velocity vector.
-
Nadir pointing with ECEF Velocity Constraint:
The satellite's z-axis is pointing to the earth's center, the x axis is constrained perpendicular to z and in the plane of the z-axis and the ECI velocity vector.
-
Solar pointing with nadir constraint:
The satellite's negative z-axis is pointing to the sun, the x axis is constrained perpendicular to z and in the plane of the z-axis and the nadir.
-
Nadir pointing with solar constraint:
The satellite's negative z-axis is pointing to the nadir, the x axis is constrained perpendicular to z and in the plane of the z-axis and the sun vector.
-
Entity (Resident Space Object) pointing with solar constraint:
The satellite's x-axis points at the Entity, the z axis is constrained perpendicular to x and in the plane of the x-axis and the solar vector.
-
Entity (Resident Space Object) pointing with nadir constraint:
The satellite's x-axis points at the Entity, the z axis is constrained perpendicular to x and in the plane of the x-axis and the nadir vector.
-
Entity (Resident Space Object) pointing with orbit constraint:
The satellite's x-axis points at the Entity, the z axis is constrained perpendicular to x and in the orbital plane.
-
Orientation point pointing with orbit constraint:
The satellite's x-axis points at a geo-point (WsfGeoPoint), the z axis is constrained perpendicular to x and in the orbital plane.
For all orientation types, the y-axis is perpendicular to x and z in a right-handed coordinate system.
| void wsf::space::Orientation::CalculateAligned |
( |
const UtVec3d & | aPointingAxisOrientationECI, |
|
|
const UtVec3d & | aConstraintAxisOrientationECI, |
|
|
double & | aPsi, |
|
|
double & | aTheta, |
|
|
double & | aPhi ) const |
Calculate a spacecraft orientation such that either the ECS X-axis or Z-axis is aligned with the aPointingAxisOrientationECI vector, and the ECS Z-axis constrained by the aConstraintAxisOrientationECI vector.
- Parameters
-
| aPointingAxisOrientationECI | The direction along which the ECS "aligned" axis is to point. |
| aConstraintAxisOrientationECI | The direction that, along with the ECS "aligned" axis, defines the plane within which the ECS z-axis is constrained to point. |
| aPsi | The ECI-referenced yaw of the platform. |
| aTheta | The ECI-referenced pitch of the platform. |
| aPhi | The ECI-referenced roll of the platform. |
References CalculateX_Aligned(), CalculateZ_Aligned(), and mDefaultX_Aligned.
Referenced by Calculate(), wsf::space::OrientationECI_VelocityNadir::Calculate(), wsf::space::OrientationECI_VelocitySolar::Calculate(), wsf::space::OrientationEntityNadir::Calculate(), wsf::space::OrientationEntityOrbitPlane::Calculate(), wsf::space::OrientationEntitySolar::Calculate(), wsf::space::OrientationNadirECEF_Velocity::Calculate(), wsf::space::OrientationNadirECI_Velocity::Calculate(), wsf::space::OrientationNadirSolar::Calculate(), and wsf::space::OrientationSolarNadir::Calculate().
| void wsf::space::Orientation::CalculateGeneral |
( |
double | aYawECS, |
|
|
double | aPitchECS, |
|
|
double | aRollECS, |
|
|
const UtVec3d & | aX_AxisOrientationECI, |
|
|
const UtVec3d & | aZ_AxisConstraintECI, |
|
|
double & | aPsi, |
|
|
double & | aTheta, |
|
|
double & | aPhi ) |
|
static |
Calculate a generalized ECI-referenced orientation. Provided yaw, pitch, and roll correspond with an orientation with respect to the platform's ECS (e.g., of a WsfArticulatedPart, defining a PCS). The provided x-axis orientation corresponds with a vector pointing along the PCS x-axis to a target (e.g., another platform, nadir, the sun, etc.), referenced in ECI coordinates. A second vector provides a PCS z-axis constraint, such that the z-axis will lie in the same plane as the PCS x-axis and the constraint vector.
- Parameters
-
| aYawECS | The yaw angle of the PCS with respect to the ECS. |
| aPitchECS | The pitch angle of the PCS with respect to the ECS. |
| aRollECS | The roll angle of the PCS with respect to the ECS. |
| aX_AxisOrientationECI | The direction along which the PCS x-axis is to point. |
| aZ_AxisConstraintECI | The direction that, along with the PCS x-axis, defines the plane within which the PCS z-axis is constrained to point. |
| aPsi | The ECI-referenced yaw of the platform. |
| aTheta | The ECI-referenced pitch of the platform. |
| aPhi | The ECI-referenced roll of the platform. |
References CalculatePCS_DirectionCosines().
Referenced by Calculate().
| void wsf::space::Orientation::CalculatePCS_DirectionCosines |
( |
const UtVec3d & | aX_AxisOrientationECI, |
|
|
const UtVec3d & | aZ_AxisConstraintECI, |
|
|
UtVec3d & | aX_DC, |
|
|
UtVec3d & | aY_DC, |
|
|
UtVec3d & | aZ_DC ) |
|
static |
Calculate the direction cosines associated with the rotation of a platform part to point to a given orientation. The provided x-axis orientation corresponds with a vector pointing along the PCS x-axis to a target (e.g., another platform, nadir, the sun, etc.), referenced in ECI coordinates. A second vector provides a PCS z-axis constraint, such that the PCS z-axis will lie in the same plane as the PCS x-axis and the constraint vector.
- Parameters
-
| aX_AxisOrientationECI | The direction along which the PCS x-axis is to point. |
| aZ_AxisConstraintECI | The direction that, along with the PCS x-axis, defines the plane within which the PCS z-axis is constrained to point. |
| aX_DC | The x direction cosine vector. |
| aY_DC | The y direction cosine vector. |
| aZ_DC | The z direction cosine vector. |
Referenced by Calculate(), CalculateGeneral(), CalculateX_Aligned(), and CalculateZ_Aligned().
| bool wsf::space::Orientation::ProcessInput |
( |
UtInput & | aInput | ) |
|
|
inlineoverridevirtual |
Process input from a generic source.
Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.
- Parameters
-
| aInput | a reference to a UtInput object. |
- Returns
- 'true' if the command was one recognized by the class or 'false' if not.
- Exceptions
-
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
- Note
- If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.
Reimplemented from WsfObject.
Reimplemented in wsf::space::OrientationEntity, and wsf::space::OrientationGeoPoint.