4b42567c31cba975b9fcd41592d92f5809eabfd2
[nit.git] / lib / dot / examples / undirected_clusters.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 # Example from http://www.graphviz.org/Gallery/undirected/fdpclust.html
16
17 import dot
18
19 var graph = new DotGraph("G", "graph")
20
21 var a = new DotNode("a")
22 var b = new DotNode("b")
23 var c = new DotNode("c")
24 var d = new DotNode("d")
25 var e = new DotNode("e")
26 var f = new DotNode("f")
27 var g = new DotNode("g")
28
29 var clA = new DotGraph("clusterA", "subgraph")
30 clA.add_edge(a, b).directed = false
31 graph.add clA
32
33 var clB = new DotGraph("clusterB", "subgraph")
34 clB.add_edge(c, d).directed = false
35 clA.add clB
36
37 var clC = new DotGraph("clusterC", "subgraph")
38 clC.add_edge(e, g).directed = false
39 graph.add clC
40
41 graph.add_edge(e, d).directed = false
42 graph.add_edge(f, g).directed = false
43
44 if args.is_empty then
45 print graph.to_dot
46 else
47 graph.to_dot.write_to_file args.first
48 end