/* This software may only be used by you under license from AT&T Corp. ("AT&T"). A copy of AT&T's Source Code Agreement is available at AT&T's Internet website having the URL: If you received this software without first entering into a license with AT&T, you have an infringing copy of this software and cannot use it without violating AT&T's intellectual property rights. */ #pragma prototyped #ifndef _PACK_H #define _PACK_H 1 #include /* Type indicating granularity and method * l_undef - unspecified * l_node - polyomino using nodes and edges * l_clust - polyomino using nodes and edges and top-level clusters * (assumes ND_clust(n) unused by application) * l_graph - polyomino using graph bounding box * l_hull - polyomino using convex hull (unimplemented) * l_tile - tiling using graph bounding box (unimplemented) * l_bisect - alternate bisection using graph bounding box (unimplemented) */ typedef enum { l_undef, l_clust, l_node, l_graph} pack_mode; typedef struct { #ifdef UNIMPLEMENTED float aspect; /* desired aspect ratio */ #endif unsigned int margin; /* margin left around objects, in points */ int doSplines; /* use splines in constructing graph shape */ pack_mode mode; /* granularity and method */ boolean* fixed; /* fixed[i] == true implies g[i] should not be moved */ } pack_info; extern point* putGraphs (int, Agraph_t**, Agraph_t*, pack_info*); extern int shiftGraphs (int, Agraph_t**, point*, Agraph_t*, int); extern int packGraphs (int, Agraph_t**, Agraph_t*, pack_info*); extern int packSubgraphs (int, Agraph_t**, Agraph_t*, pack_info*); extern pack_mode getPackMode (Agraph_t* g, pack_mode dflt); extern int getPack (Agraph_t*, int not_def, int dflt); extern int isConnected (Agraph_t*); extern Agraph_t** ccomps (Agraph_t*, int*, char*); extern Agraph_t** pccomps (Agraph_t*, int*, char*, boolean*); extern int nodeInduce (Agraph_t*); #endif