examples: annotate examples
[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 module undirected_clusters is example
17
18 import dot
19
20 var graph = new DotGraph("G", "graph")
21
22 var a = new DotNode("a")
23 var b = new DotNode("b")
24 var c = new DotNode("c")
25 var d = new DotNode("d")
26 var e = new DotNode("e")
27 var f = new DotNode("f")
28 var g = new DotNode("g")
29
30 var clA = new DotGraph("clusterA", "subgraph")
31 clA.add_edge(a, b).directed = false
32 graph.add clA
33
34 var clB = new DotGraph("clusterB", "subgraph")
35 clB.add_edge(c, d).directed = false
36 clA.add clB
37
38 var clC = new DotGraph("clusterC", "subgraph")
39 clC.add_edge(e, g).directed = false
40 graph.add clC
41
42 graph.add_edge(e, d).directed = false
43 graph.add_edge(f, g).directed = false
44
45 if args.is_empty then
46 print graph.to_dot
47 else
48 graph.to_dot.write_to_file args.first
49 end