From: <za...@us...> - 2008-11-17 00:10:11
|
Revision: 1731 http://navit.svn.sourceforge.net/navit/?rev=1731&view=rev Author: zaxl Date: 2008-11-17 00:10:08 +0000 (Mon, 17 Nov 2008) Log Message: ----------- Fix:core: Save some sqrts in label_line Modified Paths: -------------- trunk/navit/navit/graphics.c Modified: trunk/navit/navit/graphics.c =================================================================== --- trunk/navit/navit/graphics.c 2008-11-16 10:13:01 UTC (rev 1730) +++ trunk/navit/navit/graphics.c 2008-11-17 00:10:08 UTC (rev 1731) @@ -608,18 +608,21 @@ */ static void label_line(struct graphics *gra, struct graphics_gc *fg, struct graphics_gc *bg, struct graphics_font *font, struct point *p, int count, char *label) { - int i,x,y,tl; - double dx,dy,l; + int i,x,y,tl,tlsq,l; + float lsq; + double dx,dy; struct point p_t; tl=strlen(label)*400; + tlsq = tl*tl; for (i = 0 ; i < count-1 ; i++) { dx=p[i+1].x-p[i].x; dx*=100; dy=p[i+1].y-p[i].y; dy*=100; - l=(int)sqrt((float)(dx*dx+dy*dy)); - if (l > tl) { + lsq = dx*dx+dy*dy; + if (lsq > tlsq) { + l=(int)sqrtf(lsq); x=p[i].x; y=p[i].y; if (dx < 0) { @@ -634,9 +637,9 @@ y+=dx*45/l/10; p_t.x=x; p_t.y=y; - #if 0 - printf("display_text: '%s', %d, %d, %d, %d %d\n", label, x, y, dx*0x10000/l, dy*0x10000/l, l); - #endif +#if 0 + dbg(0,"display_text: '%s', %d, %d, %d, %d %d\n", label, x, y, dx*0x10000/l, dy*0x10000/l, l); +#endif gra->meth.draw_text(gra->priv, fg->priv, bg->priv, font->priv, label, &p_t, dx*0x10000/l, dy*0x10000/l); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |