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
15extern "C" {
16#endif
17
18#ifndef DIGCOLA_H
19#define DIGCOLA_H
20
21#include <defs.h>
22#ifdef DIGCOLA
23extern int compute_y_coords(vtx_data*, int, double*, int);
24extern int compute_hierarchy(vtx_data*, int, double, double,
25 double*, int**, int**, int*);
26extern int IMDS_given_dim(vtx_data*, int, double*, double*, double);
27extern int stress_majorization_with_hierarchy(vtx_data*, int, int, double**,
28 node_t**, int, int, int, int, double);
29#ifdef IPSEPCOLA
30typedef 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 */
47extern 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