42 p_zDirection = zDirection;
66 QString odkkey =
"INS" +
toString(naifIkCode) +
"_OD_K";
67 for (
int i = 0; i < 3; ++i) {
68 p_odk.push_back(p_camera->Spice::getDouble(odkkey, i));
94 if (p_odk.size() <= 0) {
95 p_undistortedFocalPlaneX = dx;
96 p_undistortedFocalPlaneY = dy;
102 double r2 = (dx * dx) + (dy * dy);
104 p_undistortedFocalPlaneX = dx;
105 p_undistortedFocalPlaneY = dy;
110 double drOverR = p_odk[0] + (r2 * (p_odk[1] + (r2 * p_odk[2])));
111 p_undistortedFocalPlaneX = dx - (drOverR * dx);
112 p_undistortedFocalPlaneY = dy - (drOverR * dy);
137 p_undistortedFocalPlaneX = ux;
138 p_undistortedFocalPlaneY = uy;
141 if (p_odk.size() <= 0) {
149 double rp2 = (ux * ux) + (uy * uy);
158 double rp = sqrt(rp2);
159 double drOverR = p_odk[0] + (rp2 * (p_odk[1] + (rp2 * p_odk[2])));
162 double r = rp + (drOverR * rp);
163 double r_prev, r2_prev;
164 double tolMilliMeters = p_camera->
PixelPitch() / 100.0;
172 if (iteration >= 15 || r > 1E9) {
181 drOverR = p_odk[0] + (r2_prev * (p_odk[1] + (r2_prev * p_odk[2])));
183 r = rp + (drOverR * r_prev);
186 while (fabs(r - r_prev) > tolMilliMeters);
188 p_focalPlaneX = ux / (1.0 - drOverR);
189 p_focalPlaneY = uy / (1.0 - drOverR);