From: ellson Date: Tue, 18 Oct 2005 18:30:15 +0000 (+0000) Subject: separate boolean logic defs from types.h and macros.h X-Git-Tag: LAST_LIBGRAPH~32^2~7305 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=62f4c331aeccf0864e4c6d64fe94c6f3ec693e9a;p=graphviz separate boolean logic defs from types.h and macros.h --- diff --git a/lib/common/Makefile.am b/lib/common/Makefile.am index 8a17068a4..252404787 100644 --- a/lib/common/Makefile.am +++ b/lib/common/Makefile.am @@ -9,8 +9,9 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/lib/graph \ -I$(top_srcdir)/lib/cdt @GD_INCLUDES@ @EXPAT_INCLUDES@ @Z_INCLUDES@ -pkginclude_HEADERS = const.h globals.h htmllex.h htmltable.h macros.h \ - pointset.h render.h renderprocs.h types.h utils.h colortbl.h geom.h +pkginclude_HEADERS = logic.h geom.h const.h macros.h types.h globals.h \ + htmllex.h htmltable.h pointset.h render.h renderprocs.h \ + utils.h colortbl.h noinst_LTLIBRARIES = libcommon.la if !DISABLE_CODEGENS diff --git a/lib/common/Makefile.old b/lib/common/Makefile.old index 2a8998ade..0aef2071f 100644 --- a/lib/common/Makefile.old +++ b/lib/common/Makefile.old @@ -19,7 +19,7 @@ DEFINES = -DHAVE_CONFIG_H AWKDIR = $(ROOT)/awk HDRS = colortbl.h const.h globals.h macros.h render.h \ - renderprocs.h types.h utils.h geom.h + renderprocs.h types.h utils.h geom.h logic.h OBJS = args.o arrows.o gdusershape.o mapgen.o psgen.o svgusershape.o \ colxlate.o globals.o mifgen.o psusershape.o timing.o \ diff --git a/lib/common/geom.c b/lib/common/geom.c index 4216305dc..196167f2a 100644 --- a/lib/common/geom.c +++ b/lib/common/geom.c @@ -17,13 +17,9 @@ /* geometric functions (e.g. on points and boxes) with application to, but * no specific dependance on graphs */ -#include -#include #include - -#include "types.h" -#include "macros.h" -#include "const.h" +#include "logic.h" +#include "pathplan.h" #include "geom.h" point pointof(int x, int y) @@ -355,84 +351,98 @@ int lineToBox(pointf p1, pointf p2, boxf b) return -1; } -/* flip_ptf: - * Transform point => - * LR - rotate ccw by 90 - * BT - reflect across x axis - * RL - TB o LR - */ -point flip_pt(point p, int rankdir) +point ccwrotatep(point p, int ccwrot) { int x = p.x, y = p.y; - switch (rankdir) { - case RANKDIR_TB: + switch (ccwrot) { + case 0: break; - case RANKDIR_LR: + case 90: p.x = -y; p.y = x; break; - case RANKDIR_BT: + case 180: p.x = x; p.y = -y; break; - case RANKDIR_RL: + case 270: p.x = y; p.y = x; break; + default: + fprintf(stderr,"unsupported ccw rotation: %d degrees\n", ccwrot); } return p; } -/* flip_ptf: - * flip_pt for pointf type. - */ -pointf flip_ptf(pointf p, int rankdir) +pointf ccwrotatepf(pointf p, int ccwrot) { double x = p.x, y = p.y; - switch (rankdir) { - case RANKDIR_TB: + switch (ccwrot) { + case 0: break; - case RANKDIR_LR: + case 90: p.x = -y; p.y = x; break; - case RANKDIR_BT: + case 180: p.x = x; p.y = -y; break; - case RANKDIR_RL: + case 270: p.x = y; p.y = x; break; + default: + fprintf(stderr,"unsupported ccw rotation: %d degrees\n", ccwrot); } return p; } -/* invflip_pt: - * Transform point => - * LR - rotate cw by 90 - * BT - reflect across x axis - * RL - TB o LR - * Note that flip and invflip only differ on LR - */ -point invflip_pt(point p, int rankdir) +point cwrotatep(point p, int cwrot) { int x = p.x, y = p.y; - switch (rankdir) { - case RANKDIR_TB: + switch (cwrot) { + case 0: + break; + case 90: + p.x = y; + p.y = -x; + break; + case 180: + p.x = x; + p.y = -y; + break; + case 270: + p.x = y; + p.y = x; + break; + default: + fprintf(stderr,"unsupported cw rotation: %d degrees\n", cwrot); + } + return p; +} + +pointf cwrotatepf(pointf p, int cwrot) +{ + double x = p.x, y = p.y; + switch (cwrot) { + case 0: break; - case RANKDIR_LR: + case 90: p.x = y; p.y = -x; break; - case RANKDIR_BT: + case 180: p.x = x; p.y = -y; break; - case RANKDIR_RL: + case 270: p.x = y; p.y = x; break; + default: + fprintf(stderr,"unsupported cw rotation: %d degrees\n", cwrot); } return p; } diff --git a/lib/common/geom.h b/lib/common/geom.h index 9d738c7bf..e52f0f729 100644 --- a/lib/common/geom.h +++ b/lib/common/geom.h @@ -17,41 +17,119 @@ /* geometric functions (e.g. on points and boxes) with application to, but * no specific dependance on graphs */ +#ifndef GV_GEOM_H +#define GV_GEOM_H + +#include "pathplan.h" + #ifdef __cplusplus extern "C" { #endif + +typedef struct point { int x, y; } point; + +typedef Ppoint_t pointf; + +typedef struct box { point LL, UR; } box; + +typedef struct boxf { pointf LL, UR; } boxf; + +#ifdef MIN +#undef MIN +#endif +#define MIN(a,b) ((a)<(b)?(a):(b)) - extern point pointof(int, int); - extern pointf cvt2ptf(point); - extern point cvt2pt(pointf); - extern point add_points(point, point); - extern pointf add_pointfs(pointf, pointf); - extern point sub_points(point, point); - extern pointf sub_pointfs(pointf, pointf); - extern point exch_xy(point p); - extern pointf exch_xyf(pointf p); - - extern box boxof(int llx, int lly, int urx, int ury); - extern boxf boxfof(double llx, double lly, double urx, double ury); - extern box mkbox(point, point); - extern boxf mkboxf(pointf, pointf); - extern box box_bb(box, box); - extern boxf boxf_bb(boxf, boxf); - extern box box_intersect(box, box); - extern boxf boxf_intersect(boxf, boxf); - extern boolean box_overlap(box, box); - extern boolean boxf_overlap(boxf, boxf); - extern boolean box_contains(box, box); - extern boolean boxf_contains(boxf, boxf); - extern box flip_rec_box(box b, point p); - - extern int lineToBox(pointf p1, pointf p2, boxf b); - extern double dist2(pointf p, pointf q); - - extern point flip_pt(point p, int rankdir); - extern pointf flip_ptf(pointf p, int rankdir); - extern point invflip_pt(point p, int rankdir); +#ifdef MAX +#undef MAX +#endif +#define MAX(a,b) ((a)>(b)?(a):(b)) + +#ifdef ABS +#undef ABS +#endif +#define ABS(a) ((a) >= 0 ? (a) : -(a)) + +#ifndef MAXINT +#define MAXINT ((int)(~(unsigned)0 >> 1)) +#endif +#ifndef MAXSHORT +#define MAXSHORT (0x7fff) +#endif +#ifndef MAXDOUBLE +#define MAXDOUBLE 1.7976931348623157e+308 +#endif +#ifndef MAXFLOAT +#define MAXFLOAT ((float)3.40282347e+38) +#endif + +#ifdef BETWEEN +#undef BETWEEN +#endif +#define BETWEEN(a,b,c) (((a) <= (b)) && ((b) <= (c))) + +/* true if point p is inside box b */ +#define INSIDE(p,b) (BETWEEN((b).LL.x,(p).x,(b).UR.x) && BETWEEN((b).LL.y,(p).y,(b).UR.y)) +/* true if boxes b0 and b1 overlap */ +#define OVERLAP(b0,b1) (((b0).UR.x >= (b1).LL.x) && ((b1).UR.x >= (b0).LL.x) && ((b0).UR.y >= (b1).LL.y) && ((b1).UR.y >= (b0).LL.y)) +/* true if box b0 completely contains b1*/ +#define CONTAINS(b0,b1) (((b0).UR.x >= (b1).UR.x) && ((b0).UR.y >= (b1).UR.y) && ((b0).LL.x <= (b1).LL.x) && ((b0).LL.y <= (b1).LL.y)) + +/* expand box b as needed to enclose point p */ +#define EXPANDBP(b, p) (b.LL.x = MIN(b.LL.x, p.x), b.LL.y = MIN(b.LL.y, p.y), b.UR.x = MAX(b.UR.x, p.x), b.UR.y = MAX(b.UR.y, p.y)) +/* expand box b0 as needed to enclose box b1 */ +#define EXPANDBB(b0, b1) (b0.LL.x = MIN(b0.LL.x, b1.LL.x), b0.LL.y = MIN(b0.LL.y, b1.LL.y), b0.UR.x = MAX(b0.UR.x, b1.UR.x), b0.UR.y = MAX(b0.UR.y, b1.UR.y)) + +#define ROUND(f) ((f>=0)?(int)(f + .5):(int)(f - .5)) +#define RADIANS(deg) ((deg)/180.0 * PI) +#define DEGREES(rad) ((rad)/PI * 180.0) + +#define SQR(v) ((v) * (v)) +#define DIST2(p1,p2) (SQR((p1.x) - (p2.x))) + (SQR((p1.y) - (p2.y))) +#define DIST(p1,p2) (sqrt(DIST2((p1),(p2)))) + +#define POINTS_PER_INCH 72 +#define POINTS(f_inch) (ROUND((f_inch)*POINTS_PER_INCH)) +#define PS2INCH(ps) ((ps)/(double)POINTS_PER_INCH) + +#define P2PF(p, pf) (pf.x = p.x, pf.y = p.y) +#define PF2P(pf, p) (p.x = ROUND (pf.x), p.y = ROUND (pf.y)) +#define B2BF(b, bf) (bf.LL.x = b.LL.x, bf.LL.y = b.LL.y, bf.UR.x = b.UR.x, bf.UR.y = b.UR.y) +#define BF2B(bf, b) (b.LL.x = ROUND (bf.LL.x), b.LL.y = ROUND (bf.LL.y), b.UR.x = ROUND (bf.UR.x), b.UR.y = ROUND (bf.UR.y)) + +extern point pointof(int, int); +extern pointf cvt2ptf(point); +extern point cvt2pt(pointf); +extern point add_points(point, point); +extern pointf add_pointfs(pointf, pointf); +extern point sub_points(point, point); +extern pointf sub_pointfs(pointf, pointf); +extern point exch_xy(point p); +extern pointf exch_xyf(pointf p); + +extern box boxof(int llx, int lly, int urx, int ury); +extern boxf boxfof(double llx, double lly, double urx, double ury); +extern box mkbox(point, point); +extern boxf mkboxf(pointf, pointf); +extern box box_bb(box, box); +extern boxf boxf_bb(boxf, boxf); +extern box box_intersect(box, box); +extern boxf boxf_intersect(boxf, boxf); +extern boolean box_overlap(box, box); +extern boolean boxf_overlap(boxf, boxf); +extern boolean box_contains(box, box); +extern boolean boxf_contains(boxf, boxf); +extern box flip_rec_box(box b, point p); + +extern int lineToBox(pointf p1, pointf p2, boxf b); +extern double dist2(pointf p, pointf q); + +extern point ccwrotatep(point p, int ccwrot); +extern pointf ccwrotatepf(pointf p, int ccwrot); +extern point cwrotatep(point p, int cwrot); +extern pointf cwrotatepf(pointf p, int cwrot); #ifdef __cplusplus } #endif + +#endif diff --git a/lib/common/macros.h b/lib/common/macros.h index 55defae05..62015731d 100644 --- a/lib/common/macros.h +++ b/lib/common/macros.h @@ -17,26 +17,6 @@ #ifndef GV_MACROS_H #define GV_MACROS_H -#define NOT(v) (!(v)) -#ifndef FALSE -#define FALSE 0 -#endif -#ifndef TRUE -#define TRUE NOT(FALSE) -#endif - -#ifndef NOTUSED -#define NOTUSED(var) (void) var -#endif - -#ifndef NULL -#define NULL (void *)0 -#endif - -#ifndef NIL -#define NIL(type) ((type)0) -#endif - #ifdef DMALLOC #define NEW(t) (t*)calloc(1,sizeof(t)) #define N_NEW(n,t) (t*)calloc((n),sizeof(t)) @@ -55,63 +35,6 @@ #define ZALLOC(size,ptr,type,osize) (ptr? (type*)zrealloc(ptr,size,sizeof(type),osize):(type*)zmalloc((size)*sizeof(type))) #endif -#ifdef MIN -#undef MIN -#endif -#define MIN(a,b) ((a)<(b)?(a):(b)) - -#ifdef MAX -#undef MAX -#endif -#define MAX(a,b) ((a)>(b)?(a):(b)) - -#ifdef ABS -#undef ABS -#endif -#define ABS(a) ((a) >= 0 ? (a) : -(a)) - -#ifndef MAXINT -#define MAXINT ((int)(~(unsigned)0 >> 1)) -#endif -#ifndef MAXSHORT -#define MAXSHORT (0x7fff) -#endif -#ifndef MAXDOUBLE -#define MAXDOUBLE 1.7976931348623157e+308 -#endif -#ifndef MAXFLOAT -#define MAXFLOAT ((float)3.40282347e+38) -#endif - -#ifdef BETWEEN -#undef BETWEEN -#endif -#define BETWEEN(a,b,c) (((a) <= (b)) && ((b) <= (c))) - -/* true if point p is inside box b */ -#define INSIDE(p,b) (BETWEEN((b).LL.x,(p).x,(b).UR.x) && BETWEEN((b).LL.y,(p).y,(b).UR.y)) -/* true if boxes b0 and b1 overlap */ -#define OVERLAP(b0,b1) (((b0).UR.x >= (b1).LL.x) && ((b1).UR.x >= (b0).LL.x) && ((b0).UR.y >= (b1).LL.y) && ((b1).UR.y >= (b0).LL.y)) -/* true if box b0 completely contains b1*/ -#define CONTAINS(b0,b1) (((b0).UR.x >= (b1).UR.x) && ((b0).UR.y >= (b1).UR.y) && ((b0).LL.x <= (b1).LL.x) && ((b0).LL.y <= (b1).LL.y)) - -/* expand box b as needed to enclose point p */ -#define EXPANDBP(b, p) (b.LL.x = MIN(b.LL.x, p.x), b.LL.y = MIN(b.LL.y, p.y), b.UR.x = MAX(b.UR.x, p.x), b.UR.y = MAX(b.UR.y, p.y)) -/* expand box b0 as needed to enclose box b1 */ -#define EXPANDBB(b0, b1) (b0.LL.x = MIN(b0.LL.x, b1.LL.x), b0.LL.y = MIN(b0.LL.y, b1.LL.y), b0.UR.x = MAX(b0.UR.x, b1.UR.x), b0.UR.y = MAX(b0.UR.y, b1.UR.y)) - -#define ROUND(f) ((f>=0)?(int)(f + .5):(int)(f - .5)) -#define RADIANS(deg) ((deg)/180.0 * PI) -#define DEGREES(rad) ((rad)/PI * 180.0) - -#define SQR(v) ((v) * (v)) -#define DIST2(p1,p2) (SQR((p1.x) - (p2.x))) + (SQR((p1.y) - (p2.y))) -#define DIST(p1,p2) (sqrt(DIST2((p1),(p2)))) - -#define POINTS_PER_INCH 72 -#define POINTS(f_inch) (ROUND((f_inch)*POINTS_PER_INCH)) -#define PS2INCH(ps) ((ps)/(double)POINTS_PER_INCH) - #define isPinned(n) (ND_pinned(n) == P_PIN) #define hasPos(n) (ND_pinned(n) > 0) #define isFixed(n) (ND_pinned(n) > P_SET) @@ -127,11 +50,6 @@ #define streq(a,b) (*(a)==*(b)&&!strcmp(a,b)) #endif -#define P2PF(p, pf) (pf.x = p.x, pf.y = p.y) -#define PF2P(pf, p) (p.x = ROUND (pf.x), p.y = ROUND (pf.y)) -#define B2BF(b, bf) (bf.LL.x = b.LL.x, bf.LL.y = b.LL.y, bf.UR.x = b.UR.x, bf.UR.y = b.UR.y) -#define BF2B(bf, b) (b.LL.x = ROUND (bf.LL.x), b.LL.y = ROUND (bf.LL.y), b.UR.x = ROUND (bf.UR.x), b.UR.y = ROUND (bf.UR.y)) - #define XPAD(d) ((d).x += 4*GAP) #define YPAD(d) ((d).y += 2*GAP) #define PAD(d) {XPAD(d); YPAD(d);} diff --git a/lib/common/postproc.c b/lib/common/postproc.c index 4df06af9c..5bb962ebe 100644 --- a/lib/common/postproc.c +++ b/lib/common/postproc.c @@ -86,7 +86,7 @@ static void place_flip_graph_label(graph_t * g); point map_point(point p) { - p = flip_pt(p, Rankdir); + p = ccwrotatep(p, Rankdir*90); p.x -= Offset.x; p.y -= Offset.y; return p; diff --git a/lib/common/render.h b/lib/common/render.h index 1f5add85c..f4ead6837 100644 --- a/lib/common/render.h +++ b/lib/common/render.h @@ -49,6 +49,9 @@ #include #endif +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "macros.h" #include "const.h" #include "types.h" diff --git a/lib/common/renderprocs.h b/lib/common/renderprocs.h index e17c9933a..7252e284f 100644 --- a/lib/common/renderprocs.h +++ b/lib/common/renderprocs.h @@ -79,6 +79,7 @@ extern "C" { extern splines *getsplinepoints(edge_t * e); extern void global_def(char *, Agsym_t * (*fun) (Agraph_t *, char *, char *)); + extern int gvRenderJobs (GVC_t * gvc, graph_t * g); extern point image_size(graph_t * g, char *shapefile); extern boolean isPolygon(node_t *); extern char *strdup_and_subst_graph(char *str, Agraph_t * g); diff --git a/lib/common/shapes.c b/lib/common/shapes.c index 3be317abd..a3912eeed 100644 --- a/lib/common/shapes.c +++ b/lib/common/shapes.c @@ -780,7 +780,7 @@ static boolean poly_inside(inside_t * inside_context, pointf p) box *bp = inside_context->s.bp; node_t *n = inside_context->s.n; - P = flip_ptf(p, GD_rankdir(n->graph)); + P = ccwrotatepf(p, 90*GD_rankdir(n->graph)); /* Quick test if port rectangle is target */ if (bp) { @@ -1127,7 +1127,7 @@ compassPort(node_t* n, box* bp, port* pp, char* compass, int sides, inside_t* ic break; } } - p = invflip_pt(p, GD_rankdir(n->graph)); + p = cwrotatep(p, 90*GD_rankdir(n->graph)); pp->side = invflip_side(side, GD_rankdir(n->graph)); pp->bp = bp; pp->p = p; @@ -1755,7 +1755,7 @@ record_inside(inside_t * inside_context, pointf p) box bbox; /* convert point to node coordinate system */ - p = flip_ptf(p, GD_rankdir(n->graph)); + p = ccwrotatepf(p, 90*GD_rankdir(n->graph)); if (bp == NULL) { fld0 = (field_t *) ND_shape_info(n); @@ -1930,7 +1930,7 @@ static boolean epsf_inside(inside_t * inside_context, pointf p) double x2; node_t *n = inside_context->s.n; - P = flip_ptf(p, GD_rankdir(n->graph)); + P = ccwrotatepf(p, 90*GD_rankdir(n->graph)); x2 = ND_ht_i(n) / 2; return ((P.y >= -x2) && (P.y <= x2) && (P.x >= -ND_lw_i(n)) && (P.x <= ND_rw_i(n))); diff --git a/lib/common/types.h b/lib/common/types.h index 4d61c2072..db52d9654 100644 --- a/lib/common/types.h +++ b/lib/common/types.h @@ -17,14 +17,10 @@ #ifndef GV_TYPES_H #define GV_TYPES_H -#include "pathplan.h" - #ifdef __cplusplus extern "C" { #endif - typedef unsigned char boolean; - typedef int (*qsort_cmpf) (const void *, const void *); typedef int (*bsearch_cmpf) (const void *, const void *); @@ -43,20 +39,6 @@ extern "C" { typedef struct htmllabel_t htmllabel_t; - typedef struct point { - int x, y; - } point; - - typedef Ppoint_t pointf; - - typedef struct box { - point LL, UR; - } box; - - typedef struct boxf { - pointf LL, UR; - } boxf; - typedef union inside_t { struct { pointf* p; diff --git a/lib/gvc/gvcint.h b/lib/gvc/gvcint.h index 8f0d2f0dc..bed55245e 100644 --- a/lib/gvc/gvcint.h +++ b/lib/gvc/gvcint.h @@ -23,11 +23,6 @@ extern "C" { #endif -#ifndef FALSE -#define FALSE 0 -#define TRUE (! FALSE) -#endif - #define ARRAY_SIZE(A) (sizeof(A)/sizeof(A[0])) typedef enum { PEN_NONE, PEN_DASHED, PEN_DOTTED, PEN_SOLID } pen_type; diff --git a/lib/gvc/gvconfig.c b/lib/gvc/gvconfig.c index dc67d8047..2d5631a4a 100644 --- a/lib/gvc/gvconfig.c +++ b/lib/gvc/gvconfig.c @@ -29,9 +29,12 @@ #include #endif -#include "types.h" +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "macros.h" #include "const.h" +#include "types.h" #include "graph.h" #include "gvplugin.h" #include "gvcint.h" diff --git a/lib/gvc/gvcontext.c b/lib/gvc/gvcontext.c index a5d6bb93a..e5ce0c843 100644 --- a/lib/gvc/gvcontext.c +++ b/lib/gvc/gvcontext.c @@ -29,8 +29,11 @@ #include #include -#include "types.h" +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "macros.h" +#include "types.h" #include "graph.h" #include "gvplugin.h" #include "gvcint.h" diff --git a/lib/gvc/gvcproc.h b/lib/gvc/gvcproc.h index 00c6c8600..cdc476d01 100644 --- a/lib/gvc/gvcproc.h +++ b/lib/gvc/gvcproc.h @@ -125,6 +125,8 @@ extern "C" { /* layout */ extern int gvlayout_select(GVC_t * gvc, char *str); + extern int gvFreeLayout(GVC_t * gvc, graph_t * g); + extern int gvLayoutJobs(GVC_t * gvc, graph_t * g); #ifdef __cplusplus } diff --git a/lib/gvc/gvdevice.c b/lib/gvc/gvdevice.c index e898ac447..fc88f04da 100644 --- a/lib/gvc/gvdevice.c +++ b/lib/gvc/gvdevice.c @@ -27,6 +27,9 @@ #include #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "const.h" #include "types.h" #include "macros.h" diff --git a/lib/gvc/gvjobs.c b/lib/gvc/gvjobs.c index c92d51f07..1237b9b65 100644 --- a/lib/gvc/gvjobs.c +++ b/lib/gvc/gvjobs.c @@ -21,6 +21,9 @@ #include #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "types.h" #include "gvplugin.h" #include "gvcint.h" diff --git a/lib/gvc/gvlayout.c b/lib/gvc/gvlayout.c index 07bff434c..b3760f269 100644 --- a/lib/gvc/gvlayout.c +++ b/lib/gvc/gvlayout.c @@ -25,6 +25,9 @@ #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "const.h" #include "types.h" #include "macros.h" diff --git a/lib/gvc/gvplugin.c b/lib/gvc/gvplugin.c index 073cb21c4..9ef064393 100644 --- a/lib/gvc/gvplugin.c +++ b/lib/gvc/gvplugin.c @@ -26,6 +26,9 @@ #include #endif +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "types.h" #include "macros.h" #include "graph.h" diff --git a/lib/gvc/gvrender.c b/lib/gvc/gvrender.c index 2f3ee59d7..522c04fb0 100644 --- a/lib/gvc/gvrender.c +++ b/lib/gvc/gvrender.c @@ -29,9 +29,13 @@ #include #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "const.h" #include "types.h" #include "macros.h" +#include "geom.h" #include "globals.h" #include "graph.h" #include "cdt.h" diff --git a/lib/gvc/gvtextlayout.c b/lib/gvc/gvtextlayout.c index 0972a362d..246c4d495 100644 --- a/lib/gvc/gvtextlayout.c +++ b/lib/gvc/gvtextlayout.c @@ -24,6 +24,9 @@ #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "const.h" #include "types.h" #include "macros.h" diff --git a/lib/gvc/gvusershape.c b/lib/gvc/gvusershape.c index a967f4e9a..2c374d01a 100644 --- a/lib/gvc/gvusershape.c +++ b/lib/gvc/gvusershape.c @@ -37,6 +37,9 @@ #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "const.h" #include "types.h" #include "macros.h" diff --git a/plugin/dot_layout/gvlayout_dot_layout.c b/plugin/dot_layout/gvlayout_dot_layout.c index dd186ff8a..dc6119ba4 100644 --- a/plugin/dot_layout/gvlayout_dot_layout.c +++ b/plugin/dot_layout/gvlayout_dot_layout.c @@ -21,6 +21,9 @@ #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "macros.h" #include "const.h" #include "types.h" diff --git a/plugin/neato_layout/gvlayout_neato_layout.c b/plugin/neato_layout/gvlayout_neato_layout.c index 7b7da8c92..7f98ee2b5 100644 --- a/plugin/neato_layout/gvlayout_neato_layout.c +++ b/plugin/neato_layout/gvlayout_neato_layout.c @@ -26,6 +26,9 @@ #include +#include "logic.h" +#include "pathplan.h" +#include "geom.h" #include "macros.h" #include "const.h" #include "types.h"