55 Orthographic::Orthographic(
Pvl &label,
bool allowDefaults) :
65 if ((allowDefaults) && (!mapGroup.
hasKeyword(
"CenterLongitude"))) {
74 if ((allowDefaults) && (!mapGroup.
hasKeyword(
"CenterLatitude"))) {
88 QString msg =
"The center longitude cannot exceed [-360, 360]. "
116 double sinphi, cosphi, coslon;
143 QString msg =
"The longitude range cannot exceed 360 degrees.";
165 QString message =
"Invalid label group [Mapping]";
183 if (!Projection::operator==(proj))
return false;
197 return "Orthographic";
240 double lonRadians = lon *
PI / 180.0;
245 double latRadians = lat;
247 latRadians *=
PI / 180.0;
251 double sinphi = sin(latRadians);
252 double cosphi = cos(latRadians);
253 double coslon = cos(deltaLon);
257 if ((g <= 0.0) && (fabs(g) > 1.0e-10)) {
289 double rho, con, z, sinz, cosz;
290 const double epsilon = 1.0e-10;
306 if (fabs(rho) <= epsilon) {
311 if (con > 1.0) con = 1.0;
312 if (con < -1.0) con = -1.0;
317 if (con > 1.0) con = 1.0;
318 if (con < -1.0) con = -1.0;
321 if (fabs(con) <= epsilon) {
331 if ((fabs(con) >= epsilon) || (fabs(
GetX()) >= epsilon)) {
390 double &minY,
double &maxY) {
397 bool correctedMinLon =
false;
399 if (adjustedMinLon >= adjustedMaxLon) {
400 adjustedMinLon -= 360;
401 correctedMinLon =
true;
459 for (
double angle = 0.0; angle <= 360.0; angle += 0.01) {
470 adjustedLon <= adjustedMaxLon &&
472 adjustedLon >= adjustedMinLon) {
550 bool allowDefaults) {