USGS

Isis 3.0 Object Programmers' Reference

Home

CameraDistortionMap.h

Go to the documentation of this file.
00001 
00023 #ifndef CameraDistortionMap_h
00024 #define CameraDistortionMap_h
00025 
00026 #include <vector>
00027 #include "Camera.h"
00028 
00029 namespace Isis {
00054   class CameraDistortionMap {
00055     public:
00056       CameraDistortionMap(Camera *parent, double zDirection = 1.0);
00057 
00058       void SetDistortion(int naifIkCode);
00059 
00061       virtual ~CameraDistortionMap() {}
00062 
00063       virtual bool SetFocalPlane(double dx, double dy);
00064 
00065       virtual bool SetUndistortedFocalPlane(double ux, double uy);
00066 
00067       std::vector<double> OpticalDistortionCoefficients() const;
00068 
00069       double ZDirection() const;
00070 
00072       inline double FocalPlaneX() const {
00073         return p_focalPlaneX;
00074       }
00075 
00077       inline double FocalPlaneY() const {
00078         return p_focalPlaneY;
00079       }
00080 
00082       inline double UndistortedFocalPlaneX() const {
00083         return p_undistortedFocalPlaneX;
00084       }
00085 
00087       inline double UndistortedFocalPlaneY() const {
00088         return p_undistortedFocalPlaneY;
00089       }
00090 
00092       inline double UndistortedFocalPlaneZ() const {
00093         return p_zDirection * p_camera->FocalLength();
00094       }
00095 
00096     protected:
00097       Camera *p_camera;
00098 
00099       double p_focalPlaneX;
00100       double p_focalPlaneY;
00101       double p_undistortedFocalPlaneX;
00102       double p_undistortedFocalPlaneY;
00103       double p_zDirection;
00104 
00105       std::vector<double> p_odk;
00106   };
00107 };
00108 #endif