aboutsummaryrefslogtreecommitdiffstats
path: root/doc/internals.txt
diff options
context:
space:
mode:
authorLaurent Ghigonis <laurent@p1sec.com>2012-12-08 17:10:14 +0100
committerLaurent Ghigonis <laurent@p1sec.com>2012-12-08 17:10:14 +0100
commit3f3d20707b84c90b50fec2bdb23c545d0f78f38a (patch)
treeda21c655f3a73a81ae24694795f7a9bec334f6d5 /doc/internals.txt
parentBUG-- (diff)
downloadglouglou-3f3d20707b84c90b50fec2bdb23c545d0f78f38a.tar.xz
glouglou-3f3d20707b84c90b50fec2bdb23c545d0f78f38a.zip
move TODO and internals to their own text file
Diffstat (limited to '')
-rw-r--r--doc/internals.txt89
1 files changed, 89 insertions, 0 deletions
diff --git a/doc/internals.txt b/doc/internals.txt
new file mode 100644
index 0000000..7a8b34d
--- /dev/null
+++ b/doc/internals.txt
@@ -0,0 +1,89 @@
+Internals
+=========
+
+=== algo to handle threaded graph layouting correctly ===
+
+###### GENERAL ALGO
+_layouting_start(graph-2, coords-2);
+
+_add/del(structs-3);
+_repositionning(graph, structs, coords);
+
+_layouting_end(coords-2);
+
+_v2_updtate(structs-2, graph-2, coords-2);
+ _v2_structs/graph_update(structs-2, graph);
+ -> structs, graph // real add/del
+ _coords_copy(coords-2);
+ -> coords
+
+_repositionning(graph, structs, coords);
+
+_v3_update(structs-3);
+ _v3_structs/graph_update(structs-3, graph-2);
+ -> structs-2, graph-2
+
+###### TIMELINE VERTICE ADD
+egraph_vertice_add();
+ id = freeids[vertices_count];
+ v = vertices[id];
+ v->id = id;
+ vertices_count++;
+ v->v3-new = 1;
+
+_v3_update();
+ v->v2-new = v->v3-new;
+ v->v3-new = 0;
+ _v2_add()
+ v->graph2_vid = graph2_vcount;
+ graph2_vcount++;
+ igraph_add_vertices(graph2);
+
+_layouting_start();
+ // end up in coords2
+
+_layouting_end();
+_coords_copy();
+ // end up in coords
+
+_v2_update();
+ _add()
+ v->v2-new = 0;
+ v->graph_vid = graph_vcount;
+ graph_vcount++;
+ igraph_add_vertices(graph);
+ evas_object
+
+// in structs, graph, coords
+
+###### TIMELINE VERTICE DEL
+egraph_vertice_del();
+ v->v3-del = 1;
+
+_v3_update();
+ v->v2-del = v->v3-del;
+ v->v3-del = 0;
+ _v2_del()
+ igraph_delete_vertices(v->graph2_vid);
+ graph2_vcount--;
+
+_layouting_start();
+ // not in coords2
+
+_layouting_end();
+_coords_copy();
+ // not in coords
+
+_v2_update();
+ _del();
+ igraph_delete_vertices(v->graph_vid);
+ graph_vcount--;
+ freeids[vertices_count] = v->id;
+ vertices_count--;
+ free(v);
+
+// removed from structs, graph, coords
+
+###### TIMELINE VERTICE DEL
+
+