|
Isis 3.0 Object Programmers' Reference |
Home |
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