41 |
41 |
42 max_length = 0 |
42 max_length = 0 |
43 |
43 |
44 def init(self, cat_nb_nodes_initial): |
44 def init(self, cat_nb_nodes_initial): |
45 for c in cat_nb_nodes_initial: |
45 for c in cat_nb_nodes_initial: |
|
46 nb = cat_nb_nodes_initial[c] |
|
47 if isinstance(cat_nb_nodes_initial[c], tuple): |
|
48 _, nb = nb |
|
49 self.max_length = nb if nb > self.max_length else self.max_length |
|
50 for i_cat,c in enumerate(cat_nb_nodes_initial): |
|
51 self.cat_nb_nodes[c] = [] |
|
52 order = i_cat |
|
53 nb = cat_nb_nodes_initial[c] |
|
54 if isinstance(cat_nb_nodes_initial[c], tuple): |
|
55 order, nb = nb |
|
56 offset = float(self.max_length - nb) / 2 |
|
57 for i in xrange(nb): |
|
58 self.cat_nb_nodes[c].append({ "x": order*300, "y": 100*(i+offset) }) |
|
59 #logger.debug(self.cat_nb_nodes) |
|
60 |
|
61 |
|
62 |
|
63 class CircleNodePlacer(NodePlacer): |
|
64 |
|
65 def init(self, cat_nb_nodes_initial): |
|
66 for c in cat_nb_nodes_initial: |
46 self.max_length = cat_nb_nodes_initial[c] if cat_nb_nodes_initial[c] > self.max_length else self.max_length |
67 self.max_length = cat_nb_nodes_initial[c] if cat_nb_nodes_initial[c] > self.max_length else self.max_length |
47 for i_cat,c in enumerate(cat_nb_nodes_initial): |
68 for i_cat,c in enumerate(cat_nb_nodes_initial): |
48 self.cat_nb_nodes[c] = [] |
69 self.cat_nb_nodes[c] = [] |
49 offset = float(self.max_length - cat_nb_nodes_initial[c]) / 2 |
70 offset = float(self.max_length - cat_nb_nodes_initial[c]) / 2 |
50 for i in xrange(cat_nb_nodes_initial[c]): |
71 for i in xrange(cat_nb_nodes_initial[c]): |
51 self.cat_nb_nodes[c].append({ "x": i_cat*200, "y": 100*(i+offset) }) |
72 self.cat_nb_nodes[c].append({ "x": i_cat*400, "y": 200*(i+offset) }) |
52 #logger.debug(self.cat_nb_nodes) |
73 #logger.debug(self.cat_nb_nodes) |
53 |
74 |
54 |
75 |
55 |
76 |
56 |
77 |