53 PointPerspective::PointPerspective(
Pvl &label,
bool allowDefaults) :
61 if ((allowDefaults) && (!mapGroup.
hasKeyword(
"CenterLongitude"))) {
68 if ((allowDefaults) && (!mapGroup.
hasKeyword(
"CenterLatitude"))) {
97 QString message =
"Invalid label group [Mapping]";
115 if (!Projection::operator==(proj))
return false;
121 (point->
m_distance != this->m_distance))
return false;
131 return "PointPerspective";
168 double lonRadians = lon *
PI / 180.0;
173 double latRadians = lat;
175 latRadians *=
PI / 180.0;
179 double sinphi = sin(latRadians);
180 double cosphi = cos(latRadians);
181 double coslon = cos(deltaLon);
185 if (g < (1.0 /
m_P)) {
191 double ksp = (
m_P - 1.0) / (
m_P - g);
218 double rho, rp, con, com, z, sinz, cosz;
219 const double epsilon = 1.0e-10;
226 if (rp > (sqrt(con / com))) {
233 if (fabs(rho) <= epsilon) {
241 sinz = (
m_P - sqrt(1.0 - rp * rp * com / con)) / (con / rp + rp / con);
247 if (con > 1.0) con = 1.0;
248 if (con < -1.0) con = -1.0;
252 if (fabs(con) <= epsilon) {
262 if ((fabs(con) >= epsilon) || (fabs(
GetX()) >= epsilon)) {
340 for (
double angle = 0.0; angle <= 360.0; angle += 0.01) {
417 bool allowDefaults) {