public class DihedralFieldOfViewDetector extends AbstractSignalPropagationDetector
This class finds dihedral field of view events (i.e. body entry and exit in fov).
The default implementation behavior is to EventDetector.Action#CONTINUE continue propagation at entry and to
EventDetector.Action#STOP stop propagation at exit. This can be changed by using provided constructors.
This detector can takes into account signal propagation duration through
AbstractSignalPropagationDetector.setPropagationDelayType(PropagationDelayType, Frame) (default is signal being instantaneous).
Propagator.addEventDetector(EventDetector),
CircularFieldOfViewDetector,
Serialized FormAbstractSignalPropagationDetector.EventDatationType, AbstractSignalPropagationDetector.PropagationDelayTypeEventDetector.ActionactionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, removeAtEntry, removeAtExit, shouldBeRemovedFlagDECREASING, INCREASING, INCREASING_DECREASING| Constructor and Description |
|---|
DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
Vector3D axis1,
double halfAperture1In,
Vector3D axis2,
double halfAperture2In,
double maxCheck)
Build a new instance.
|
DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
Vector3D axis1,
double halfAperture1In,
Vector3D axis2,
double halfAperture2In,
double maxCheck,
double epsilon)
Build a new instance.
|
DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
Vector3D axis1,
double halfAperture1In,
Vector3D axis2,
double halfAperture2In,
double maxCheck,
EventDetector.Action entry,
EventDetector.Action exit)
Build a new instance.
|
DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
Vector3D axis1,
double halfAperture1In,
Vector3D axis2,
double halfAperture2In,
double maxCheck,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new instance.
|
DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
Vector3D axis1,
double halfAperture1In,
Vector3D axis2,
double halfAperture2In,
double maxCheck,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit,
double epsilon)
Build a new instance.
|
DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget,
Vector3D centerIn,
Vector3D axis1,
double halfAperture1In,
Vector3D axis2,
double halfAperture2In,
double maxCheck,
EventDetector.Action entry,
EventDetector.Action exit,
double epsilon)
Build a new instance.
|
| 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 |
getAxis1()
Get the direction of fov 1st dihedral axis.
|
Vector3D |
getAxis2()
Get the direction of fov 2nd dihedral axis.
|
Vector3D |
getCenter()
Get the direction of fov center.
|
double |
getHalfAperture1()
Get the half aperture angle of fov 1st dihedra.
|
double |
getHalfAperture2()
Get the half aperture angle of fov 2nd dihedra.
|
PVCoordinatesProvider |
getPVTarget()
Get the position/velocity provider of the target .
|
getEmitter, getEpsilonSignalPropagation, getEventDatationType, getInertialFrame, getLinkTypeHandler, getMaxIterSignalPropagation, getOtherDate, getPropagationDelayType, getReceiver, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagation, setPropagationDelayTypefilterEvent, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, init, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemovedpublic DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, Vector3D axis1, double halfAperture1In, Vector3D axis2, double halfAperture2In, double maxCheck) throws PatriusException
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 EventDetector.Action#CONTINUE continue propagation at entry and
to EventDetector.Action#STOP stop propagation at exit.
pvTarget - Position/velocity provider of the considered targetcenterIn - Direction of the fov centeraxis1 - Fov dihedral axis 1halfAperture1In - Fov dihedral half aperture angle 1axis2 - Fov dihedral axis 2halfAperture2In - Fov dihedral half aperture angle 2maxCheck - maximal interval in secondsPatriusException - if vectors center and axis1 or center and axis2 are not strictly
orthogonalpublic DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, Vector3D axis1, double halfAperture1In, Vector3D axis2, double halfAperture2In, double maxCheck, double epsilon) throws PatriusException
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 EventDetector.Action#CONTINUE continue propagation at entry and
to EventDetector.Action#STOP stop propagation at exit.
pvTarget - Position/velocity provider of the considered targetcenterIn - Direction of the fov centeraxis1 - Fov dihedral axis 1halfAperture1In - Fov dihedral half aperture angle 1axis2 - Fov dihedral axis 2halfAperture2In - Fov dihedral half aperture angle 2maxCheck - maximal interval in secondsepsilon - threshold determining if vectors are orthogonal or notPatriusException - if vectors center and axis1 or center and axis2 are not orthogonal
regarding epsilonpublic DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, Vector3D axis1, double halfAperture1In, Vector3D axis2, double halfAperture2In, double maxCheck, EventDetector.Action entry, EventDetector.Action exit) throws PatriusException
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 centeraxis1 - Fov dihedral axis 1halfAperture1In - Fov dihedral half aperture angle 1axis2 - Fov dihedral axis 2halfAperture2In - Fov dihedral half aperture angle 2maxCheck - maximal interval in secondsentry - action performed at fov entryexit - action performed at fov exitPatriusException - if vectors center and axis1 or center and axis2 are not strictly
orthogonalpublic DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, Vector3D axis1, double halfAperture1In, Vector3D axis2, double halfAperture2In, double maxCheck, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit) throws PatriusException
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 centeraxis1 - Fov dihedral axis 1halfAperture1In - Fov dihedral half aperture angle 1axis2 - Fov dihedral axis 2halfAperture2In - Fov dihedral half aperture angle 2maxCheck - maximal interval in secondsentry - 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 exitPatriusException - if vectors center and axis1 or center and axis2 are not strictly
orthogonalpublic DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, Vector3D axis1, double halfAperture1In, Vector3D axis2, double halfAperture2In, double maxCheck, EventDetector.Action entry, EventDetector.Action exit, double epsilon) throws PatriusException
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 centeraxis1 - Fov dihedral axis 1halfAperture1In - Fov dihedral half aperture angle 1axis2 - Fov dihedral axis 2halfAperture2In - Fov dihedral half aperture angle 2maxCheck - maximal interval in secondsentry - action performed at fov entryexit - action performed at fov exitepsilon - threshold determining if vectors are orthogonal or notPatriusException - if vectors center and axis1 or center and axis2 are not orthogonal
regarding epsilonpublic DihedralFieldOfViewDetector(PVCoordinatesProvider pvTarget, Vector3D centerIn, Vector3D axis1, double halfAperture1In, Vector3D axis2, double halfAperture2In, double maxCheck, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit, double epsilon) throws PatriusException
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 centeraxis1 - Fov dihedral axis 1halfAperture1In - Fov dihedral half aperture angle 1axis2 - Fov dihedral axis 2halfAperture2In - Fov dihedral half aperture angle 2maxCheck - maximal interval in secondsentry - 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 exitepsilon - threshold determining if vectors are orthogonal or notPatriusException - if vectors center and axis1 or center and axis2 are not orthogonal
regarding epsilonpublic PVCoordinatesProvider getPVTarget()
public Vector3D getCenter()
public Vector3D getAxis1()
public double getHalfAperture1()
public double getHalfAperture2()
public Vector3D getAxis2()
public EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws PatriusException
The default implementation behavior is to EventDetector.Action#CONTINUE continue propagation at entry and
to EventDetector.Action#STOP stop propagation at exit. This can be changed by overriding the
eventOccurred method in a derived class.
eventOccurred in interface EventDetectoreventOccurred in class AbstractDetectors - 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 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 EventDetector copy()
The following attributes are not deeply copied:
PVCoordinatesProviderCopyright © 2024 CNES. All rights reserved.