Isis 3 Programmer Reference
|
This class defines a field of view. More...
#include <PixelFOV.h>
Public Member Functions | |
PixelFOV () | |
Constructs an empty PixelFOV object. More... | |
PixelFOV (const PixelFOV &other) | |
~PixelFOV () | |
Destroys a PixelFOV object/. More... | |
QList< QList< QPointF > > | latLonVertices (Camera &camera, const double sample, const double line, const int numIfovs=1) const |
Produces an fov for the given line sample. More... | |
Private Member Functions | |
QList< QPointF > | instantaneousFov (Camera &camera) const |
Compute the instantaneous fov for the pixel and time that the input camera is set to. More... | |
QList< QPointF > | envelope (QList< QPointF > vertices) const |
Produces a list of boundary points for the convex hull containing the input vertices. More... | |
QList< QList< QPointF > > | splitIfov (QList< QPointF > vertices) const |
Split an instantaneous field of view across the 360/0 boundary. More... | |
This class defines a field of view.
This class defines a field of view for a given camera. Field of views are returned as point clouds defining the boundary of the field of view. The number of vertices is instrment dependent. The default Camera::PixelIfovOffsets assumes a square pixel and simply returns the offsets of the four corner vertices in microns from the current pixel center. If the instruments pixels are not square, the Camera::PixelIfov will need to be implemented in the the instrument's camera model. For an example, see VimsCamera::PixelIfov().
2013-02-15 Tracie Sucharski - Original version of PixelIfov class.
2016-10-24 Jesse Mapel - Renamed and expanded functionality of PixelIfov to allow for both instantaneous and full field of views. References #4476.
2016-10-24 Jeannie Backer - Improved coding standards. References #4476.
Definition at line 52 of file PixelFOV.h.
Isis::PixelFOV::PixelFOV | ( | ) |
Constructs an empty PixelFOV object.
Definition at line 27 of file PixelFOV.cpp.
Isis::PixelFOV::~PixelFOV | ( | ) |
Destroys a PixelFOV object/.
Definition at line 35 of file PixelFOV.cpp.
Produces a list of boundary points for the convex hull containing the input vertices.
vertices | The list of points to be enveloped. |
Definition at line 225 of file PixelFOV.cpp.
Compute the instantaneous fov for the pixel and time that the input camera is set to.
By default the fov will be defined by the four corner points of the pixel, but individual camera models may override this in Camera::PixelIfovOffsets(). The longitude coordinates will always been in 0-360 domain.
camera | The camera used to compute the fov. |
Definition at line 182 of file PixelFOV.cpp.
References Isis::Camera::DistortionMap(), Isis::Camera::FocalLength(), Isis::Sensor::LookDirection(), Isis::Camera::PixelIfovOffsets(), Isis::Sensor::SetLookDirection(), Isis::CameraDistortionMap::UndistortedFocalPlaneZ(), Isis::Sensor::UniversalLatitude(), and Isis::Sensor::UniversalLongitude().
QList< QList< QPointF > > Isis::PixelFOV::latLonVertices | ( | Camera & | camera, |
const double | sample, | ||
const double | line, | ||
const int | numIfovs = 1 |
||
) | const |
Produces an fov for the given line sample.
This produces instantaneous fovs at several times during a pixel's exposure. Then, it combines those instantaneous fovs into a full fov for the entire duration of the pixel. By default produces an instantaneous fov. A full fov can be produced by using numIfovs > 1.
camera | A pointer to the cube's camera. |
sample | The sample of the pixel. |
line | The line of the pixel. |
numIfovs | The number of instantaneous fovs that will be combined. Defaults to 1, ie. an instantaneous fov. |
IException::Programmer | "The number of instantaneous field of views must be a positive integer." |
Definition at line 61 of file PixelFOV.cpp.
References _FILEINFO_, Isis::Camera::exposureDuration(), and Isis::Camera::SetImage().
Split an instantaneous field of view across the 360/0 boundary.
vertices | A list of points defining the boundary of the unsplit IFOV |
Definition at line 262 of file PixelFOV.cpp.