-### ## function dispatching the features to the vertical edges
-### foo <- function(edge.feat, default) {
-### e <- unique(edge.feat)
-### if (length(e) == 1) return(rep(e, Nnode))
-### else {
-### feat.v <- rep(default, Nnode)
-### for (i in 1:Nnode) {
-### br <- NodeInEdge1[[i]]
-### if (length(br) > 2) {
-### x <- unique(edge.feat[br])
-### if (length(x) == 1) feat.v[i] <- x
-### } else {
-### if (edge.feat[br[1]] == edge.feat[br[2]])
-### feat.v[i] <- edge.feat[br[1]]
-### else {
-### feat.v[i] <- edge.feat[br[2]]
-### ## add a new line:
-### y0v <<- c(y0v, y0v[i])
-### y1v <<- c(y1v, yy[i + Ntip])
-### x0v <<- c(x0v, x0v[i])
-### feat.v <- c(feat.v, edge.feat[br[1]])
-### ## shorten the line:
-### y0v[i] <<- yy[i + Ntip]
-### }
-### }
-### }
-### }
-### feat.v
-### }
-### color.v <- foo(edge.color, "black")
-### width.v <- foo(edge.width, 1)
-### lty.v <- foo(edge.lty, 1)
-
-### ## we need to reorder:
-### edge.width <- edge.width[pos]
-### edge.color <- edge.color[pos]
-### edge.lty <- edge.lty[pos]
-