digcola.h 1.9 KB

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