Click or drag to resize

AGI.Foundation.Coordinates Namespace

Contains types for quantifying and converting between various coordinate representations.
Classes
  ClassDescription
Public classAlignedConstrained
Given alignment vector a1 and vector a2 and alignment vector b1 and vector b3, a rotation is constructed that aligns a1 with b1 and also minimizes the angular separation between a2 and b3. The angular velocity and angular acceleration associated with the total rotation is also computed given the velocity and acceleration of 1A and 2A.
Public classAxesAdapter
The StateElementAdapterDefinition for the simple case when the element's definitional object and its defined-in object are just a Axes. Generally this will be used for various Vector types.
Public classBasicState
An IAdjustableState that can hold any data type or motions. This type will directly cast the stored items to the type requested, which can cause exceptions to be thrown. Creating your own specialized ITimeBasedState for your needs will avoid that, as well as may result in better performance and flexibility.
Public classCartographicExtent
A two dimensional region specified by longitude and latitude coordinate bounds.
Public classComplexMatrix
A two-dimensional matrix of Complex values.
Public classCovariance3By3Derivative
Holds the derivatives of the positional variance and covariance information for an object.
Public classCovariance3By3SizeAndOrientation
Holds the positional variance and covariance information for an object.
Public classDelaunayElements

A set of Delaunay elements. This is a set of canonical angle-action variables that are commonly used in analytic orbit theory.

All units are SI unless indicated otherwise. For more information see the Units topic.

Public classDenseMatrix
A general implementation of Matrix with no restrictions on element values.
Public classDiagonalMatrix
An implementation of a square Matrix whose diagonal elements are the only ones with a non-zero value.
Public classDoNothingStateElementAdapter
A StateElementAdapter that will not do anything to the state. Note that this will not even try to add the value or MotionT from the old state to the new one.
Public classDynamicStateT
Defines an ITimeBasedState that can change over time.
Public classEigenDecomposition
Holds results of the Eigen decomposition of a 3-by-3 matrix.
Public classEquinoctialElements

A set of equinoctial orbital elements. This is a nonsingular orbital element set that is often used in operational systems since it is well behaved for small eccentricities and inclinations. The Direction element of the structure indicates whether the orbit is posigrade or retrograde.

All units are SI unless indicated otherwise. For more information see the Units topic.

Public classKeplerianElements

A set of classical Keplerian elements representing an elliptical orbit.

All units are SI unless indicated otherwise. For more information see the Units topic.

Public classKozaiIzsakMeanElements

A set of Kozai-Izsak mean elements representing an elliptical orbit.

For more information see the paper, "The Motion of a Close Earth Satellite", Y.Kozai, 1959.

Public classLifetimeElements
A set of elements produced by the LifetimeOrbitPropagator to represent the approximate mean classical elements associated with the periapsis of each successive orbit over the course of a satellite's lifetime.
Public classMatrix
A two-dimensional tensor of doubles.
Public classMatrix6By6
A 6-by-6 matrix.
Public classMatrix6By6Symmetric
A 6-by-6 symmetric matrix. This type is often used to represent position and velocity covariance.
Public classModifiedKeplerianElements

Modified Keplerian orbital elements. These are the same as the Classical/Keplerian orbital elements except that Radius of Periapsis and the inverse of Semimajor Axis are used instead of Semimajor Axis and Eccentricity. This is useful because the Radius of Periapsis is well defined for all but rectilinear orbits. For Eccentricity, use ComputeEccentricity.

All units are SI unless indicated otherwise. For more information see the Units topic.

