thechiselgroup / biomixer

BioMixer
http://bio-mixer.appspot.com/
16 stars 13 forks source link

additional types of arcs besides "is_a" relationships #69

Closed drusk closed 11 years ago

drusk commented 12 years ago

This task comprises 3 things:

everbeek commented 11 years ago

Issue #173 was created, and completed, as a partial duplicate. It dealt with has-part relations only. In GForge, we have case 4251 corresponding to that. It was satisfied, except that there has been a new request for arc labels or a legend. Labels are already on the table, so we'll go that way.

everbeek commented 11 years ago

Let's do legends and labels or tool tips. See http://keg.cs.uvic.ca/ncbo/flexviz/FlexoViz.html# for legend examples.

everbeek commented 11 years ago

I am concerned about arc legibility for individuals with color perception issues. I think that the line type must be significantly different for each arc type. Labels clutter the view, overlap, and it can become uncertain which entity a given label is associated with. Therefore, I am going with a legend that shows the exact line in use (color, style and head). I will also change the head on the has-part arcs; it is currently a filled triangle for both has-part and is-a. The mapping arc has no head type. I will leave both has-part and is-a as solid lines, but I will think of another line-style oriented way of making them distinguishable.

So first, I will create the legend and change the has-part head type.

everbeek commented 11 years ago

Composition arcs are now light green, have hollow arrow heads, and have dotted lines. All three properties may be tweaked. Arrow heads are now selectable for all arc types as well. Introduced invisible heads for undirected arcs, because it was much simpler than producing null arcs.

Eyeball to see if these empty heads should be different from the triangle heads (I think they are currently invisible triangles). Added unit tests for the arc heads, but they do not pass yet. Fix them up and make more as necessary.

everbeek commented 11 years ago

Fixed up labels to be centered on arc centroid, and coped with setting that on an angle. Cached those computations, since the text size portions would end up being expensive.

everbeek commented 11 years ago

It appears that labels are a serious cost during rendering of large amounts of edges. I anticipated this might be a problem, but other than manual or automatic toggling on and off of labels, I don't know what to do. Taking the angle off would speed it all up, but then the labels would be ugly. Think about it.

everbeek commented 11 years ago

Fixed up new unit test data.

everbeek commented 11 years ago

If it seems necessary later, we can make a new case for an arc legend or tool tips. For now, this helps distinguish arc types quite clearly.