public class CircularFieldOfViewDetector extends AbstractDetector<CircularFieldOfViewDetector>
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 calling
AbstractDetector.withHandler(EventHandler)
after construction.
Propagator.addEventDetector(EventDetector)
,
FieldOfViewDetector
,
Serialized FormDEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Constructor and Description |
---|
CircularFieldOfViewDetector(double maxCheck,
PVCoordinatesProvider pvTarget,
org.hipparchus.geometry.euclidean.threed.Vector3D center,
double halfAperture)
Build a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected CircularFieldOfViewDetector |
create(double newMaxCheck,
double newThreshold,
int newMaxIter,
EventHandler<? super CircularFieldOfViewDetector> newHandler)
Build a new instance.
|
double |
g(SpacecraftState s)
Compute the value of the switching function.
|
org.hipparchus.geometry.euclidean.threed.Vector3D |
getCenter()
Get the direction of FOV center.
|
double |
getHalfAperture()
Get FOV half aperture angle.
|
PVCoordinatesProvider |
getPVTarget()
Get the position/velocity provider of the target .
|
eventOccurred, getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, resetState, withHandler, withMaxCheck, withMaxIter, withThreshold
public CircularFieldOfViewDetector(double maxCheck, PVCoordinatesProvider pvTarget, org.hipparchus.geometry.euclidean.threed.Vector3D center, double halfAperture)
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.
maxCheck
- maximal interval in secondspvTarget
- Position/velocity provider of the considered targetcenter
- Direction of the FOV center, in spacecraft framehalfAperture
- FOV half aperture angleprotected CircularFieldOfViewDetector create(double newMaxCheck, double newThreshold, int newMaxIter, EventHandler<? super CircularFieldOfViewDetector> newHandler)
create
in class AbstractDetector<CircularFieldOfViewDetector>
newMaxCheck
- maximum checking interval (s)newThreshold
- convergence threshold (s)newMaxIter
- maximum number of iterations in the event time searchnewHandler
- event handler to call at event occurrencespublic PVCoordinatesProvider getPVTarget()
public org.hipparchus.geometry.euclidean.threed.Vector3D getCenter()
public double getHalfAperture()
public double g(SpacecraftState s) throws OrekitException
The g function value is the difference between FOV half aperture and the absolute value of the angle between target direction and field of view center. It is positive inside the FOV and negative outside.
g
in interface EventDetector
g
in class AbstractDetector<CircularFieldOfViewDetector>
s
- the current state information: date, kinematics, attitudeOrekitException
- if some specific error occursCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.