Class TimeStampedAngularCoordinates

java.lang.Object
org.orekit.utils.AngularCoordinates
org.orekit.utils.TimeStampedAngularCoordinates
All Implemented Interfaces:
TimeShiftable<AngularCoordinates>, TimeStamped

public class TimeStampedAngularCoordinates extends AngularCoordinates implements TimeStamped
time-stamped version of AngularCoordinates.

Instances of this class are guaranteed to be immutable.

Since:
7.0
Author:
Luc Maisonobe
  • Constructor Details

    • TimeStampedAngularCoordinates

      public TimeStampedAngularCoordinates(AbsoluteDate date, AngularCoordinates coordinates)
      Builds a rotation/rotation rate pair.
      Parameters:
      date - coordinates date
      coordinates - coordinates
      Since:
      14.0
    • TimeStampedAngularCoordinates

      public TimeStampedAngularCoordinates(AbsoluteDate date, Rotation rotation, Vector3D rotationRate, Vector3D rotationAcceleration)
      Builds a rotation/rotation rate pair.
      Parameters:
      date - coordinates date
      rotation - rotation
      rotationRate - rotation rate Ω (rad/s)
      rotationAcceleration - rotation acceleration dΩ/dt (rad²/s²)
    • TimeStampedAngularCoordinates

      public TimeStampedAngularCoordinates(AbsoluteDate date, PVCoordinates u1, PVCoordinates u2, PVCoordinates v1, PVCoordinates v2, double tolerance)
      Build the rotation that transforms a pair of pv coordinates into another pair.

      WARNING! This method requires much more stringent assumptions on its parameters than the similar constructor from the Rotation class. As far as the Rotation constructor is concerned, the v₂ vector from the second pair can be slightly misaligned. The Rotation constructor will compensate for this misalignment and create a rotation that ensure v₁ = r(u₁) and v₂ ∈ plane (r(u₁), r(u₂)). THIS IS NOT TRUE ANYMORE IN THIS CLASS! As derivatives are involved and must be preserved, this constructor works only if the two pairs are fully consistent, i.e. if a rotation exists that fulfill all the requirements: v₁ = r(u₁), v₂ = r(u₂), dv₁/dt = dr(u₁)/dt, dv₂/dt = dr(u₂)/dt, d²v₁/dt² = d²r(u₁)/dt², d²v₂/dt² = d²r(u₂)/dt².

      Parameters:
      date - coordinates date
      u1 - first vector of the origin pair
      u2 - second vector of the origin pair
      v1 - desired image of u1 by the rotation
      v2 - desired image of u2 by the rotation
      tolerance - relative tolerance factor used to check singularities
    • TimeStampedAngularCoordinates

      public TimeStampedAngularCoordinates(AbsoluteDate date, PVCoordinates u, PVCoordinates v)
      Build one of the rotations that transform one pv coordinates into another one.

      Except for a possible scale factor, if the instance were applied to the vector u it will produce the vector v. There is an infinite number of such rotations, this constructor choose the one with the smallest associated angle (i.e. the one whose axis is orthogonal to the (u, v) plane). If u and v are collinear, an arbitrary rotation axis is chosen.

      Parameters:
      date - coordinates date
      u - origin vector
      v - desired image of u by the rotation
    • TimeStampedAngularCoordinates

      public TimeStampedAngularCoordinates(AbsoluteDate date, FieldRotation<U> r)
      Builds a TimeStampedAngularCoordinates from a FieldRotation<Derivative>.

      The rotation components must have time as their only derivation parameter and have consistent derivation orders.

      Type Parameters:
      U - type of the derivative
      Parameters:
      date - coordinates date
      r - rotation with time-derivatives embedded within the coordinates
  • Method Details

    • getDate

      public AbsoluteDate getDate()
      Get the date.
      Specified by:
      getDate in interface TimeStamped
      Returns:
      date attached to the object
    • revert

      Revert a rotation/rotation rate pair. Build a pair which reverse the effect of another pair.
      Overrides:
      revert in class AngularCoordinates
      Returns:
      a new pair whose effect is the reverse of the effect of the instance
    • shiftedBy

      public TimeStampedAngularCoordinates shiftedBy(double dt)
      Get a time-shifted state.

      The state can be slightly shifted to close dates. This shift is based on a simple linear model. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.

      Specified by:
      shiftedBy in interface TimeShiftable<AngularCoordinates>
      Overrides:
      shiftedBy in class AngularCoordinates
      Parameters:
      dt - time shift in seconds
      Returns:
      a new state, shifted with respect to the instance (which is immutable)
    • shiftedBy

      Get a time-shifted state.

      The state can be slightly shifted to close dates. This shift is based on a simple linear model. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.

      Specified by:
      shiftedBy in interface TimeShiftable<AngularCoordinates>
      Parameters:
      dt - time shift in seconds
      Returns:
      a new state, shifted with respect to the instance (which is immutable)
      Since:
      13.0
    • addOffset

      Add an offset from the instance.

      We consider here that the offset rotation is applied first and the instance is applied afterward. Note that angular coordinates do not commute under this operation, i.e. a.addOffset(b) and b.addOffset(a) lead to different results in most cases.

      The two methods addOffset and subtractOffset are designed so that round trip applications are possible. This means that both ac1.subtractOffset(ac2).addOffset(ac2) and ac1.addOffset(ac2).subtractOffset(ac2) return angular coordinates equal to ac1.

      Overrides:
      addOffset in class AngularCoordinates
      Parameters:
      offset - offset to subtract
      Returns:
      new instance, with offset subtracted
      See Also:
    • subtractOffset

      public TimeStampedAngularCoordinates subtractOffset(AngularCoordinates offset)
      Subtract an offset from the instance.

      We consider here that the offset rotation is applied first and the instance is applied afterward. Note that angular coordinates do not commute under this operation, i.e. a.subtractOffset(b) and b.subtractOffset(a) lead to different results in most cases.

      The two methods addOffset and subtractOffset are designed so that round trip applications are possible. This means that both ac1.subtractOffset(ac2).addOffset(ac2) and ac1.addOffset(ac2).subtractOffset(ac2) return angular coordinates equal to ac1.

      Overrides:
      subtractOffset in class AngularCoordinates
      Parameters:
      offset - offset to subtract
      Returns:
      new instance, with offset subtracted
      See Also: