public class LineMaskingDetector extends AbstractSignalPropagationDetector
PVCoordinatesProvider points by a list of BodyShape
masking bodies. The two points are linked by a Line representation over time.
The g function is positive if the line (not infinite) does not intersect any masking body. If one masking body is intersected, then the g function becomes negative.
Warning: Constructing the detector providing the propagator as the mainElement PVCoordinatesProvider
might cause a StackOverFlow error in LIGHT_SPEED mode, because the g function will ask the propagator to evaluate a
specific date and the propagator will then call the g function.
This detector can take into account both signal propagation types
INSTANTANEOUS and
LIGHT_SPEED.
For the latter case, the main element (spacecraft) is considered as the signal emitter or receiver depending on its
defined role and the other element being the receiver or emitter as a result.
AbstractSignalPropagationDetector.EventDatationType, AbstractSignalPropagationDetector.PropagationDelayTypeEventDetector.ActionactionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, DEFAULT_THRESHOLD, removeAtEntry, removeAtExit, shouldBeRemovedFlagDECREASING, INCREASING, INCREASING_DECREASING| Constructor and Description |
|---|
LineMaskingDetector(PVCoordinatesProvider mainElement,
LinkTypeHandler.SignalPropagationRole mainRole,
PVCoordinatesProvider otherElement,
List<BodyShape> maskingBodies)
Builds a line masking detector.
|
LineMaskingDetector(PVCoordinatesProvider mainElement,
LinkTypeHandler.SignalPropagationRole mainRole,
PVCoordinatesProvider otherElement,
List<BodyShape> maskingBodies,
double maxCheck,
double threshold)
Builds a line masking detector.
|
LineMaskingDetector(PVCoordinatesProvider mainElement,
LinkTypeHandler.SignalPropagationRole mainRole,
PVCoordinatesProvider otherElement,
List<BodyShape> maskingBodies,
double maxCheck,
double threshold,
EventDetector.Action start,
EventDetector.Action end,
boolean removeAtStart,
boolean removeAtEnd)
Builds a line masking detector.
|
LineMaskingDetector(PVCoordinatesProvider mainElement,
LinkTypeHandler.SignalPropagationRole mainRole,
PVCoordinatesProvider otherElement,
List<BodyShape> maskingBodies,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action start,
EventDetector.Action end,
boolean removeAtStart,
boolean removeAtEnd)
Builds a line masking detector.
|
| Modifier and Type | Method and Description |
|---|---|
LineMaskingDetector |
copy()
A copy of the detector.
|
double |
g(SpacecraftState s)
Compute the value of the switching function.
|
PVCoordinatesProvider |
getMainElement()
Getter for the main element position point (can be
null). |
List<BodyShape> |
getMaskingBodies()
Getter for the masking bodies.
|
boolean |
isDirectionOcculted(Propagator satProp,
AbsoluteDate date)
Assess if direction is occulted for entered spacecraft state.
|
getEmitter, getEpsilonSignalPropagation, getEventDatationType, getInertialFrame, getLinkTypeHandler, getMaxIterSignalPropagation, getOtherDate, getPropagationDelayType, getReceiver, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagation, setPropagationDelayTypeeventOccurred, filterEvent, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, init, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemovedpublic LineMaskingDetector(PVCoordinatesProvider mainElement, LinkTypeHandler.SignalPropagationRole mainRole, PVCoordinatesProvider otherElement, List<BodyShape> maskingBodies)
This constructor takes default values for maximal checking interval (AbstractDetector.DEFAULT_MAXCHECK) and convergence
threshold (AbstractDetector.DEFAULT_THRESHOLD).
The default implementation slope selection is set to EventDetector.INCREASING_DECREASING, hence the
detector will detect start & end masking events.
The default implementation behavior is to continue propagation at start masking and to continue propagation when masking ends while keeping the detector.
mainElement - PVCoordinatesProvider of the initial point from which to compute the line of sight (if null,
s.getOrbit() will be used in the g(s) function)mainRole - role of the main element (EMITTER or RECEIVER)otherElement - PVCoordinatesProvider of the other element to compute the line of sightmaskingBodies - list of bodies to check for maskingIllegalArgumentException - if the masking bodies list is emptypublic LineMaskingDetector(PVCoordinatesProvider mainElement, LinkTypeHandler.SignalPropagationRole mainRole, PVCoordinatesProvider otherElement, List<BodyShape> maskingBodies, double maxCheck, double threshold)
The default implementation slope selection is set to EventDetector.INCREASING_DECREASING, hence the
detector will detect start & end masking events.
The default implementation behavior is to continue propagation at start masking and to continue propagation when masking ends while keeping the detector.
mainElement - PVCoordinatesProvider of the initial point from which to compute the line of sight (if null,
s.getOrbit() will be used in the g(s) function)mainRole - role of the main element (EMITTER or RECEIVER)otherElement - PVCoordinatesProvider of the other element to compute the line of sightmaskingBodies - list of bodies to check for maskingmaxCheck - value for maximal checking intervalthreshold - convergence thresholdIllegalArgumentException - if the masking bodies list is emptypublic LineMaskingDetector(PVCoordinatesProvider mainElement, LinkTypeHandler.SignalPropagationRole mainRole, PVCoordinatesProvider otherElement, List<BodyShape> maskingBodies, double maxCheck, double threshold, EventDetector.Action start, EventDetector.Action end, boolean removeAtStart, boolean removeAtEnd)
The default implementation slope selection is set to EventDetector.INCREASING_DECREASING, hence the
detector will detect start & end masking events.
mainElement - PVCoordinatesProvider of the initial point from which to compute the line of sight (if null,
s.getOrbit() will be used in the g(s) function)mainRole - role of the main element (EMITTER or RECEIVER)otherElement - PVCoordinatesProvider of the other element to compute the line of sightmaskingBodies - list of bodies to check for maskingmaxCheck - value for maximal checking intervalthreshold - convergence thresholdstart - Action for propagation at start maskingend - Action for propagation at end maskingremoveAtStart - States if the detector should be removed at start masking event detectionremoveAtEnd - States if the detector should be removed at end masking event detectionIllegalArgumentException - if the masking bodies list is emptypublic LineMaskingDetector(PVCoordinatesProvider mainElement, LinkTypeHandler.SignalPropagationRole mainRole, PVCoordinatesProvider otherElement, List<BodyShape> maskingBodies, int slopeSelection, double maxCheck, double threshold, EventDetector.Action start, EventDetector.Action end, boolean removeAtStart, boolean removeAtEnd)
mainElement - PVCoordinatesProvider of the initial point from which to compute the line of sight (if null,
s.getOrbit() will be used in the g(s) function)mainRole - role of the main element (EMITTER or RECEIVER)otherElement - PVCoordinatesProvider of the other element to compute the line of sightmaskingBodies - list of bodies to check for maskingslopeSelection - g-function slope selection (0, 1, or 2)maxCheck - value for maximal checking intervalthreshold - convergence thresholdstart - Action for propagation at start maskingend - Action for propagation at end maskingremoveAtStart - States if the detector should be removed at start masking event detectionremoveAtEnd - States if the detector should be removed at end masking event detectionIllegalArgumentException - if the masking bodies list is emptypublic PVCoordinatesProvider getMainElement()
null).public List<BodyShape> getMaskingBodies()
public boolean isDirectionOcculted(Propagator satProp, AbsoluteDate date) throws PatriusException
satProp - spacecraft orbit propagatordate - assessment datetrue if direction is occulted, false if not occultedPatriusException - if some specific error occurspublic double g(SpacecraftState s) throws PatriusException
g in interface EventDetectorg in class AbstractDetectors - the current state information: date, kinematics, attitude for forces and events
computation, mass provider, and additional statesPatriusException - if some specific error occurspublic LineMaskingDetector copy()
Copyright © 2025 CNES. All rights reserved.