Public classNumericalPropagatorAdapterHelper
Contains various helper methods and properties will make using NumericalPropagatorDefinition and StateElementAdapters easier. When constructing adapters that involve a NumericalPropagator, initialize a new instance of this in every constructor (or update the reference of the existing one in the copy constructor).
Public classOrbitalElements
Provides functions which can be used to perform calculations and conversions relating orbital elements.
Public classOrthonormalBasis
Represents an orthonormal basis spanning Cartesian space.
Public classReferenceFrameAdapter
The StateElementAdapter definition for the simple case when the element's definitional object and its defined in object are just a ReferenceFrame. Generally this will be used for various Point types.
Public classRotationalTransformation
Public classSimpleAdapterT
A StateElementAdapter that has no defined-in object (such as a ReferenceFrame or Axes). This adapter will extract the T of a specified element from a ITimeBasedState and modify the second ITimeBasedState with the extracted value.
Public classSimpleMotionAdapterT
The factory for a StateElementAdapter that has no defined in, nor an element definition object. All this will do is extract the MotionT of a specified element from one ITimeBasedState, and modify the second ITimeBasedState with it.
Public classStateElementAdapter
The base class for all StateElementAdapters. StateElementAdapters extract one element from a state's data elements, optionally perform some operation on that element (like a reference frame transformation), and store that modified element into another ITimeBasedState.
Public classStateElementAdapterDefinition
Adapters are the objects that link up an element from one form of propagation to another. For example, when the ReferenceFrame changes for a PropagationPointElement from one SegmentPropagator to the next, an adapter can be made that can retrieve the needed information from the two segments.
Public classStateEvaluatorT
Computes states at points in time.
Public classTransformationalStateElementAdapterDefinition
The base type for adapters that do some kind of geometric transformation to an element in the state. For example, when the ReferenceFrame changes.
Structures
  StructureDescription
Public structureAngleAxisRotation
Represents a rotation as a unit vector indicating the axis of rotation and an angle indicating the amount of rotation about the axis.
Public structureAzimuthElevationRange
A set of curvilinear 3-dimensional coordinates.
Public structureAzimuthHorizontalVertical
A set of curvilinear 3-dimensional coordinates.
Public structureBoundingRectangle
A bounding rectangle in a two-dimensional plane given by two corner points.
Public structureCartesian
A set of rectilinear 3-dimensional coordinates.
Public structureCartesianBounds
Holds two Cartesian values which form the bounds of a range of cartesian coordinates.
Public structureCartographic
A set of curvilinear 3-dimensional coordinates.
Public structureComplex
Structure which represents a complex value.
Public structureCylindrical
A set of curvilinear 3-dimensional coordinates.
Public structureCylindricalBounds
Holds two Cylindrical values which form the bounds of a range of cylindrical coordinates.
Public structureElementaryRotation
Represents a rotation about a principal axis. This represents an 'alias' rotation which transforms coordinates by modifying the underlying coordinate basis, rather than modifying the coordinates themselves. To transform a Cartesian with this rotation, see Rotate(UnitQuaternion).
Public structureEulerSequence

Represents a rotation as a sequence of three ElementaryRotations about consecutive axes. The first elementary rotation results in an intermediate orientation and associated set of axes from which the second elementary rotation is performed. Likewise, the third elementary rotation is performed from the intermediate orientation and set of axes which result from the second rotation.

A 321 Euler sequence is commonly used to represent yaw about the z-axis, followed by pitch about the resulting y-axis, and then roll about the resulting x-axis when expressing the attitude of a vehicle relative to some reference orientation.

