00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GV_GEOMPROCS_H
00021 #define GV_GEOMPROCS_H
00022
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00027 extern point pointof(int, int);
00028 extern pointf pointfof(double, double);
00029
00030 extern pointf cvt2ptf(point);
00031 extern point cvt2pt(pointf);
00032
00033 extern point add_points(point, point);
00034 extern pointf add_pointfs(pointf, pointf);
00035
00036 extern point sub_points(point, point);
00037 extern pointf sub_pointfs(pointf, pointf);
00038
00039 extern point exch_xy(point p);
00040 extern pointf exch_xyf(pointf p);
00041
00042 extern box boxof(int llx, int lly, int urx, int ury);
00043 extern boxf boxfof(double llx, double lly, double urx, double ury);
00044
00045 extern box mkbox(point, point);
00046 extern boxf mkboxf(pointf, pointf);
00047
00048 extern box box_bb(box, box);
00049 extern boxf boxf_bb(boxf, boxf);
00050
00051 extern box box_intersect(box, box);
00052 extern boxf boxf_intersect(boxf, boxf);
00053
00054 extern int box_overlap(box, box);
00055 extern int boxf_overlap(boxf, boxf);
00056
00057 extern int box_contains(box, box);
00058 extern int boxf_contains(boxf, boxf);
00059
00060 extern box flip_rec_box(box b, point p);
00061
00062 extern double ptToLine2 (pointf l1, pointf l2, pointf p);
00063
00064 extern int lineToBox(pointf p1, pointf p2, boxf b);
00065
00066 extern point ccwrotatep(point p, int ccwrot);
00067 extern pointf ccwrotatepf(pointf p, int ccwrot);
00068
00069 extern point cwrotatep(point p, int cwrot);
00070 extern pointf cwrotatepf(pointf p, int cwrot);
00071
00072 extern void rect2poly(pointf *p);
00073
00074 #ifdef __cplusplus
00075 }
00076 #endif
00077
00078 #endif