navit  0.5.3-trunk
geom.h
Go to the documentation of this file.
1 
19 #ifndef NAVIT_GEOM_H
20 #define NAVIT_GEOM_H
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #include <glib.h>
27 #include "config.h"
28 #include "coord.h"
29 #include "item.h"
30 #include "attr.h"
31 
32 
33 #define sq(x) ((double)(x)*(x))
34 
35 struct rect {
36  struct coord l,h;
37 };
38 
46 
47 };
48 
51  struct coord *first,*last;
52 };
53 /* prototypes */
54 void geom_coord_copy(struct coord *from, struct coord *to, int count, int reverse);
55 void geom_coord_revert(struct coord *c, int count);
56 int geom_line_middle(struct coord *p, int count, struct coord *c);
57 long long geom_poly_area(struct coord *c, int count);
58 int geom_poly_centroid(struct coord *c, int count, struct coord *r);
59 int geom_poly_point_inside(struct coord *cp, int count, struct coord *c);
60 int geom_poly_closest_point(struct coord *pl, int count, struct coord *p, struct coord *c);
61 GList *geom_poly_segments_insert(GList *list, struct geom_poly_segment *first, struct geom_poly_segment *second,
62  struct geom_poly_segment *third);
63 void geom_poly_segment_destroy(struct geom_poly_segment *seg, void * unused);
65 int geom_poly_segment_compatible(struct geom_poly_segment *s1, struct geom_poly_segment *s2, int dir);
68 int geom_clip_line_code(struct coord *p1, struct coord *p2, struct rect *r);
69 int geom_is_inside(struct coord *p, struct rect *r, int edge);
70 void geom_poly_intersection(struct coord *p1, struct coord *p2, struct rect *r, int edge, struct coord *ret);
71 void geom_init(void);
72 /* end of prototypes */
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif
78 
char type[3]
Definition: garmin_img.c:2
static double s1
Definition: geod_for.c:27
void geom_init(void)
Definition: geom.c:438
int geom_line_middle(struct coord *p, int count, struct coord *c)
Definition: geom.c:41
GList * geom_poly_segments_insert(GList *list, struct geom_poly_segment *first, struct geom_poly_segment *second, struct geom_poly_segment *third)
Definition: geom.c:194
int geom_clip_line_code(struct coord *p1, struct coord *p2, struct rect *r)
Definition: geom.c:350
GList * geom_poly_segments_remove(GList *list, struct geom_poly_segment *seg)
Definition: geom.c:236
int geom_poly_segments_point_inside(GList *in, struct coord *c)
Definition: geom.c:308
int geom_poly_closest_point(struct coord *pl, int count, struct coord *p, struct coord *c)
Definition: geom.c:138
int geom_poly_point_inside(struct coord *cp, int count, struct coord *c)
Definition: geom.c:179
int geom_poly_centroid(struct coord *c, int count, struct coord *r)
Definition: geom.c:103
void geom_poly_intersection(struct coord *p1, struct coord *p2, struct rect *r, int edge, struct coord *ret)
Definition: geom.c:415
GList * geom_poly_segments_sort(GList *in, enum geom_poly_segment_type type)
Definition: geom.c:273
void geom_coord_copy(struct coord *from, struct coord *to, int count, int reverse)
Definition: geom.c:23
int geom_is_inside(struct coord *p, struct rect *r, int edge)
Definition: geom.c:400
geom_poly_segment_type
Definition: geom.h:39
@ geom_poly_segment_type_way_unknown
Definition: geom.h:45
@ geom_poly_segment_type_none
Definition: geom.h:40
@ geom_poly_segment_type_way_outer
Definition: geom.h:42
@ geom_poly_segment_type_way_right_side
Definition: geom.h:44
@ geom_poly_segment_type_way_left_side
Definition: geom.h:43
@ geom_poly_segment_type_way_inner
Definition: geom.h:41
void geom_poly_segment_destroy(struct geom_poly_segment *seg, void *unused)
Definition: geom.c:231
int geom_poly_segment_compatible(struct geom_poly_segment *s1, struct geom_poly_segment *s2, int dir)
Definition: geom.c:244
long long geom_poly_area(struct coord *c, int count)
Definition: geom.c:85
void geom_coord_revert(struct coord *c, int count)
Definition: geom.c:73
unsigned char p[5]
Definition: mg.h:2
struct _GList GList
Definition: navit.h:30
static struct pcoord c
Definition: popup.c:375
Definition: coord.h:34
Definition: ch.c:47
Definition: geom.h:49
struct coord * first
Definition: geom.h:51
enum geom_poly_segment_type type
Definition: geom.h:50
struct coord * last
Definition: geom.h:51
Definition: geom.h:35
struct coord l h
Definition: geom.h:36