42 NewHorizonsLorriDistortionMap::NewHorizonsLorriDistortionMap(
Camera *parent,
double e2,
double e5,
72 double rr = x * x + y * y;
75 double dr = 1.0 + rr * p_e2 + y * p_e5 + x * p_e6;
78 p_undistortedFocalPlaneX = x * dr;
79 p_undistortedFocalPlaneY = y * dr;
101 p_undistortedFocalPlaneX = ux;
102 p_undistortedFocalPlaneY = uy;
107 double xx, yy, xy, rr;
108 double xdistortion, ydistortion;
109 double xdistorted, ydistorted;
110 double xprevious, yprevious;
112 xprevious = 1000000.0;
113 yprevious = 1000000.0;
115 double tolerance = 0.000001;
117 bool bConverged =
false;
122 for (
int i = 0; i < 50; i++) {
129 xdistortion = xt * rr * p_e2 + xy * p_e5 + xx * p_e6;
130 ydistortion = yt * rr * p_e2 + yy * p_e5 + xy * p_e6;
133 xt = ux - xdistortion;
134 yt = uy - ydistortion;
141 if ((fabs(xt - xprevious) <= tolerance) && (fabs(yt - yprevious) <= tolerance)) {
151 p_focalPlaneX = xdistorted;
152 p_focalPlaneY = ydistorted;