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 <stdio.h>
29
30#define coord_is_equal(a, b) ((a).x == (b).x && (a).y == (b).y)
31
33struct coord {
34 int x;
35 int y;
36};
37
45struct lcoord {
46 struct coord c;
47 char *label;
48};
49
51struct pcoord {
53 int x;
54 int y;
55};
56
57struct coord_rect {
58 struct coord lu;
59 struct coord rl;
60};
61
62#ifdef AVOID_FLOAT
68typedef float navit_float;
69# define navit_sin(x) sinf(x)
70# define navit_cos(x) cosf(x)
71# define navit_tan(x) tanf(x)
72# define navit_atan(x) atanf(x)
73# define navit_acos(x) acosf(x)
74# define navit_asin(x) asinf(x)
75# define navit_sqrt(x) sqrtf(x)
76#else
77typedef double navit_float;
78# define navit_sin(x) sin(x)
79# define navit_cos(x) cos(x)
80# define navit_tan(x) tan(x)
81# define navit_atan(x) atan(x)
82# define navit_acos(x) acos(x)
83# define navit_asin(x) asin(x)
84# define navit_sqrt(x) sqrt(x)
85#endif
86
88struct coord_d {
89 double x;
90 double y;
91};
92
98
105
141
142struct attr;
143
144struct coord *coord_get(unsigned char **p);
145struct coord *coord_new(int x, int y);
146struct coord *coord_new_from_attrs(struct attr *parent, struct attr **attrs);
147void coord_destroy(struct coord *c);
148int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret);
149int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *c_ret);
150void coord_print(enum projection pro, struct coord *c, FILE *out);
151struct coord_rect *coord_rect_new(struct coord *lu, struct coord *rl);
152void coord_rect_destroy(struct coord_rect *r);
153int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2);
154int coord_rect_contains(struct coord_rect *r, struct coord *c);
155void coord_rect_extend(struct coord_rect *r, struct coord *c);
156void coord_format_with_sep(float lat, float lng, enum coord_format fmt, char *buffer, int size, const char *sep);
157void coord_format(float lat, float lng, enum coord_format fmt, char *buffer, int size);
158void coord_geo_format_short(const struct coord_geo *gc, char *buffer, int size, char *sep);
159void pcoord_format_degree_short(const struct pcoord *pc, char *buffer, int size, char *sep);
160void pcoord_format_absolute(const struct pcoord *pc, char *buffer, int size, char *sep);
161char *coordinates_geo(const struct coord_geo *gc, char sep);
162
163/* prototypes */
164struct coord *coord_get(unsigned char **p);
165struct coord *coord_new(int x, int y);
166struct coord *coord_new_from_attrs(struct attr *parent, struct attr **attrs);
167void coord_destroy(struct coord *c);
168struct coord_rect *coord_rect_new(struct coord *lu, struct coord *rl);
169void coord_rect_destroy(struct coord_rect *r);
170int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2);
171int coord_rect_contains(struct coord_rect *r, struct coord *c);
172void coord_rect_extend(struct coord_rect *r, struct coord *c);
173int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret);
174int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *pc_ret);
175void coord_print(enum projection pro, struct coord *c, FILE *out);
176void coord_format(float lat, float lng, enum coord_format fmt, char *buffer, int size);
177unsigned int coord_hash(const void *key);
178int coord_equal(const void *a, const void *b);
179/* end of prototypes */
180#ifdef __cplusplus
181}
182#endif
183#endif
double navit_float
Definition coord.h:77
coord_format
Definition coord.h:110
@ DEGREES_MINUTES
Definition coord.h:127
@ DEGREES_DECIMAL
Definition coord.h:121
@ DEGREES_MINUTES_SECONDS
Definition coord.h:133
@ DEGREES_MINUTES_SECONDS_BRIEF
Definition coord.h:139
@ DEGREES_DECIMAL_ABSOLUTE
Definition coord.h:115
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:500
struct coord * coord_get(unsigned char **p)
Definition coord.c:42
void coord_rect_extend(struct coord_rect *r, struct coord *c)
Definition coord.c:120
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:471
unsigned int coord_hash(const void *key)
Generate a hash from a struct coord pointed by key.
Definition coord.c:487
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:450
void coord_print(enum projection pro, struct coord *c, FILE *out)
Definition coord.c:285
int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret)
Definition coord.c:148
int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *c_ret)
Definition coord.c:275
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:88
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:326
struct coord * coord_new_from_attrs(struct attr *parent, struct attr **attrs)
Definition coord.c:57
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:434
int coord_rect_contains(struct coord_rect *r, struct coord *c)
Definition coord.c:106
struct coord * coord_new(int x, int y)
Definition coord.c:48
void coord_rect_destroy(struct coord_rect *r)
Definition coord.c:84
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:375
projection
Definition projection.h:23
Definition attr.h:138
Definition maptool.h:173
A double mercator coordinate.
Definition coord.h:88
double x
Definition coord.h:89
double y
Definition coord.h:90
A cartesian coordinate.
Definition coord.h:100
navit_float z
Definition coord.h:103
navit_float y
Definition coord.h:102
navit_float x
Definition coord.h:101
A WGS84 coordinate.
Definition coord.h:94
navit_float lat
Definition coord.h:96
navit_float lng
Definition coord.h:95
Definition coord.h:57
struct coord rl
Definition coord.h:59
struct coord lu
Definition coord.h:58
Definition coord.h:33
int y
Definition coord.h:35
int x
Definition coord.h:34
An integer mercator coordinate packed with a text label.
Definition coord.h:45
struct coord c
Definition coord.h:46
char * label
Definition coord.h:47
Definition gpx2navit_txt.h:50
Definition coord.h:51
int y
Definition coord.h:54
enum projection pro
Definition coord.h:52
int x
Definition coord.h:53
unsigned char key
Definition tree.c:0