diff options
| author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2005-10-23 21:04:02 +0200 | 
|---|---|---|
| committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2005-10-23 21:04:02 +0200 | 
| commit | 1d6159c0277a0d6d356f8918500545c4e0358d48 (patch) | |
| tree | 3474e72e5a4711c4a3968d8fc3775da416d50bee /src | |
| parent | 1cfd071aec1cab53dc8c8f23b13d793de557b030 (diff) | |
fix ProjectionTangential::comp_params for wide angle pictures
Diffstat (limited to 'src')
| -rw-r--r-- | src/ProjectionTangential.cxx | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/src/ProjectionTangential.cxx b/src/ProjectionTangential.cxx index ce5b28a..a108e25 100644 --- a/src/ProjectionTangential.cxx +++ b/src/ProjectionTangential.cxx @@ -48,18 +48,21 @@ ProjectionTangential::comp_params(Hill *m1, Hill *m2, ViewParams *parms) {    Hill *tmp;    double a_center_tmp, scale_tmp, a_nick_tmp; -  if (m1->x > m2->x) { +  scale_tmp = comp_scale(m1->alph, m2->alph, m1->x, m2->x); +  if (isnan(scale_tmp) || scale_tmp < 0.0) { +    // try again with mountains swapped      tmp = m1;      m1 = m2;      m2 = tmp; +    scale_tmp = comp_scale(m1->alph, m2->alph, m1->x, m2->x);    }    a_center_tmp = comp_center_angle(m1->alph, m2->alph, m1->x, m2->x); -  scale_tmp    = comp_scale(m1->alph, m2->alph, m1->x, m2->x);    a_nick_tmp   = atan ((m1->y + tan(m1->a_nick) * parms->scale) /   		       (parms->scale - m1->y * tan(m1->a_nick))); -  if (isnan(a_center_tmp) || isnan(scale_tmp) || isnan(a_nick_tmp)) { +  if (isnan(a_center_tmp) || isnan(scale_tmp) || +      scale_tmp < 0.0 || isnan(a_nick_tmp)) {      return 1;    } else { @@ -178,7 +181,7 @@ double  ProjectionTangential::comp_scale(double a1, double a2, double d1, double d2) {    double sign1 = 1.0;    double sc, tan_a1, tan_a2; -   +    tan_a1 = tan(a1);    tan_a2 = tan(a2); | 
