From 0b973ef5b9aeff0933753ac1d04b61ea2dc14f3a Mon Sep 17 00:00:00 2001 From: Kaj-Michael Lang Date: Fri, 7 Mar 2008 15:06:38 +0200 Subject: [PATCH] Add some data fields to the path struct --- src/path.h | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/path.h b/src/path.h index 108c25a..65e19c1 100644 --- a/src/path.h +++ b/src/path.h @@ -5,33 +5,33 @@ #include #define MACRO_PATH_INIT(path) { \ - (path).head = (path).tail = g_new0(Point, ARRAY_CHUNK_SIZE); \ - *((path).tail) = _point_null; \ - (path).cap = (path).head + ARRAY_CHUNK_SIZE; \ - (path).whead = g_new0(WayPoint, ARRAY_CHUNK_SIZE); \ - (path).wtail = (path).whead - 1; \ - (path).wcap = (path).whead + ARRAY_CHUNK_SIZE; \ + (path).head = (path).tail = g_new0(Point, ARRAY_CHUNK_SIZE); \ + *((path).tail) = _point_null; \ + (path).cap = (path).head + ARRAY_CHUNK_SIZE; \ + (path).whead = g_new0(WayPoint, ARRAY_CHUNK_SIZE); \ + (path).wtail = (path).whead - 1; \ + (path).wcap = (path).whead + ARRAY_CHUNK_SIZE; \ + (path).length=(path).maxspeed=(path).tspeed=(path).avgspeed=(path).points=0; \ } #define MACRO_PATH_FREE(path) if((path).head) { \ - WayPoint *curr; \ - g_free((path).head); \ - (path).head = (path).tail = (path).cap = NULL; \ - for(curr = (path).whead - 1; curr++ != (path).wtail; ) \ - g_free(curr->desc); \ - g_free((path).whead); \ - (path).whead = (path).wtail = (path).wcap = NULL; \ + WayPoint *curr; \ + g_free((path).head); \ + (path).head = (path).tail = (path).cap = NULL; \ + for(curr = (path).whead - 1; curr++ != (path).wtail; ) \ + g_free(curr->desc); \ + g_free((path).whead); \ + (path).whead = (path).wtail = (path).wcap = NULL; \ } #define MACRO_PATH_INCREMENT_TAIL(route) { \ - if(++(route).tail == (route).cap) \ - path_resize(&(route), (route).cap - (route).head + ARRAY_CHUNK_SIZE);\ + if(++(route).tail == (route).cap) \ + path_resize(&(route), (route).cap - (route).head + ARRAY_CHUNK_SIZE);\ } #define MACRO_PATH_INCREMENT_WTAIL(route) { \ - if(++(route).wtail == (route).wcap) \ - path_wresize(&(route), \ - (route).wcap - (route).whead + ARRAY_CHUNK_SIZE); \ + if(++(route).wtail == (route).wcap) \ + path_wresize(&(route), (route).wcap - (route).whead + ARRAY_CHUNK_SIZE); \ } /** A lat/lon/alt position */ @@ -68,6 +68,11 @@ struct _Path { WayPoint *whead; /* points to first element in array; NULL if empty. */ WayPoint *wtail; /* points to last element in array. */ WayPoint *wcap; /* points after last slot in array. */ + guint32 points; + gdouble length; + gdouble tspeed; + gdouble avgspeed; + gfloat maxspeed; }; Point _point_null; -- 2.39.5