1 /* $Id$ $Revision$ */ 2 /* vim:set shiftwidth=4 ts=8: */ 3 4 /************************************************************************* 5 * Copyright (c) 2011 AT&T Intellectual Property 6 * All rights reserved. This program and the accompanying materials 7 * are made available under the terms of the Eclipse Public License v1.0 8 * which accompanies this distribution, and is available at 9 * http://www.eclipse.org/legal/epl-v10.html 10 * 11 * Contributors: See CVS logs. Details at http://www.graphviz.org/ 12 *************************************************************************/ 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 #ifndef DIGCOLA_H 19 #define DIGCOLA_H 20 21 #include <defs.h> 22 #ifdef DIGCOLA 23 extern int compute_y_coords(vtx_data*, int, double*, int); 24 extern int compute_hierarchy(vtx_data*, int, double, double, 25 double*, int**, int**, int*); 26 extern int IMDS_given_dim(vtx_data*, int, double*, double*, double); 27 extern int stress_majorization_with_hierarchy(vtx_data*, int, int, double**, 28 node_t**, int, int, int, int, double); 29 #ifdef IPSEPCOLA 30 typedef struct ipsep_options { 31 int diredges; /* 1=generate directed edge constraints */ 32 /* 2=generate directed hierarchy level constraints (DiG-CoLa) */ 33 double edge_gap; /* amount to force vertical separation of */ 34 /* start/end nodes */ 35 int noverlap; /* 1=generate non-overlap constraints */ 36 /* 2=remove overlaps after layout */ 37 pointf gap; /* hor and vert gap to enforce when removing overlap*/ 38 pointf* nsize; /* node widths and heights */ 39 cluster_data* clusters; 40 /* list of node indices for each cluster */ 41 #ifdef MOSEK 42 int mosek; /* use Mosek as constraint optimization engine */ 43 #endif /* MOSEK */ 44 } ipsep_options; 45 46 /* stress majorization, for Constraint Layout */ 47 extern int stress_majorization_cola(vtx_data*, int, int, double**, node_t**, int, int, int, ipsep_options*); 48 #endif 49 #endif 50 #endif 51 52 #ifdef __cplusplus 53 } 54 #endif 55