- let last_round = try fst (M.max_binding m) with Not_found -> 0 in
- let s_node = "node" ^ (string_of_int (T.preorder tree node)) in
- fprintf odot "%s[ id=\"%s\" label=\"%s\" style=filled fillcolor=\"%f,1.0,1.0\"];\n"
- s_node s_node (QName.to_string (T.tag tree node))
- (0.2 *. (1.0 -. (float last_round /. float !max_round))) ;
+ 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") ;