summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Wildemann <gta04@metalstrolche.de>2021-12-24 13:24:54 +0100
committerStefan Wildemann <gta04@metalstrolche.de>2021-12-24 13:24:54 +0100
commit195ed01b2ac1dc5b6818c17a82fe48608135572e (patch)
treeade88ff515cba3763fc9ac00ec2f0a392ec32ba5
parent54ffa09cb9bfcd32a85a7681270b17e8f5443de1 (diff)
downloadnavit-cliff_spike_graphic.tar.gz
review fixes.cliff_spike_graphic
Add changes requested by review, plus add paranoia check on xml parameter.
-rw-r--r--navit/graphics.c11
-rw-r--r--navit/layout.c7
2 files changed, 11 insertions, 7 deletions
diff --git a/navit/graphics.c b/navit/graphics.c
index 46abe062f..08de16a1e 100644
--- a/navit/graphics.c
+++ b/navit/graphics.c
@@ -1723,9 +1723,9 @@ static void display_draw_arrows(struct graphics *gra, struct display_context *dc
static void display_draw_spike(struct point *p, navit_float dx, navit_float dy, navit_float width,
struct display_context *dc,
struct graphics *gra) {
- struct point pnt[3];
+ struct point pnt[2];
navit_float l=navit_sqrt(dx*dx+dy*dy);
- pnt[0]=pnt[1]=pnt[2]=*p;
+ pnt[0]=pnt[1]=*p;
pnt[1].x+=(-dy/l)*width;
pnt[1].y+=(dx/l)*width;
graphics_draw_lines(gra, dc->gc, pnt, 2);
@@ -1758,16 +1758,17 @@ static void display_draw_spikes(struct graphics *gra, struct display_context *dc
dw=width[i+1] - width[i];
/* calculate the length of the way segment */
l=navit_sqrt(dx*dx+dy*dy);
- if (l) {
+ if (l != 0) {
/* length is not zero */
if(l > width[i]) {
- int a =0;
+ /* length is bigger than the length of one spike */
+ int a;
int spike_count = l / distance;
/* calculate the vector per spike */
dx=dx/spike_count;
dy=dy/spike_count;
dw=dw/spike_count;
- for( a=0; a < spike_count; a+=1 ) {
+ for( a=0; a < spike_count; a++ ) {
p=pnt[i];
p.x+=dx*a;
p.y+=dy*a;
diff --git a/navit/layout.c b/navit/layout.c
index dcc8b099d..2300ab68d 100644
--- a/navit/layout.c
+++ b/navit/layout.c
@@ -459,9 +459,12 @@ static void element_set_spikes_width(struct element *e, struct attr **attrs) {
static void element_set_spikes_distance(struct element *e, struct attr **attrs) {
struct attr *distance;
distance=attr_search(attrs, attr_distance);
- if (distance)
+ if (distance) {
e->u.spikes.distance=distance->u.num;
- else
+ /* paranoia check. We divide with that value */
+ if(e->u.spikes.distance < 1)
+ e->u.spikes.distance = 1;
+ } else
e->u.spikes.distance=10;
}