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#ifndef DOTIO_H
15#define DOTIO_H
16
17#include <cgraph.h>
18#include "SparseMatrix.h"
19
20enum {COLOR_SCHEME_NONE, COLOR_SCHEME_PASTEL = 1, COLOR_SCHEME_BLUE_YELLOW, COLOR_SCHEME_WHITE_RED, COLOR_SCHEME_GREY_RED, COLOR_SCHEME_PRIMARY, COLOR_SCHEME_SEQUENTIAL_SINGLEHUE_RED, COLOR_SCHEME_ADAM, COLOR_SCHEME_ADAM_BLEND, COLOR_SCHEME_SEQUENTIAL_SINGLEHUE_RED_LIGHTER, COLOR_SCHEME_GREY};
21extern void initDotIO (Agraph_t *g);
22extern Agraph_t* SparseMatrix_read_dot(FILE*);
23
24extern void setDotNodeID (Agnode_t* n, int v);
25extern int getDotNodeID (Agnode_t* n);
26
27extern void attach_edge_colors(Agraph_t* g, int dim, real *colors);
28
29extern void attach_embedding(Agraph_t *g, int dim, double sc, real *x);
30
31extern SparseMatrix SparseMatrix_import_dot(Agraph_t* g, int dim, real **label_sizes, real **x, int *n_edge_label_nodes,
32 int **edge_label_nodes, int format, SparseMatrix *D);
33extern Agraph_t* makeDotGraph (SparseMatrix, char *title, int dim, real *x, int with_color, int with_label, int use_matrix_value);
34Agraph_t *convert_edge_labels_to_nodes(Agraph_t* g);
35Agraph_t* assign_random_edge_color(Agraph_t* g);
36void dump_coordinates(char *name, int n, int dim, real *x);
37void edgelist_export(FILE* f, SparseMatrix A, int dim, double *x);
38char * hue2rgb(real hue, char *color);
39
40SparseMatrix Import_coord_clusters_from_dot(Agraph_t* g, int maxcluster, int dim, int *nn, real **label_sizes, real **x, int **clusters, float **rgb_r, float **rgb_g, float **rgb_b, float **fsz, char ***labels, int default_color_scheme, int clustering_scheme, int useClusters);
41
42void Dot_SetClusterColor(Agraph_t* g, float *rgb_r, float *rgb_g, float *rgb_b, int *clustering);
43void attached_clustering(Agraph_t* g, int maxcluster, int clustering_scheme);
44
45int Import_dot_splines(Agraph_t* g, int *ne, char ***xsplines);
46#endif
47