comparison toolboxes/graph_visualisation/include/graphviz/pack.h @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:e9a9cd732c1e
1 /* $Id: pack.h,v 1.17 2009/08/11 21:23:23 erg Exp $ $Revision: 1.17 $ */
2 /* vim:set shiftwidth=4 ts=8: */
3
4 /**********************************************************
5 * This software is part of the graphviz package *
6 * http://www.graphviz.org/ *
7 * *
8 * Copyright (c) 1994-2004 AT&T Corp. *
9 * and is licensed under the *
10 * Common Public License, Version 1.0 *
11 * by AT&T Corp. *
12 * *
13 * Information and Software Systems Research *
14 * AT&T Research, Florham Park NJ *
15 **********************************************************/
16
17
18
19 #ifndef _PACK_H
20 #define _PACK_H 1
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 #include "types.h"
27
28 /* Type indicating granularity and method
29 * l_undef - unspecified
30 * l_node - polyomino using nodes and edges
31 * l_clust - polyomino using nodes and edges and top-level clusters
32 * (assumes ND_clust(n) unused by application)
33 * l_graph - polyomino using computer graph bounding box
34 * l_array - array based on graph bounding boxes
35 * l_aspect - tiling based on graph bounding boxes preserving aspect ratio
36 * l_hull - polyomino using convex hull (unimplemented)
37 * l_tile - tiling using graph bounding box (unimplemented)
38 * l_bisect - alternate bisection using graph bounding box (unimplemented)
39 */
40 typedef enum { l_undef, l_clust, l_node, l_graph, l_array, l_aspect } pack_mode;
41
42 #define PK_COL_MAJOR 1
43 #define PK_USER_VALS 2
44
45 typedef unsigned char packval_t;
46
47 typedef struct {
48 float aspect; /* desired aspect ratio */
49 int sz; /* row/column size size */
50 unsigned int margin; /* margin left around objects, in points */
51 int doSplines; /* use splines in constructing graph shape */
52 pack_mode mode; /* granularity and method */
53 boolean *fixed; /* fixed[i] == true implies g[i] should not be moved */
54 packval_t* vals; /* for arrays, sort numbers */
55 int flags;
56 } pack_info;
57 #ifdef GVDLL
58 #define extern __declspec(dllexport)
59 #else
60 #define extern
61 #endif
62
63 /*visual studio*/
64 #ifdef WIN32_DLL
65 #ifndef GVC_EXPORTS
66 #define extern __declspec(dllimport)
67 #endif
68 #endif
69 /*end visual studio*/
70
71 extern point *putRects(int ng, boxf* bbs, pack_info* pinfo);
72 extern int packRects(int ng, boxf* bbs, pack_info* pinfo);
73
74 extern point *putGraphs(int, Agraph_t **, Agraph_t *, pack_info *);
75 extern int packGraphs(int, Agraph_t **, Agraph_t *, pack_info *);
76 extern int packSubgraphs(int, Agraph_t **, Agraph_t *, pack_info *);
77 extern int pack_graph(int ng, Agraph_t** gs, Agraph_t* root, boolean* fixed);
78
79 extern int shiftGraphs(int, Agraph_t**, point*, Agraph_t*, int);
80
81 extern pack_mode getPackMode(Agraph_t * g, pack_mode dflt);
82 extern int getPack(Agraph_t *, int not_def, int dflt);
83 extern pack_mode getPackInfo(Agraph_t * g, pack_mode dflt, int dfltMargin, pack_info*);
84 extern pack_mode getPackModeInfo(Agraph_t * g, pack_mode dflt, pack_info*);
85 extern pack_mode parsePackModeInfo(char* p, pack_mode dflt, pack_info* pinfo);
86
87 extern int isConnected(Agraph_t *);
88 extern Agraph_t **ccomps(Agraph_t *, int *, char *);
89 extern Agraph_t **pccomps(Agraph_t *, int *, char *, boolean *);
90 extern int nodeInduce(Agraph_t *);
91 #undef extern
92 #ifdef __cplusplus
93 }
94 #endif
95 #endif