navit 0.5.3-trunk
Loading...
Searching...
No Matches
coord.h
Go to the documentation of this file.
1
20#ifndef NAVIT_COORD_H
21#define NAVIT_COORD_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26#include "config.h"
27#include "projection.h"
28#include <math.h>
29#include <stdio.h>
30
31#define coord_is_equal(a, b) ((a).x == (b).x && (a).y == (b).y)
32
34struct coord {
35 int x;
36 int y;
37};
38
46struct lcoord {
47 struct coord c;
48 char *label;
49};
50
52struct pcoord {
54 int x;
55 int y;
56};
57
58struct coord_rect {
59 struct coord lu;
60 struct coord rl;
61};
62
63#ifdef AVOID_FLOAT
69typedef float navit_float;
70# define navit_sin(x) sinf(x)
71# define navit_cos(x) cosf(x)
72# define navit_tan(x) tanf(x)
73# define navit_atan(x) atanf(x)
74# define navit_acos(x) acosf(x)
75# define navit_asin(x) asinf(x)
76# define navit_sqrt(x) sqrtf(x)
77#else
78typedef double navit_float;
79# define navit_sin(x) sin(x)
80# define navit_cos(x) cos(x)
81# define navit_tan(x) tan(x)
82# define navit_atan(x) atan(x)
83# define navit_acos(x) acos(x)
84# define navit_asin(x) asin(x)
85# define navit_sqrt(x) sqrt(x)
86#endif
87
89struct coord_d {
90 double x;
91 double y;
92};
93
99
106
142
143struct attr;
144
145struct coord *coord_get(unsigned char **p);
146struct coord *coord_new(int x, int y);
147struct coord *coord_new_from_attrs(struct attr *parent, struct attr **attrs);
148void coord_destroy(struct coord *c);
149int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret);
150int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *c_ret);
151void coord_print(enum projection pro, struct coord *c, FILE *out);
152struct coord_rect *coord_rect_new(struct coord *lu, struct coord *rl);
153void coord_rect_destroy(struct coord_rect *r);
154int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2);
155int coord_rect_contains(struct coord_rect *r, struct coord *c);
156void coord_rect_extend(struct coord_rect *r, struct coord *c);
157void coord_format_with_sep(float lat, float lng, enum coord_format fmt, char *buffer, int size, const char *sep);
158void coord_format(float lat, float lng, enum coord_format fmt, char *buffer, int size);
159void coord_geo_format_short(const struct coord_geo *gc, char *buffer, int size, char *sep);
160void pcoord_format_degree_short(const struct pcoord *pc, char *buffer, int size, char *sep);
161void pcoord_format_absolute(const struct pcoord *pc, char *buffer, int size, char *sep);
162char *coordinates_geo(const struct coord_geo *gc, char sep);
163
164/* prototypes */
165struct coord *coord_get(unsigned char **p);
166struct coord *coord_new(int x, int y);
167struct coord *coord_new_from_attrs(struct attr *parent, struct attr **attrs);
168void coord_destroy(struct coord *c);
169struct coord_rect *coord_rect_new(struct coord *lu, struct coord *rl);
170void coord_rect_destroy(struct coord_rect *r);
171int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2);
172int coord_rect_contains(struct coord_rect *r, struct coord *c);
173void coord_rect_extend(struct coord_rect *r, struct coord *c);
174int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret);
175int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *pc_ret);
176void coord_print(enum projection pro, struct coord *c, FILE *out);
177void coord_format(float lat, float lng, enum coord_format fmt, char *buffer, int size);
178unsigned int coord_hash(const void *key);
179int coord_equal(const void *a, const void *b);
180/* end of prototypes */
181#ifdef __cplusplus
182}
183#endif
184#endif
double navit_float
Definition coord.h:78
coord_format
Definition coord.h:111
@ DEGREES_MINUTES
Definition coord.h:128
@ DEGREES_DECIMAL
Definition coord.h:122
@ DEGREES_MINUTES_SECONDS
Definition coord.h:134
@ DEGREES_MINUTES_SECONDS_BRIEF
Definition coord.h:140
@ DEGREES_DECIMAL_ABSOLUTE
Definition coord.h:116
char * coordinates_geo(const struct coord_geo *gc, char sep)
struct triple lng lat
Definition garmin_img.c:0
int size
Definition garmin_img.c:3
int coord_equal(const void *a, const void *b)
Test if two struct coord structures are equal.
Definition coord.c:509
struct coord * coord_get(unsigned char **p)
Definition coord.c:43
void coord_rect_extend(struct coord_rect *r, struct coord *c)
Definition coord.c:123
void pcoord_format_absolute(const struct pcoord *pc, char *buffer, int size, char *sep)
Converts an integer mercator coordinate pair to its string representation.
Definition coord.c:480
unsigned int coord_hash(const void *key)
Generate a hash from a struct coord pointed by key.
Definition coord.c:496
void pcoord_format_degree_short(const struct pcoord *pc, char *buffer, int size, char *sep)
Converts an integer mercator coordinate pair to its string representation.
Definition coord.c:459
void coord_print(enum projection pro, struct coord *c, FILE *out)
Definition coord.c:292
int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret)
Definition coord.c:156
int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *c_ret)
Definition coord.c:282
struct coord_rect * coord_rect_new(struct coord *lu, struct coord *rl)
Definition coord.c:71
int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2)
Definition coord.c:87
void coord_format_with_sep(float lat, float lng, enum coord_format fmt, char *buffer, int size, const char *sep)
Converts a lat/lon into a text formatted text string.
Definition coord.c:332
struct coord * coord_new_from_attrs(struct attr *parent, struct attr **attrs)
Definition coord.c:58
void coord_destroy(struct coord *c)
Definition coord.c:67
void coord_geo_format_short(const struct coord_geo *gc, char *buffer, int size, char *sep)
Converts a WGS84 coordinate pair to its string representation.
Definition coord.c:443
int coord_rect_contains(struct coord_rect *r, struct coord *c)
Definition coord.c:109
struct coord * coord_new(int x, int y)
Definition coord.c:49
void coord_rect_destroy(struct coord_rect *r)
Definition coord.c:83
unsigned char p[5]
Definition mg.h:2
struct navit struct traffic_methods struct attr ** attrs
Definition plugin_def.h:36
static struct pcoord c
Definition popup.c:372
projection
Definition projection.h:23
Definition attr.h:138
Definition maptool.h:177
A double mercator coordinate.
Definition coord.h:89
double x
Definition coord.h:90
double y
Definition coord.h:91
A cartesian coordinate.
Definition coord.h:101
navit_float z
Definition coord.h:104
navit_float y
Definition coord.h:103
navit_float x
Definition coord.h:102
A WGS84 coordinate.
Definition coord.h:95
navit_float lat
Definition coord.h:97
navit_float lng
Definition coord.h:96
Definition coord.h:58
struct coord rl
Definition coord.h:60
struct coord lu
Definition coord.h:59
Definition coord.h:34
int y
Definition coord.h:36
int x
Definition coord.h:35
An integer mercator coordinate packed with a text label.
Definition coord.h:46
struct coord c
Definition coord.h:47
char * label
Definition coord.h:48
Definition gpx2navit_txt.h:50
Definition coord.h:52
int y
Definition coord.h:55
enum projection pro
Definition coord.h:53
int x
Definition coord.h:54
unsigned char key
Definition tree.c:0