From 3f3d20707b84c90b50fec2bdb23c545d0f78f38a Mon Sep 17 00:00:00 2001 From: Laurent Ghigonis Date: Sat, 8 Dec 2012 17:10:14 +0100 Subject: move TODO and internals to their own text file --- doc/internals.txt | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 doc/internals.txt (limited to 'doc/internals.txt') 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 + + -- cgit v1.2.3-59-g8ed1b