public class Sgp4Elements extends Object implements ICloneWithContext
Constructor and Description |
---|
Sgp4Elements()
Initializes a new instance.
|
Sgp4Elements(Sgp4Elements existingInstance)
Initializes a new instance as a copy of an existing instance.
|
Modifier and Type | Method and Description |
---|---|
Object |
clone(CopyContext context)
Clones this object using the specified context.
|
double |
getArgumentOfPerigee()
Gets the argument of perigee, in degrees.
|
double |
getBStar()
Gets the BSTAR drag term, in units of 1 / EarthRadii.
|
double |
getEccentricity()
Gets the eccentricity
|
JulianDate |
getEpoch()
Gets the epoch at which these initial conditions are defined.
|
double |
getInclination()
Gets the inclination, in degrees
|
double |
getMeanAnomaly()
Gets the mean anomaly, in degrees.
|
double |
getMeanMotion()
Gets the mean motion, in revolutions per day.
|
double |
getRawEpoch()
Gets the epoch at which these initial conditions are defined,
represented in the standard form: YYDDD.DDDD.
|
double |
getRightAscensionOfAscendingNode()
Gets the right ascension of the ascending node, in degrees
|
Sgp4ElementsSwitching |
getSwitchingMethod()
Gets the method to use when switching between this element set and the following element set.
|
void |
setArgumentOfPerigee(double value)
Sets the argument of perigee, in degrees.
|
void |
setBStar(double value)
Sets the BSTAR drag term, in units of 1 / EarthRadii.
|
void |
setEccentricity(double value)
Sets the eccentricity
|
void |
setEpoch(JulianDate value)
Sets the epoch at which these initial conditions are defined.
|
void |
setInclination(double value)
Sets the inclination, in degrees
|
void |
setMeanAnomaly(double value)
Sets the mean anomaly, in degrees.
|
void |
setMeanMotion(double value)
Sets the mean motion, in revolutions per day.
|
void |
setRawEpoch(double value)
Sets the epoch at which these initial conditions are defined,
represented in the standard form: YYDDD.DDDD.
|
void |
setRightAscensionOfAscendingNode(double value)
Sets the right ascension of the ascending node, in degrees
|
void |
setSwitchingMethod(Sgp4ElementsSwitching value)
Sets the method to use when switching between this element set and the following element set.
|
public Sgp4Elements()
public Sgp4Elements(@Nonnull Sgp4Elements existingInstance)
existingInstance
- The existing instance to copy.ArgumentNullException
- Thrown when existingInstance
is null
.public Object clone(CopyContext context)
This method should be implemented to call a copy constructor on the class of the
object being cloned. The copy constructor should take the CopyContext
as a parameter
in addition to the existing instance to copy. The copy constructor should first call
CopyContext.addObjectMapping(T, T)
to identify the newly constructed instance
as a copy of the existing instance. It should then copy all fields, using
CopyContext.updateReference(T)
to copy any reference fields.
A typical implementation of ICloneWithContext
:
public static class MyClass implements ICloneWithContext {
public MyClass(MyClass existingInstance, CopyContext context) {
context.addObjectMapping(existingInstance, this);
someReference = context.updateReference(existingInstance.someReference);
}
@Override
public final Object clone(CopyContext context) {
return new MyClass(this, context);
}
private Object someReference;
}
In general, all fields that are reference types should be copied with a call to
CopyContext.updateReference(T)
. There are a couple of exceptions:
If one of these exceptions applies, the CopyContext
should be given an opportunity
to update the reference before the reference is copied explicitly. Use
CopyContext.updateReference(T)
to update the reference. If CopyContext.updateReference(T)
returns
the original object, indicating that the context does not have a replacement registered,
then copy the object manually by invoking a Clone method, a copy constructor, or by manually
constructing a new instance and copying the values.
alwaysCopy = context.updateReference(existingInstance.alwaysCopy);
if (existingInstance.alwaysCopy != null && alwaysCopy == existingInstance.alwaysCopy) {
alwaysCopy = (AlwaysCopy) existingInstance.alwaysCopy.clone(context);
}
If you are implementing an evaluator (a class that implements IEvaluator
), the
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
method shares some responsibilities with the
copy context constructor. Code duplication can be avoided by doing the following:
CopyContext.updateReference(T)
. You should still call CopyContext.updateReference(T)
on any references to
non-evaluators.
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
as the last line in the constructor and pass it the
same CopyContext
passed to the constructor.
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
as normal. See the reference documentation for
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
for more information on implementing that method.
public MyClass(MyClass existingInstance, CopyContext context) {
super(existingInstance, context);
someReference = context.updateReference(existingInstance.someReference);
evaluatorReference = existingInstance.evaluatorReference;
updateEvaluatorReferences(context);
}
@Override
public void updateEvaluatorReferences(CopyContext context) {
evaluatorReference = context.updateReference(evaluatorReference);
}
@Override
public Object clone(CopyContext context) {
return new MyClass(this, context);
}
private Object someReference;
private IEvaluator evaluatorReference;
clone
in interface ICloneWithContext
context
- The context to use to perform the copy.@Nonnull public JulianDate getEpoch()
public void setEpoch(@Nonnull JulianDate value)
public double getRawEpoch()
RawEpoch
(get
/ set
) taken from a
TwoLineElementSet
format. To represent the correct
precision for a TLE, use the TwoLineElementSet
type instead.public void setRawEpoch(double value)
RawEpoch
(get
/ set
) taken from a
TwoLineElementSet
format. To represent the correct
precision for a TLE, use the TwoLineElementSet
type instead.public final double getBStar()
Warning: This is equal to the ballistic coefficient (Coefficient of drag times area over mass)
if the EphemerisType
(get
/ set
) is equal to 4.
public final void setBStar(double value)
Warning: This is equal to the ballistic coefficient (Coefficient of drag times area over mass)
if the EphemerisType
(get
/ set
) is equal to 4.
public final double getInclination()
public final void setInclination(double value)
public final double getRightAscensionOfAscendingNode()
public final void setRightAscensionOfAscendingNode(double value)
public final double getEccentricity()
public final void setEccentricity(double value)
public final double getArgumentOfPerigee()
public final void setArgumentOfPerigee(double value)
public final double getMeanAnomaly()
public final void setMeanAnomaly(double value)
public final double getMeanMotion()
public final void setMeanMotion(double value)
public final Sgp4ElementsSwitching getSwitchingMethod()
Sgp4ElementsSwitchByEpoch
.public final void setSwitchingMethod(Sgp4ElementsSwitching value)
Sgp4ElementsSwitchByEpoch
.