T
- the type of the field elementspublic class FieldEclipseDetector<T extends org.hipparchus.CalculusFieldElement<T>> extends FieldAbstractDetector<FieldEclipseDetector<T>,T>
This class finds eclipse events, i.e. satellite within umbra (total eclipse) or penumbra (partial eclipse).
The default implementation behavior is to continue
propagation when entering the eclipse and to stop
propagation
when exiting the eclipse. This can be changed by calling FieldAbstractDetector.withHandler(FieldEventHandler)
after construction.
FieldPropagator.addEventDetector(FieldEventDetector)
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Modifier | Constructor and Description |
---|---|
|
FieldEclipseDetector(org.hipparchus.Field<T> field,
ExtendedPVCoordinatesProvider occulted,
double occultedRadius,
OneAxisEllipsoid occulting)
Build a new eclipse detector.
|
|
FieldEclipseDetector(org.hipparchus.Field<T> field,
OccultationEngine occultationEngine)
Build a new eclipse detector.
|
protected |
FieldEclipseDetector(FieldAdaptableInterval<T> maxCheck,
T threshold,
int maxIter,
FieldEventHandler<T> handler,
OccultationEngine occultationEngine,
T margin,
boolean totalEclipse)
Protected constructor with full parameters.
|
Modifier and Type | Method and Description |
---|---|
protected FieldEclipseDetector<T> |
create(FieldAdaptableInterval<T> newMaxCheck,
T newThreshold,
int nawMaxIter,
FieldEventHandler<T> newHandler)
Build a new instance.
|
T |
g(FieldSpacecraftState<T> s)
Compute the value of the switching function.
|
T |
getMargin()
Get the angular margin used for eclipse detection.
|
OccultationEngine |
getOccultationEngine()
Get the occultation engine.
|
boolean |
getTotalEclipse()
Get the total eclipse detection flag.
|
FieldEclipseDetector<T> |
withMargin(T newMargin)
Setup a margin to angle detection.
|
FieldEclipseDetector<T> |
withPenumbra()
Setup the detector to penumbra detection.
|
FieldEclipseDetector<T> |
withUmbra()
Setup the detector to full umbra detection.
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
public FieldEclipseDetector(org.hipparchus.Field<T> field, ExtendedPVCoordinatesProvider occulted, double occultedRadius, OneAxisEllipsoid occulting)
The new instance is a total eclipse (umbra) detector with default
values for maximal checking interval (FieldAbstractDetector.DEFAULT_MAXCHECK
)
and convergence threshold (FieldAbstractDetector.DEFAULT_THRESHOLD
).
field
- field used by defaultocculted
- the body to be occultedoccultedRadius
- the radius of the body to be occulted (m)occulting
- the occulting bodypublic FieldEclipseDetector(org.hipparchus.Field<T> field, OccultationEngine occultationEngine)
The new instance is a total eclipse (umbra) detector with default
values for maximal checking interval (FieldAbstractDetector.DEFAULT_MAXCHECK
)
and convergence threshold (FieldAbstractDetector.DEFAULT_THRESHOLD
).
field
- field used by defaultoccultationEngine
- occultation engineprotected FieldEclipseDetector(FieldAdaptableInterval<T> maxCheck, T threshold, int maxIter, FieldEventHandler<T> handler, OccultationEngine occultationEngine, T margin, boolean totalEclipse)
This constructor is not public as users are expected to use the builder
API with the various withXxx()
methods to set up the instance
in a readable manner without using a huge amount of parameters.
maxCheck
- maximum checking intervalthreshold
- convergence threshold (s)maxIter
- maximum number of iterations in the event time searchhandler
- event handler to call at event occurrencesoccultationEngine
- occultation enginemargin
- to apply to eclipse angle (rad)totalEclipse
- umbra (true) or penumbra (false) detection flagprotected FieldEclipseDetector<T> create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int nawMaxIter, FieldEventHandler<T> newHandler)
create
in class FieldAbstractDetector<FieldEclipseDetector<T extends org.hipparchus.CalculusFieldElement<T>>,T extends org.hipparchus.CalculusFieldElement<T>>
newMaxCheck
- maximum checking intervalnewThreshold
- convergence threshold (s)nawMaxIter
- maximum number of iterations in the event time searchnewHandler
- event handler to call at event occurrencespublic FieldEclipseDetector<T> withUmbra()
This will override a penumbra/umbra flag if it has been configured previously.
withPenumbra()
public FieldEclipseDetector<T> withPenumbra()
This will override a penumbra/umbra flag if it has been configured previously.
withUmbra()
public FieldEclipseDetector<T> withMargin(T newMargin)
A positive margin implies eclipses are "larger" hence entry occurs earlier and exit occurs later than a detector with 0 margin.
newMargin
- angular margin to apply to eclipse detection (rad)public T getMargin()
public OccultationEngine getOccultationEngine()
public boolean getTotalEclipse()
public T g(FieldSpacecraftState<T> s)
g
in interface FieldEventDetector<T extends org.hipparchus.CalculusFieldElement<T>>
g
in class FieldAbstractDetector<FieldEclipseDetector<T extends org.hipparchus.CalculusFieldElement<T>>,T extends org.hipparchus.CalculusFieldElement<T>>
s
- the current state information: date, kinematics, attitudeCopyright © 2002-2023 CS GROUP. All rights reserved.