public class CircularFieldOfViewDetector extends AbstractSignalPropagationDetector
This class handle fields of view with a circular boundary.
The default implementation behavior is to continue
propagation at fov entry and
to stop
propagation at fov exit. This can be changed by using the constructor
CircularFieldOfViewDetector
.
This detector can takes into account signal propagation duration through
AbstractSignalPropagationDetector.setPropagationDelayType(PropagationDelayType, Frame)
(default is signal being instantaneous).
Propagator.addEventDetector(EventDetector)
,
DihedralFieldOfViewDetector
,
Serialized FormAbstractSignalPropagationDetector.DatationChoice, AbstractSignalPropagationDetector.PropagationDelayType
EventDetector.Action
actionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, removeAtEntry, removeAtExit, shouldBeRemovedFlag
DECREASING, INCREASING, INCREASING_DECREASING
Constructor and Description |
---|
CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
double halfApertureIn,
double maxCheckIn)
Build a new instance.
|
CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
double halfApertureIn,
double maxCheck,
double threshold)
Build a new instance.
|
CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
double halfApertureIn,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit)
Build a new instance with defined actions at fov entry and exit.
|
CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
double halfApertureIn,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new instance with defined actions at fov entry and exit.
|
Modifier and Type | Method and Description |
---|---|
EventDetector |
copy()
A copy of the detector.
|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle an fov event and choose what to do next.
|
double |
g(SpacecraftState s)
Compute the value of the switching function.
|
Vector3D |
getCenter()
Get the direction of fov center.
|
AbstractSignalPropagationDetector.DatationChoice |
getDatationChoice()
Specify if the datation choice corresponds to the emitter date or the receiver date.
|
PVCoordinatesProvider |
getEmitter(SpacecraftState s)
Getter for the signal emitter.
|
double |
getHalfAperture()
Get fov half aperture angle.
|
PVCoordinatesProvider |
getPVTarget()
Get the position/velocity provider of the target .
|
PVCoordinatesProvider |
getReceiver(SpacecraftState s)
Getter for the signal receiver.
|
void |
setPropagationDelayType(AbstractSignalPropagationDetector.PropagationDelayType propagationDelayType,
Frame frame)
Setter for the propagation delay computation type.
|
getEpsilonSignalPropagation, getInertialFrame, getMaxIterSignalPropagation, getPropagationDelayType, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagation
filterEvent, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, init, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemoved
public CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, double halfApertureIn, double maxCheckIn)
The maximal interval between distance to fov boundary checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
The default implementation behavior is to continue
propagation at fov entry
and to stop
propagation at fov exit.
pvTarget
- Position/velocity provider of the considered targetcenterIn
- Direction of the fov center, in spacecraft framehalfApertureIn
- Fov half aperture anglemaxCheckIn
- maximal interval in secondspublic CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, double halfApertureIn, double maxCheck, double threshold)
The maximal interval between distance to fov boundary checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
The default implementation behavior is to continue
propagation at fov entry
and to stop
propagation at fov exit.
pvTarget
- Position/velocity provider of the considered targetcenterIn
- Direction of the fov center, in spacecraft framehalfApertureIn
- Fov half aperture anglemaxCheck
- maximal interval in secondsthreshold
- threshold in seconds for events date computationpublic CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, double halfApertureIn, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit)
The maximal interval between distance to fov boundary checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
pvTarget
- Position/velocity provider of the considered targetcenterIn
- Direction of the fov center, in spacecraft framehalfApertureIn
- Fov half aperture anglemaxCheck
- maximal interval in secondsthreshold
- threshold in seconds for events date computationentry
- action performed at fov entryexit
- action performed at fov exitpublic CircularFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, double halfApertureIn, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
The maximal interval between distance to fov boundary checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
pvTarget
- Position/velocity provider of the considered targetcenterIn
- Direction of the fov center, in spacecraft framehalfApertureIn
- Fov half aperture anglemaxCheck
- maximal interval in secondsthreshold
- threshold in seconds for events date computationentry
- action performed at fov entryexit
- action performed at fov exitremoveEntry
- true if detector should be removed at fov entryremoveExit
- true if detector should be removed at fov exitpublic PVCoordinatesProvider getPVTarget()
public Vector3D getCenter()
public double getHalfAperture()
public EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws PatriusException
The default implementation behavior is to continue
propagation at entry and
to stop
propagation at exit. This can be changed by using the constructor
CircularFieldOfViewDetector
eventOccurred
in interface EventDetector
eventOccurred
in class AbstractDetector
s
- the current state information : date, kinematics, attitudeincreasing
- if true, the value of the switching function increases when times increases
around event, i.e. target enters the fov (note that increase is measured with respect
to physical time, not with respect to propagation which may go backward in time)forward
- if true, the integration variable (time) increases during integration.PatriusException
- if some specific error occurspublic double g(SpacecraftState s) throws PatriusException
g
in interface EventDetector
g
in class AbstractDetector
s
- the current state information: date, kinematics, attitude for forces and events
computation, mass provider, and additional statesPatriusException
- if some specific error occurspublic void setPropagationDelayType(AbstractSignalPropagationDetector.PropagationDelayType propagationDelayType, Frame frame)
AbstractSignalPropagationDetector
setPropagationDelayType
in class AbstractSignalPropagationDetector
propagationDelayType
- Propagation delay type used in events computationframe
- Frame to use for signal propagation with delay (may be null if propagation delay type is
considered instantaneous). Warning: the usage of a pseudo inertial frame is tolerated, however it will
lead to some inaccuracies due to the non-invariance of the frame with respect to time. For this reason,
it is suggested to use the ICRF frame or a frame which is frozen with respect to the ICRF.public PVCoordinatesProvider getEmitter(SpacecraftState s)
getEmitter
in class AbstractSignalPropagationDetector
s
- the spacecraft state used by the detectorpublic PVCoordinatesProvider getReceiver(SpacecraftState s)
getReceiver
in class AbstractSignalPropagationDetector
s
- the spacecraft state used by the detectorpublic AbstractSignalPropagationDetector.DatationChoice getDatationChoice()
getDatationChoice
in class AbstractSignalPropagationDetector
public EventDetector copy()
The following attributes are not deeply copied:
PVCoordinatesProvider
Copyright © 2023 CNES. All rights reserved.