summaryrefslogtreecommitdiff
path: root/src/Panorama.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Panorama.cxx')
-rw-r--r--src/Panorama.cxx25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/Panorama.cxx b/src/Panorama.cxx
index 55fb9b8..b33a260 100644
--- a/src/Panorama.cxx
+++ b/src/Panorama.cxx
@@ -588,15 +588,28 @@ Panorama::get_real_distance(Hill *m) {
int
Panorama::get_coordinates(double a_view, double a_nick, int *x, int *y) {
- Hill *m = new Hill(0,0);
+ Hill m(0,0);
- m->a_view = a_view;
- m->a_nick = a_nick;
- proj->set_coordinates(m, &parms);
- *x = m->x;
- *y = m->y;
+ m.a_view = a_view - parms.a_center;
+
+ if (m.a_view > pi_d) {
+ m.a_view -= 2.0*pi_d;
+ } else if (m.a_view < -pi_d) {
+ m.a_view += 2.0*pi_d;
+ }
+
+ if (m.a_view < view_angle && m.a_view > - view_angle) {
+ return 1;
+ }
+
+ m.a_nick = a_nick;
+
+ proj->set_coordinates(&m, &parms);
+
+ *x = m.x;
+ *y = m.y;
return 0;
}