+ let node_id = T.preorder tree node in
+ let marked, last_round = try Hashtbl.find final node_id with Not_found ->
+ Printf.eprintf ">>> %i\n%!" node_id; false, !max_round;
+ in
+ let s_node = "node" ^ (string_of_int node_id) in
+ fprintf odot "%s[ id=\"%s\" label=\"%s\" style=filled fillcolor=\"%f,1.0,1.0\"\
+shape=\"%s\" ];\n"
+ s_node
+ s_node
+ (QName.to_string (T.tag tree node))
+ (1.0 -. (float (last_round+1) /. float (!max_round+1)))
+ (if marked then "oval" else "box") ;