fr.cnes.sirius.patrius.fieldsofview
Class AzimuthElevationField

java.lang.Object
  extended by fr.cnes.sirius.patrius.fieldsofview.AzimuthElevationField
All Implemented Interfaces:
IFieldOfView

public class AzimuthElevationField
extends Object
implements IFieldOfView

Field of view defined by an azimuth-elevation mask : the algorithms are from the Orekit GroundMaskElevationDetector detector. The mask is defined by an azimuth-elevation array : the vertical is the Z axis of the local frame, the angle between the local north and the x axis must be given at construction.
The angular distance to the field limit is not the exact shortest distance: it is the exact angular distance on the local meridian (difference of elevation of the target and the linear interpolated local elevation). Concerning the field of view, the limit between two consecutive points is NOT a great circle (i.e. planar) limit: it is linear in azimuth-elevation. The fields with planar limits are the Rectangle or Pyramidal fields.

Since:
1.2
Version:
$Id: AzimuthElevationField.java 17586 2017-05-10 13:29:16Z bignon $
Author:
Thomas Trapier
Concurrency :
immutable

Constructor Summary
AzimuthElevationField(double[][] azimElevMask, double frameOrientation, String name)
          Constructor for the azimuth - elevation mask
 
Method Summary
 double getAngularDistance(Vector3D direction)
          Computes the angular distance between a vector and the border of the field.
 String getName()
          
 boolean isInTheField(Vector3D direction)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AzimuthElevationField

public AzimuthElevationField(double[][] azimElevMask,
                             double frameOrientation,
                             String name)
Constructor for the azimuth - elevation mask

Parameters:
azimElevMask - the azimuth - elevation mask (rad)
frameOrientation - Oriented angle between the local north and the x axis (counterclockwise).
name - the name of the field
Method Detail

getAngularDistance

public double getAngularDistance(Vector3D direction)
Computes the angular distance between a vector and the border of the field. The result is positive if the direction is in the field, negative otherwise. This value is approximative, mostly when the mask has great elevation variations, but its sign is right.

Specified by:
getAngularDistance in interface IFieldOfView
Parameters:
direction - the direction vector
Returns:
the angular distance

isInTheField

public boolean isInTheField(Vector3D direction)

Specified by:
isInTheField in interface IFieldOfView
Parameters:
direction - a direction vector
Returns:
true if the direction is in the field

getName

public String getName()

Specified by:
getName in interface IFieldOfView
Returns:
the name of the field


Copyright © 2017 CNES. All Rights Reserved.