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
24#ifdef __cplusplus
25extern "C" {
26#endif
27#include <stdio.h>
28#include "config.h"
29#include "projection.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
64#ifdef AVOID_FLOAT
70typedef float navit_float;
71#define navit_sin(x) sinf(x)
72#define navit_cos(x) cosf(x)
73#define navit_tan(x) tanf(x)
74#define navit_atan(x) atanf(x)
75#define navit_acos(x) acosf(x)
76#define navit_asin(x) asinf(x)
77#define navit_sqrt(x) sqrtf(x)
78#else
79typedef double navit_float;
80#define navit_sin(x) sin(x)
81#define navit_cos(x) cos(x)
82#define navit_tan(x) tan(x)
83#define navit_atan(x) atan(x)
84#define navit_acos(x) acos(x)
85#define navit_asin(x) asin(x)
86#define navit_sqrt(x) sqrt(x)
87#endif
88
89
91struct coord_d {
92 double x;
93 double y;
94};
95
101
108
145
146enum projection;
147struct attr;
148
149struct coord * coord_get(unsigned char **p);
150struct coord * coord_new(int x, int y);
151struct coord * coord_new_from_attrs(struct attr *parent, struct attr **attrs);
152void coord_destroy(struct coord *c);
153int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret);
154int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *c_ret);
155void coord_print(enum projection pro, struct coord *c, FILE *out);
156struct coord_rect * coord_rect_new(struct coord *lu, struct coord *rl);
157void coord_rect_destroy(struct coord_rect *r);
158int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2);
159int coord_rect_contains(struct coord_rect *r, struct coord *c);
160void coord_rect_extend(struct coord_rect *r, struct coord *c);
161void coord_format_with_sep(float lat,float lng, enum coord_format fmt, char *buffer, int size, const char *sep);
162void coord_format(float lat,float lng, enum coord_format fmt, char *buffer, int size);
163void coord_geo_format_short(const struct coord_geo *gc, char *buffer, int size, char *sep);
164void pcoord_format_degree_short(const struct pcoord *pc, char *buffer, int size, char *sep);
165void pcoord_format_absolute(const struct pcoord *pc, char *buffer, int size, char *sep);
166char *coordinates_geo(const struct coord_geo *gc, char sep);
167
168/* prototypes */
169enum coord_format;
170enum projection;
171struct attr;
172struct coord;
173struct coord_rect;
174struct pcoord;
175struct coord *coord_get(unsigned char **p);
176struct coord *coord_new(int x, int y);
177struct coord *coord_new_from_attrs(struct attr *parent, struct attr **attrs);
178void coord_destroy(struct coord *c);
179struct coord_rect *coord_rect_new(struct coord *lu, struct coord *rl);
180void coord_rect_destroy(struct coord_rect *r);
181int coord_rect_overlap(struct coord_rect *r1, struct coord_rect *r2);
182int coord_rect_contains(struct coord_rect *r, struct coord *c);
183void coord_rect_extend(struct coord_rect *r, struct coord *c);
184int coord_parse(const char *c_str, enum projection pro, struct coord *c_ret);
185int pcoord_parse(const char *c_str, enum projection pro, struct pcoord *pc_ret);
186void coord_print(enum projection pro, struct coord *c, FILE *out);
187void coord_format(float lat, float lng, enum coord_format fmt, char *buffer, int size);
188unsigned int coord_hash(const void *key);
189int coord_equal(const void *a, const void *b);
190/* end of prototypes */
191#ifdef __cplusplus
192}
193#endif
194#endif
double navit_float
Definition coord.h:79
coord_format
Definition coord.h:114
@ DEGREES_MINUTES
Definition coord.h:131
@ DEGREES_DECIMAL
Definition coord.h:125
@ DEGREES_MINUTES_SECONDS
Definition coord.h:137
@ DEGREES_MINUTES_SECONDS_BRIEF
Definition coord.h:143
@ DEGREES_DECIMAL_ABSOLUTE
Definition coord.h:119
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
static struct pcoord c
Definition popup.c:375
projection
Definition projection.h:23
Definition attr.h:136
Definition maptool.h:169
A double mercator coordinate.
Definition coord.h:91
double x
Definition coord.h:92
double y
Definition coord.h:93
A cartesian coordinate.
Definition coord.h:103
navit_float z
Definition coord.h:106
navit_float y
Definition coord.h:105
navit_float x
Definition coord.h:104
A WGS84 coordinate.
Definition coord.h:97
navit_float lat
Definition coord.h:99
navit_float lng
Definition coord.h:98
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:51
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