Public structureHelmertTransformation
A Helmert transformation describing how to transform from one international terrestrial reference frame (ITRF) to another.
Public structureKinematicTransformation
A kinematic transformation describing how to transform from one reference frame to another.
Public structureLongitudeLatitudeRadius
A set of curvilinear 3-dimensional coordinates typically used to describe geocentric (or planetocentric on non-Earth central bodies) positions. Longitude is an angle lying in the xy-plane measured from the positive x-axis and toward the positive y-axis. Latitude is an angle measured from the xy-plane and toward the positive z-axis. Radius is a linear coordinate measured from the origin.
Public structureMatrix3By3
A 3-by-3 matrix. This type is often used to represent a rotation. This represents an 'alias' rotation which transforms coordinates by modifying the underlying coordinate basis rather than modifying the coordinates themselves.
Public structureMatrix3By3Symmetric
A 3-by-3 symmetric matrix. This type is often used to represent position covariance.
Public structureMilitaryGridReferenceSystem
A set of coordinates for specifying locations on the Earth based on a grid of longitude and latitude zones as outlined in Defense Mapping Agency Technical Manual (DMA TM) 8358.1, "Datums, Ellipsoids, Grids, and Grid Reference Systems", Edition 1, 20 September 1990.
Public structurePolar
A set of curvilinear 2-dimensional coordinates.
Public structurePyramidal
A set of curvilinear 3-dimensional coordinates.
Public structurePyramidalBounds
Holds two Pyramidal values which form the bounds of a range of pyramidal coordinates.
Public structureQuaternion
A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space. In general, UnitQuaternion is used to represent rotations. This type is available for completeness, providing quaternion operations on non-normalized quaternions.
Public structureRectangular
A set of rectilinear 2-dimensional coordinates.
Public structureRotationVectorAngularVelocity
A set of Cartesian rotation vectors combined with Cartesian body-fixed angular velocity vectors.
Public structureSpherical
A set of curvilinear 3-dimensional coordinates.
Public structureSphericalBounds
Holds two Spherical values which form the bounds of a range of spherical coordinates.
Public structureTextureCoordinate4DF
A Texture Coordinate with four parameters of type float.
Public structureUnitCartesian
A set of rectilinear 3-dimensional coordinates with unit magnitude.
Public structureUnitQuaternion
A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space. This represents an 'alias' rotation which transforms coordinates by modifying the underlying coordinate basis rather than modifying the coordinates themselves. To transform a Cartesian with this rotation, see Rotate(UnitQuaternion).
Public structureUnitRectangular
A set of rectilinear 2-dimensional coordinates with unit magnitude.
Public structureUnitSpherical
A set of curvilinear 3-dimensional coordinates with unit magnitude.
Public structureUniversalPolarStereographic
A set of coordinates for specifying locations near the poles of the Earth based on a grid as outlined in Defense Mapping Agency Technical Manual (DMA TM) 8358.2, "The Universal Grids: Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS)", Edition 1, 18 September 1989.
Public structureUniversalTransverseMercator
A set of coordinates for specifying locations on the Earth based on a grid of longitude zones as outlined in Defense Mapping Agency Technical Manual (DMA TM) 8358.2, "The Universal Grids: Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS)", Edition 1, 18 September 1989.
Public structureYawPitchRoll
Represents a rotation as a sequence of three ElementaryRotations about a reference set of axes. The orientation and associated set of axes which result from the first elementary rotation are modified by a second elementary rotation, again performed about the original reference set of axes. Likewise, the third elementary rotation is performed about the original reference set of axes to further modify the orientation. This differs from an EulerSequence where the sequence of rotations are performed about the consecutive set of axes which result from the successive elementary rotations.
Interfaces
  InterfaceDescription
Public interfaceIAdjustableState
A state that can have elements added and removed.
Public interfaceITimeBasedState
A general state that stores raw values. The state can represent anything you would like it to be, however every element must have a name that is used to retrieve and modify its values. This state has a time and motions.
Delegates
  DelegateDescription
Public delegateCreateAdapterCallback
Defines how to create a StateElementAdapterDefinition.
Enumerations
  EnumerationDescription
Public enumerationAxisIndicator
Specifies one of the three Cartesian axes.
Public enumerationCartesianElement
An enumeration indicating a part of a Cartesian.
Public enumerationCartographicElement
The elements in a Cartographic type.
Public enumerationDelaunayElement
An enumeration indicating a specific element in Delaunay elements. This enumeration can be used to identify specific elements in a DelaunayElements.
Public enumerationEquinoctialElement
An enumeration indicating a specific element in equinoctial elements. This enumeration can be used to identify specific elements in a EquinoctialElements.
Public enumerationEulerSequenceIndicator
Indicates the order of the axes rotations in an Euler sequence.
Public enumerationKeplerianElement
An enumeration indicating a specific element in Keplerian elements. This enumeration can be used to identify specific elements in a ModifiedKeplerianElements, a KeplerianElements, or any of the other classical element types.
Public enumerationKozaiIzsakMeanElement
An enumeration indicating a specific element in Kozai-Izsak mean elements. This enumeration can be used to identify specific elements in a KozaiIzsakMeanElements.
Public enumerationOrbitDirectionType
Defines the direction of orbital motion of an object with respect to the rotation of its primary body.
Public enumerationOrbitType
An enumeration of the possible types and special cases of orbits.
Public enumerationPoleIndicator
Specifies one of the two geographical poles, or neither.
Public enumerationSphericalElement
The elements in a Spherical coordinates.
Public enumerationYawPitchRollIndicator
Indicates the order of the axes rotations in a yaw-pitch-roll sequence.