summaryrefslogtreecommitdiff
path: root/navit/item.c
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-01-02 21:18:55 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-01-02 21:18:55 +0000
commit3945f92da6233b3651311a5e935c18420f2a5183 (patch)
tree2c2a6ce87777d610c48fba35786cecc05815e1b7 /navit/item.c
parentce0446ea8122ef70684424258349c9127c56f8a4 (diff)
downloadnavit-3945f92da6233b3651311a5e935c18420f2a5183.tar.gz
Fix:Core:Made some performance critical parts a bit faster
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@1881 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/item.c')
-rw-r--r--navit/item.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/navit/item.c b/navit/item.c
index 5de4bf74c..8cd20fee2 100644
--- a/navit/item.c
+++ b/navit/item.c
@@ -54,6 +54,33 @@ item_coord_get(struct item *it, struct coord *c, int count)
}
int
+item_coord_get_with_bbox(struct item *it, struct coord *c, int count, struct coord_rect *r)
+{
+ int i,ret=it->meth->item_coord_get(it->priv_data, c, count);
+ struct coord_rect r2;
+ if (ret <= 0)
+ return ret;
+ if (ret == 1) {
+ r->rl=r->lu=c[0];
+ return ret;
+ }
+ r2.lu=c[0];
+ r2.rl=c[0];
+ for (i = 1 ; i < ret ; i++) {
+ if (r2.lu.x > c[i].x)
+ r2.lu.x=c[i].x;
+ if (r2.rl.x < c[i].x)
+ r2.rl.x=c[i].x;
+ if (r2.rl.y > c[i].y)
+ r2.rl.y=c[i].y;
+ if (r2.lu.y < c[i].y)
+ r2.lu.y=c[i].y;
+ }
+ *r=r2;
+ return ret;
+}
+
+int
item_coord_get_pro(struct item *it, struct coord *c, int count, enum projection to)
{
int ret=item_coord_get(it, c, count);