123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /*************************************************************************
- * Copyright (c) 2011 AT&T Intellectual Property
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors: Details at https://graphviz.org
- *************************************************************************/
- #include "config.h"
- #include <stdio.h>
- #include <gvc/gvplugin_layout.h>
- // FIXME - globals.h is needed for Nop
- #include <common/globals.h>
- typedef enum {
- LAYOUT_NEATO,
- LAYOUT_FDP,
- LAYOUT_SFDP,
- LAYOUT_TWOPI,
- LAYOUT_CIRCO,
- LAYOUT_PATCHWORK,
- LAYOUT_CLUSTER,
- LAYOUT_NOP1,
- LAYOUT_NOP2,
- } layout_type;
- extern void neato_layout(graph_t *g);
- extern void fdp_layout(graph_t *g);
- extern void sfdp_layout(graph_t *g);
- extern void twopi_layout(graph_t *g);
- extern void circo_layout(graph_t *g);
- extern void patchwork_layout(graph_t *g);
- extern void osage_layout(graph_t *g);
- extern void neato_cleanup(graph_t *g);
- extern void fdp_cleanup(graph_t *g);
- extern void sfdp_cleanup(graph_t *g);
- extern void twopi_cleanup(graph_t *g);
- extern void circo_cleanup(graph_t *g);
- extern void patchwork_cleanup(graph_t *g);
- extern void osage_cleanup(graph_t *g);
- static void nop1_layout(graph_t *g) {
- Nop = 1;
- neato_layout(g);
- Nop = 0;
- }
- static void nop2_layout(graph_t *g) {
- Nop = 2;
- neato_layout(g);
- Nop = 0;
- }
- gvlayout_engine_t neatogen_engine = {
- neato_layout,
- neato_cleanup,
- };
- gvlayout_engine_t fdpgen_engine = {
- fdp_layout,
- fdp_cleanup,
- };
- #ifdef SFDP
- gvlayout_engine_t sfdpgen_engine = {
- sfdp_layout,
- sfdp_cleanup,
- };
- #endif
- gvlayout_engine_t twopigen_engine = {
- twopi_layout,
- twopi_cleanup,
- };
- gvlayout_engine_t circogen_engine = {
- circo_layout,
- circo_cleanup,
- };
- gvlayout_engine_t nop1gen_engine = {
- nop1_layout,
- neato_cleanup,
- };
- gvlayout_engine_t nop2gen_engine = {
- nop2_layout,
- neato_cleanup,
- };
- gvlayout_engine_t patchwork_engine = {
- patchwork_layout,
- patchwork_cleanup,
- };
- gvlayout_engine_t osage_engine = {
- osage_layout,
- osage_cleanup,
- };
- gvlayout_features_t neatogen_features = {
- 0,
- };
- gvplugin_installed_t gvlayout_neato_types[] = {
- {LAYOUT_NEATO, "neato", 0, &neatogen_engine, &neatogen_features},
- {LAYOUT_FDP, "fdp", 0, &fdpgen_engine, &neatogen_features},
- #ifdef SFDP
- {LAYOUT_SFDP, "sfdp", 0, &sfdpgen_engine, &neatogen_features},
- #endif
- {LAYOUT_TWOPI, "twopi", 0, &twopigen_engine, &neatogen_features},
- {LAYOUT_CIRCO, "circo", 0, &circogen_engine, &neatogen_features},
- {LAYOUT_PATCHWORK, "patchwork", 0, &patchwork_engine, &neatogen_features},
- {LAYOUT_CLUSTER, "osage", 0, &osage_engine, &neatogen_features},
- {LAYOUT_NOP1, "nop", 0, &nop1gen_engine, &neatogen_features},
- {LAYOUT_NOP1, "nop1", 0, &nop1gen_engine, &neatogen_features},
- {LAYOUT_NOP2, "nop2", 0, &nop2gen_engine, &neatogen_features},
- {0, NULL, 0, NULL, NULL}};
|