public abstract class CartesianOnePointPropagator extends DefinitionalObject
Motion1
.Modifier | Constructor and Description |
---|---|
protected |
CartesianOnePointPropagator()
Initializes a new instance.
|
protected |
CartesianOnePointPropagator(CartesianOnePointPropagator existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
Modifier and Type | Method and Description |
---|---|
protected abstract boolean |
checkForSameDefinition(CartesianOnePointPropagator other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected boolean |
checkForSameDefinition(DefinitionalObject other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected int |
computeCurrentDefinitionHashCode()
Computes a hash code based on the current properties of this object.
|
PropagatorPoint |
createPoint()
Creates a
Point that represents the motion produced by this propagator. |
MotionEvaluator1<Cartesian> |
getEvaluator()
Gets an evaluator that can propagate at individual dates.
|
abstract MotionEvaluator1<Cartesian> |
getEvaluator(EvaluatorGroup group)
Gets an evaluator that can propagate at individual dates.
|
protected abstract ReferenceFrame |
getMotionReferenceFrame()
Gets the reference frame in which the motion is defined.
|
DateMotionCollection1<Cartesian> |
propagate(JulianDate startDate,
JulianDate stopDate,
Duration timeStep,
int order,
ReferenceFrame outputReferenceFrame)
Calculates position (and zero or more derivatives) for regular time steps over an interval.
|
DateMotionCollection1<Cartesian> |
propagate(JulianDate startDate,
JulianDate stopDate,
Duration timeStep,
int order,
ReferenceFrame outputReferenceFrame,
ITrackCalculationProgress tracker)
Calculates position (and zero or more derivatives) for regular time steps over an interval.
|
areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, clone, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, dictionaryItemsAreSameDefinition, enumerateDependencies, freeze, freezeAggregatedObjects, getCollectionHashCode, getCollectionHashCode, getCollectionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDictionaryHashCode, getIsFrozen, isSameDefinition, throwIfFrozen
protected CartesianOnePointPropagator()
protected CartesianOnePointPropagator(@Nonnull CartesianOnePointPropagator existingInstance, @Nonnull CopyContext context)
See ICloneWithContext.clone(CopyContext)
for more information about how to implement this constructor
in a derived class.
existingInstance
- The existing instance to copy.context
- A CopyContext
that controls the depth of the copy.ArgumentNullException
- Thrown when existingInstance
or context
is null
.protected final boolean checkForSameDefinition(DefinitionalObject other)
true
if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return false
for all derived-class instances.
Derived classes should check the type of other
to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object)
.checkForSameDefinition
in class DefinitionalObject
other
- The other instance to compare to this one.true
if the two objects are defined equivalently; otherwise false
.protected abstract boolean checkForSameDefinition(CartesianOnePointPropagator other)
true
if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return false
for all derived-class instances.
Derived classes should check the type of other
to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object)
.other
- The other instance to compare to this one.true
if the two objects are defined equivalently; otherwise false
.protected int computeCurrentDefinitionHashCode()
CartesianOnePointPropagator.checkForSameDefinition(agi.foundation.infrastructure.DefinitionalObject)
method.computeCurrentDefinitionHashCode
in class DefinitionalObject
@Nonnull public PropagatorPoint createPoint()
Point
that represents the motion produced by this propagator.@Nonnull public final MotionEvaluator1<Cartesian> getEvaluator()
Gets an evaluator that can propagate at individual dates.
This evaluator propagates the orbit state.
The result of evaluating will be a
Motion1
corresponding to the orbital
state at the given JulianDate
expressed in the propagator's
ReferenceFrame
.
Note: when evaluating with this evaluator, it may be more efficient to specify times using
an ArithmeticSafeStandard
(get
) to avoid the need
to convert in order to perform the propagation. The length of a time step may be different in
different TimeStandards
. So be careful when specifying times.
@Nonnull public abstract MotionEvaluator1<Cartesian> getEvaluator(@Nonnull EvaluatorGroup group)
This evaluator propagates the orbit state.
The result of evaluating will be a
Motion1
corresponding to the orbital
state at the given JulianDate
expressed in the propagator's
ReferenceFrame
.
Note: when evaluating with this evaluator, it may be more efficient to specify times using
an ArithmeticSafeStandard
(get
) to avoid the need
to convert in order to perform the propagation. The length of a time step may be different in
different TimeStandards
. So be careful when specifying times.
group
- The group with which to associate the new evaluator. By grouping evaluators
that are often evaluated at the same Julian dates, common computations can be performed only once
for the entire group instead of multiple times for each evaluator.@Nonnull public final DateMotionCollection1<Cartesian> propagate(@Nonnull JulianDate startDate, @Nonnull JulianDate stopDate, @Nonnull Duration timeStep, int order, @Nonnull ReferenceFrame outputReferenceFrame)
Calculates position (and zero or more derivatives) for regular time steps over an interval.
Note: when propagating, it may be more efficient to specify times using
an ArithmeticSafeStandard
(get
) to avoid the need
to convert in order to perform the propagation. The length of a time step may be different in
different TimeStandards
. So be careful when specifying times.
This method takes advantage of the ThreadingPolicy
to improve performance.
startDate
- The first date for which to calculate position and velocity.stopDate
- The last date for which to calculate position and velocity.timeStep
- The Duration between each ephemeris point.order
- The order of the highest derivative to compute. To compute just position, pass 0. To compute position and velocity (if available), pass 1. And so on.outputReferenceFrame
- The reference frame in which the generated ephemeris data is to be expressed.stopDate
is always
the last point in the list even when this makes the step between the second-to-last and last points less than the specified step.public final DateMotionCollection1<Cartesian> propagate(@Nonnull JulianDate startDate, @Nonnull JulianDate stopDate, @Nonnull Duration timeStep, int order, @Nonnull ReferenceFrame outputReferenceFrame, ITrackCalculationProgress tracker)
Calculates position (and zero or more derivatives) for regular time steps over an interval.
Note: when evaluating with this evaluator, it may be more efficient to specify times using
an ArithmeticSafeStandard
(get
) to avoid the need
to convert in order to perform the propagation. The length of a time step may be different in
different TimeStandards
. So be careful when specifying times.
This method takes advantage of the ThreadingPolicy
to improve performance.
startDate
- The first date for which to calculate position and velocity.stopDate
- The last date for which to calculate position and velocity.timeStep
- The Duration between each ephemeris point.order
- The order of the highest derivative to compute. To compute just position, pass 0. To compute position and velocity (if available), pass 1. And so on.outputReferenceFrame
- The reference frame in which the generated ephemeris data is to be expressed.tracker
- The object to which progress is reported and that is able to cancel this operation before it is complete.stopDate
is always
the last point in the list even when this makes the step between the second-to-last and last points less than the specified step.@Nonnull protected abstract ReferenceFrame getMotionReferenceFrame()