[libchamplain] Reduce the set of coordinate conversion functions
- From: Jiří Techet <jiritechet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libchamplain] Reduce the set of coordinate conversion functions
- Date: Wed, 9 Feb 2011 08:38:34 +0000 (UTC)
commit 9a19543ad442206c744b47c141e4001ef1889381
Author: JiÅ?Ã Techet <techet gmail com>
Date: Sun Jan 30 13:41:01 2011 +0100
Reduce the set of coordinate conversion functions
champlain/champlain-marker-layer.c | 14 +++---
champlain/champlain-view.c | 92 ++++++++++++------------------------
champlain/champlain-view.h | 12 +----
3 files changed, 39 insertions(+), 79 deletions(-)
---
diff --git a/champlain/champlain-marker-layer.c b/champlain/champlain-marker-layer.c
index 77011b4..0542bac 100644
--- a/champlain/champlain-marker-layer.c
+++ b/champlain/champlain-marker-layer.c
@@ -464,10 +464,12 @@ set_marker_position (ChamplainMarkerLayer *layer, ChamplainMarker *marker)
if (priv->view == NULL)
return;
- x = champlain_view_longitude_to_layer_x (priv->view,
+ x = champlain_view_longitude_to_x (priv->view,
champlain_marker_get_longitude (marker));
- y = champlain_view_latitude_to_layer_y (priv->view,
+ x += champlain_view_get_viewport_x (priv->view);
+ y = champlain_view_latitude_to_y (priv->view,
champlain_marker_get_latitude (marker));
+ y += champlain_view_get_viewport_y (priv->view);
clutter_actor_set_position (CLUTTER_ACTOR (marker), x, y);
}
@@ -862,7 +864,6 @@ redraw_polygon (ChamplainMarkerLayer *layer)
gfloat width, height;
int i, n_children;
ChamplainView *view = priv->view;
- gdouble lon, lat;
gdouble x, y;
/* layer not yet added to the view */
@@ -878,10 +879,9 @@ redraw_polygon (ChamplainMarkerLayer *layer)
cairo_texture = clutter_cairo_texture_new (width, height);
clutter_container_add_actor (CLUTTER_CONTAINER (priv->polygon_actor), cairo_texture);
- lon = champlain_view_x_to_longitude (view, 0);
- lat = champlain_view_y_to_latitude (view, 0);
- x = champlain_view_longitude_to_layer_x (view, lon);
- y = champlain_view_latitude_to_layer_y (view, lat);
+ x = champlain_view_get_viewport_x (priv->view);
+ y = champlain_view_get_viewport_y (priv->view);
+
clutter_actor_set_position (priv->polygon_actor, x, y);
cr = clutter_cairo_texture_create (CLUTTER_CAIRO_TEXTURE (cairo_texture));
diff --git a/champlain/champlain-view.c b/champlain/champlain-view.c
index 0c4ab88..6efb477 100644
--- a/champlain/champlain-view.c
+++ b/champlain/champlain-view.c
@@ -2112,8 +2112,13 @@ champlain_view_x_to_longitude (ChamplainView *view,
g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0.0);
ChamplainViewPrivate *priv = view->priv;
+ gdouble longitude;
- return champlain_view_layer_x_to_longitude (view, priv->viewport_size.x + x);
+ longitude = champlain_map_source_get_longitude (priv->map_source,
+ priv->zoom_level,
+ x + priv->viewport_size.x + priv->anchor.x);
+
+ return longitude;
}
@@ -2126,8 +2131,13 @@ champlain_view_y_to_latitude (ChamplainView *view,
g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0.0);
ChamplainViewPrivate *priv = view->priv;
+ gdouble latitude;
+
+ latitude = champlain_map_source_get_latitude (priv->map_source,
+ priv->zoom_level,
+ y + priv->viewport_size.y + priv->anchor.y);
- return champlain_view_layer_y_to_latitude (view, priv->viewport_size.y + y);
+ return latitude;
}
gdouble
@@ -2139,8 +2149,13 @@ champlain_view_longitude_to_x (ChamplainView *view,
g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0);
ChamplainViewPrivate *priv = view->priv;
+ gdouble x;
+
+ x = champlain_map_source_get_x (priv->map_source, priv->zoom_level, longitude);
+ x -= priv->anchor.x;
+ x -= priv->viewport_size.x;
- return champlain_view_longitude_to_layer_x (view, longitude) - priv->viewport_size.x;
+ return x;
}
@@ -2153,87 +2168,40 @@ champlain_view_latitude_to_y (ChamplainView *view,
g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0);
ChamplainViewPrivate *priv = view->priv;
+ gdouble y;
- return champlain_view_latitude_to_layer_y (view, latitude) - priv->viewport_size.y;
-}
-
-
-
-gdouble
-champlain_view_layer_x_to_longitude (ChamplainView *view,
- gdouble x)
-{
- DEBUG_LOG ()
-
- g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0.0);
- ChamplainViewPrivate *priv = view->priv;
-
- gdouble longitude;
-
- longitude = champlain_map_source_get_longitude (priv->map_source,
- priv->zoom_level,
- x + priv->anchor.x);
+ y = champlain_map_source_get_y (priv->map_source, priv->zoom_level, latitude);
+ y -= priv->anchor.y;
+ y -= priv->viewport_size.y;
- return longitude;
+ return y;
}
-gdouble
-champlain_view_layer_y_to_latitude (ChamplainView *view,
- gdouble y)
+double
+champlain_view_get_viewport_x (ChamplainView *view)
{
DEBUG_LOG ()
g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0.0);
ChamplainViewPrivate *priv = view->priv;
- gdouble latitude;
-
- latitude = champlain_map_source_get_latitude (priv->map_source,
- priv->zoom_level,
- y + priv->anchor.y);
-
- return latitude;
+ return priv->viewport_size.x;
}
-gdouble
-champlain_view_longitude_to_layer_x (ChamplainView *view,
- gdouble longitude)
+double
+champlain_view_get_viewport_y (ChamplainView *view)
{
DEBUG_LOG ()
- g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0);
-
+ g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0.0);
ChamplainViewPrivate *priv = view->priv;
- gdouble x;
-
- x = champlain_map_source_get_x (priv->map_source, priv->zoom_level, longitude);
- x -= priv->anchor.x;
- return x;
+ return priv->viewport_size.y;
}
-gdouble
-champlain_view_latitude_to_layer_y (ChamplainView *view,
- gdouble latitude)
-{
- DEBUG_LOG ()
-
- g_return_val_if_fail (CHAMPLAIN_IS_VIEW (view), 0);
-
- ChamplainViewPrivate *priv = view->priv;
- gdouble y;
-
- y = champlain_map_source_get_y (priv->map_source, priv->zoom_level, latitude);
- y -= priv->anchor.y;
-
- return y;
-}
-
-
-
static void
view_load_visible_tiles (ChamplainView *view)
{
diff --git a/champlain/champlain-view.h b/champlain/champlain-view.h
index b1bdbe5..5bb7a41 100644
--- a/champlain/champlain-view.h
+++ b/champlain/champlain-view.h
@@ -169,16 +169,6 @@ gboolean champlain_view_get_zoom_on_double_click (ChamplainView *view);
void champlain_view_reload_tiles (ChamplainView *view);
-
-gdouble champlain_view_layer_x_to_longitude (ChamplainView *view,
- gdouble x);
-gdouble champlain_view_layer_y_to_latitude (ChamplainView *view,
- gdouble y);
-gdouble champlain_view_longitude_to_layer_x (ChamplainView *viev,
- gdouble longitude);
-gdouble champlain_view_latitude_to_layer_y (ChamplainView *viev,
- gdouble latitude);
-
gdouble champlain_view_x_to_longitude (ChamplainView *view,
gdouble x);
gdouble champlain_view_y_to_latitude (ChamplainView *view,
@@ -188,6 +178,8 @@ gdouble champlain_view_longitude_to_x (ChamplainView *view,
gdouble champlain_view_latitude_to_y (ChamplainView *view,
gdouble latitude);
+double champlain_view_get_viewport_x (ChamplainView *view);
+double champlain_view_get_viewport_y (ChamplainView *view);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]