navit 0.5.3-trunk
Loading...
Searching...
No Matches
geom.h
Go to the documentation of this file.
1
19#ifndef NAVIT_GEOM_H
20#define NAVIT_GEOM_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#include "attr.h"
27#include "config.h"
28#include "coord.h"
29#include "item.h"
30#include <glib.h>
31
32#define sq(x) ((double)(x) * (x))
33
34struct rect {
35 struct coord l, h;
36};
37
46
51/* prototypes */
52void geom_coord_copy(struct coord *from, struct coord *to, int count, int reverse);
53void geom_coord_revert(struct coord *c, int count);
54int geom_line_middle(struct coord *p, int count, struct coord *c);
55long long geom_poly_area(struct coord *c, int count);
56int geom_poly_centroid(struct coord *c, int count, struct coord *r);
57int geom_poly_point_inside(struct coord *cp, int count, struct coord *c);
58int geom_poly_closest_point(struct coord *pl, int count, struct coord *p, struct coord *c);
59GList *geom_poly_segments_insert(GList *list, struct geom_poly_segment *first, struct geom_poly_segment *second,
60 struct geom_poly_segment *third);
61void geom_poly_segment_destroy(struct geom_poly_segment *seg, void *unused);
62GList *geom_poly_segments_remove(GList *list, struct geom_poly_segment *seg);
65int geom_poly_segments_point_inside(GList *in, struct coord *c);
66int geom_clip_line_code(struct coord *p1, struct coord *p2, struct rect *r);
67int geom_is_inside(struct coord *p, struct rect *r, int edge);
68void geom_poly_intersection(struct coord *p1, struct coord *p2, struct rect *r, int edge, struct coord *ret);
69void geom_init(void);
70/* end of prototypes */
71#ifdef __cplusplus
72}
73#endif
74
75#endif
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
GList * geom_poly_segments_remove(GList *list, struct geom_poly_segment *seg)
Definition geom.c:236
int geom_clip_line_code(struct coord *p1, struct coord *p2, struct rect *r)
Definition geom.c:350
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
void geom_coord_copy(struct coord *from, struct coord *to, int count, int reverse)
Definition geom.c:23
GList * geom_poly_segments_sort(GList *in, enum geom_poly_segment_type type)
Definition geom.c:273
int geom_is_inside(struct coord *p, struct rect *r, int edge)
Definition geom.c:400
geom_poly_segment_type
Definition geom.h:38
@ geom_poly_segment_type_way_unknown
Definition geom.h:44
@ geom_poly_segment_type_none
Definition geom.h:39
@ geom_poly_segment_type_way_outer
Definition geom.h:41
@ geom_poly_segment_type_way_right_side
Definition geom.h:43
@ geom_poly_segment_type_way_left_side
Definition geom.h:42
@ geom_poly_segment_type_way_inner
Definition geom.h:40
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
static struct pcoord c
Definition popup.c:375
Definition coord.h:33
Definition ch.c:47
Definition geom.h:47
struct coord * first
Definition geom.h:49
enum geom_poly_segment_type type
Definition geom.h:48
struct coord * last
Definition geom.h:49
Definition geom.h:34
struct coord l h
Definition geom.h:35