summaryrefslogtreecommitdiff
path: root/math/graphopt
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2003-01-23 19:27:12 +0000
committerwiz <wiz@pkgsrc.org>2003-01-23 19:27:12 +0000
commit29443a738c003d51158ec0a22ffc8371b3f65a59 (patch)
treef23071aa80cd5d3ed467c373c3862ab5860f1e73 /math/graphopt
parent1340ad9303b6b0b85e52d1c0f6ab1fcd57014c29 (diff)
downloadpkgsrc-29443a738c003d51158ec0a22ffc8371b3f65a59.tar.gz
Initial import of graphopt-0.1, a graph layout optimizer:
In contrast to Graphviz and other graph optimizers, graphopt does not use a heuristic approach to layout optimization. Instead, it uses basic principles of physics to iteratively determine optimal layout. Each node is given mass and an electric charge, and each edge is represented as a spring. Node mass, electric charge, optimal spring length, and the spring constant are tweakable in the gui in realtime. For most graphs, this is all that is needed - hit 'go' and the graph organizes itself much as the analagous real-life system would if constrained to two dimensions. For more complex graphs, some fiddling with the physical parameters at different stages of optimization usually does the trick. To accomodate very large graphs, an additional mechanism called layering was added. When a graph is loaded, nodes are assigned to layers based on their relative positions. During optimization, you can choose to hide any number of layers. Any nodes assigned to a layer lower than the selected layer are not only hidden, but neither their electric charges nor the forces of the springs attached to them are figured into the forces acting on the visible nodes. In effect, those nodes cease to exist, and a smaller graph is allowed to lay itself out without being constrained by an excessive number of nodes.
Diffstat (limited to 'math/graphopt')
-rw-r--r--math/graphopt/DESCR24
-rw-r--r--math/graphopt/Makefile21
-rw-r--r--math/graphopt/PLIST4
-rw-r--r--math/graphopt/distinfo4
4 files changed, 53 insertions, 0 deletions
diff --git a/math/graphopt/DESCR b/math/graphopt/DESCR
new file mode 100644
index 00000000000..f1f86b35917
--- /dev/null
+++ b/math/graphopt/DESCR
@@ -0,0 +1,24 @@
+In contrast to Graphviz and other graph optimizers, graphopt does
+not use a heuristic approach to layout optimization. Instead, it
+uses basic principles of physics to iteratively determine optimal
+layout. Each node is given mass and an electric charge, and each
+edge is represented as a spring. Node mass, electric charge,
+optimal spring length, and the spring constant are tweakable in
+the gui in realtime.
+
+For most graphs, this is all that is needed - hit 'go' and the
+graph organizes itself much as the analagous real-life system would
+if constrained to two dimensions. For more complex graphs, some
+fiddling with the physical parameters at different stages of
+optimization usually does the trick.
+
+To accomodate very large graphs, an additional mechanism called
+layering was added. When a graph is loaded, nodes are assigned to
+layers based on their relative positions. During optimization,
+you can choose to hide any number of layers. Any nodes assigned
+to a layer lower than the selected layer are not only hidden, but
+neither their electric charges nor the forces of the springs attached
+to them are figured into the forces acting on the visible nodes.
+In effect, those nodes cease to exist, and a smaller graph is
+allowed to lay itself out without being constrained by an excessive
+number of nodes.
diff --git a/math/graphopt/Makefile b/math/graphopt/Makefile
new file mode 100644
index 00000000000..044dede7472
--- /dev/null
+++ b/math/graphopt/Makefile
@@ -0,0 +1,21 @@
+# $NetBSD: Makefile,v 1.1.1.1 2003/01/23 19:27:12 wiz Exp $
+#
+
+DISTNAME= graphopt-0.1
+CATEGORIES= math graphics
+MASTER_SITES= http://switch.dl.sourceforge.net/sourceforge/graphopt/
+EXTRACT_SUFX= .tgz
+
+MAINTAINER= wiz@netbsd.org
+HOMEPAGE= http://schmuhl.org/graphopt/
+COMMENT= optimize graph layouts
+
+USE_BUILDLINK2= YES
+GNU_CONFIGURE= YES
+
+post-install:
+ ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/graphopt
+ ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/graphopt
+
+.include "../../x11/gtk/buildlink2.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/math/graphopt/PLIST b/math/graphopt/PLIST
new file mode 100644
index 00000000000..21a5c58aaaa
--- /dev/null
+++ b/math/graphopt/PLIST
@@ -0,0 +1,4 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2003/01/23 19:27:12 wiz Exp $
+bin/graphopt
+share/doc/graphopt/README
+@dirrm share/doc/graphopt
diff --git a/math/graphopt/distinfo b/math/graphopt/distinfo
new file mode 100644
index 00000000000..9e67b364550
--- /dev/null
+++ b/math/graphopt/distinfo
@@ -0,0 +1,4 @@
+$NetBSD: distinfo,v 1.1.1.1 2003/01/23 19:27:12 wiz Exp $
+
+SHA1 (graphopt-0.1.tgz) = 8d75ba3edf34c01474201aee8586af9a4f243d5c
+Size (graphopt-0.1.tgz) = 75083 bytes