T
- the type of the field elementspublic class TimeStampedFieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>> extends FieldAngularCoordinates<T> implements FieldTimeStamped<T>
time-stamped
version of FieldAngularCoordinates
.
Instances of this class are guaranteed to be immutable.
Constructor and Description |
---|
TimeStampedFieldAngularCoordinates(AbsoluteDate date,
FieldPVCoordinates<T> u1,
FieldPVCoordinates<T> u2,
FieldPVCoordinates<T> v1,
FieldPVCoordinates<T> v2,
double tolerance)
Build the rotation that transforms a pair of pv coordinates into another pair.
|
TimeStampedFieldAngularCoordinates(AbsoluteDate date,
org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationAcceleration)
Builds a rotation/rotation rate pair.
|
TimeStampedFieldAngularCoordinates(org.hipparchus.Field<T> field,
TimeStampedAngularCoordinates ac)
Builds an instance for a regular
TimeStampedAngularCoordinates . |
TimeStampedFieldAngularCoordinates(FieldAbsoluteDate<T> date,
FieldPVCoordinates<T> u1,
FieldPVCoordinates<T> u2,
FieldPVCoordinates<T> v1,
FieldPVCoordinates<T> v2,
double tolerance)
Build the rotation that transforms a pair of pv coordinates into another pair.
|
TimeStampedFieldAngularCoordinates(FieldAbsoluteDate<T> date,
org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationAcceleration)
Builds a rotation/rotation rate pair.
|
TimeStampedFieldAngularCoordinates(FieldAbsoluteDate<T> date,
org.hipparchus.geometry.euclidean.threed.FieldRotation<U> r)
Builds a TimeStampedFieldAngularCoordinates from a
FieldRotation <FieldDerivativeStructure >. |
Modifier and Type | Method and Description |
---|---|
TimeStampedFieldAngularCoordinates<T> |
addOffset(FieldAngularCoordinates<T> offset)
Add an offset from the instance.
|
FieldAbsoluteDate<T> |
getDate()
Get the date.
|
TimeStampedFieldAngularCoordinates<T> |
revert()
Revert a rotation/rotation rate pair.
|
TimeStampedFieldAngularCoordinates<T> |
shiftedBy(double dt)
Get a time-shifted state.
|
TimeStampedFieldAngularCoordinates<T> |
shiftedBy(T dt)
Get a time-shifted state.
|
TimeStampedFieldAngularCoordinates<T> |
subtractOffset(FieldAngularCoordinates<T> offset)
Subtract an offset from the instance.
|
applyTo, applyTo, applyTo, applyTo, createFromModifiedRodrigues, estimateRate, estimateRate, getIdentity, getModifiedRodrigues, getRotation, getRotationAcceleration, getRotationRate, rotationShiftedBy, toAngularCoordinates, toDerivativeStructureRotation, toUnivariateDerivative1Rotation, toUnivariateDerivative2Rotation
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
durationFrom
public TimeStampedFieldAngularCoordinates(AbsoluteDate date, FieldPVCoordinates<T> u1, FieldPVCoordinates<T> u2, FieldPVCoordinates<T> v1, FieldPVCoordinates<T> v2, double tolerance)
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²
.
date
- coordinates dateu1
- first vector of the origin pairu2
- second vector of the origin pairv1
- desired image of u1 by the rotationv2
- desired image of u2 by the rotationtolerance
- relative tolerance factor used to check singularitiespublic TimeStampedFieldAngularCoordinates(FieldAbsoluteDate<T> date, FieldPVCoordinates<T> u1, FieldPVCoordinates<T> u2, FieldPVCoordinates<T> v1, FieldPVCoordinates<T> v2, double tolerance)
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²
.
date
- coordinates dateu1
- first vector of the origin pairu2
- second vector of the origin pairv1
- desired image of u1 by the rotationv2
- desired image of u2 by the rotationtolerance
- relative tolerance factor used to check singularitiespublic TimeStampedFieldAngularCoordinates(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationAcceleration)
date
- coordinates daterotation
- rotationrotationRate
- rotation rate Ω (rad/s)rotationAcceleration
- rotation acceleration dΩ/dt (rad²/s²)public TimeStampedFieldAngularCoordinates(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationAcceleration)
date
- coordinates daterotation
- rotationrotationRate
- rotation rate Ω (rad/s)rotationAcceleration
- rotation acceleration dΩ/dt (rad²/s²)public TimeStampedFieldAngularCoordinates(org.hipparchus.Field<T> field, TimeStampedAngularCoordinates ac)
TimeStampedAngularCoordinates
.field
- fields to which the elements belongac
- coordinates to convertpublic TimeStampedFieldAngularCoordinates(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldRotation<U> r)
FieldRotation
<FieldDerivativeStructure
>.
The rotation components must have time as their only derivation parameter and have consistent derivation orders.
U
- type of the derivativedate
- coordinates dater
- rotation with time-derivatives embedded within the coordinatespublic TimeStampedFieldAngularCoordinates<T> revert()
revert
in class FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>
public FieldAbsoluteDate<T> getDate()
getDate
in interface FieldTimeStamped<T extends org.hipparchus.CalculusFieldElement<T>>
public TimeStampedFieldAngularCoordinates<T> shiftedBy(double dt)
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.
shiftedBy
in interface TimeShiftable<FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>>
shiftedBy
in class FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>
dt
- time shift in secondspublic TimeStampedFieldAngularCoordinates<T> shiftedBy(T dt)
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.
shiftedBy
in interface FieldTimeShiftable<FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>,T extends org.hipparchus.CalculusFieldElement<T>>
shiftedBy
in class FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>
dt
- time shift in secondspublic TimeStampedFieldAngularCoordinates<T> addOffset(FieldAngularCoordinates<T> offset)
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.
addOffset
in class FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>
offset
- offset to subtractsubtractOffset(FieldAngularCoordinates)
public TimeStampedFieldAngularCoordinates<T> subtractOffset(FieldAngularCoordinates<T> offset)
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.
subtractOffset
in class FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>
offset
- offset to subtractaddOffset(FieldAngularCoordinates)
Copyright © 2002-2023 CS GROUP. All rights reserved.