Currently the UI for Resources and their Components provide the following display:
Here you see that some of the geometry for the pillbox4 model has been hidden . Unfortunately the current approach only uses a binary visibility badge so a parent is always shown as visible even if all of its children are invisible. The converse is also true. If you switch off a parent node (which makes all of its children invisible) and then make one of its children visible, the parent is still shown as invisible.
In addition, a node in the tree could contain children as well as its own geometry. In the current design, the only way to turn off its geometry is to make the node invisible which will also turn off all of its children.
In order to address part of the problem, we need to introduce a tristate visibility setting perhaps a greyed out eye to indicate that the node has some of its children visible and some that are not.
In order to better support node that can contain geometry and children, there are 3 possible options to improve the situation.
In this option we would have 2 visibility badges:
- One Badge to control the node’s geometry visibility (Bi-State)
- One Badge to control the visibility of the node’s children (Tri-State
For example the visibility badge for children could be a different color or have something added to differentiate it from the geometry visibility such as this:
In this approach we would have the following behavior:
- Changing a node’s geometry visibility will effect the children visibility badges of its ancestors
- Changing a node’s children visibility will propagate its visibility down to its children setting both a child’s geometry and children visibility badges to the new value (note that a child may not have both badges). It also will propagate up its visibility changes to its ancestor to set their children visibility badges.
In this case we would combine the two badges above into 1 that would have the following possible states:
- Geometry Visible, Children Visible
- Geometry Visible, Children Invisible
- Geometry Invisible, Children Visible
- Geometry Invisible, Children Invisible
- Geometry Visible, Children Partially Visible
- Geometry Invisible, Children Partially Visible
The User would only be able to set the first 4 states (2 if the node only has children or geometry). If there are 4 options we would need to use a pull down while the 2 option cases could use a simple mouse click.
In this approach, an additional descriptive phrase would be created to represent a parent node that has its own geometry and would be placed under that node.
The behavior would be relatively simple:
- Changing a node’s visibility would be propagated down to its descendants and its ancestors would have their visibility recalculated.
- Would clearing indicate which visibility the user is setting.
- Need to create icons that make sense
- Nodes could have different number of badges and different types of badges for visibility
- Each node would only have 1 Badge
- Some badges have a pull down while others are clickable could be really confusing
- Trying to come up with 6 icons to represent the 6 states could be challenging
- One Badge that has the same user behavior it has today though it would be tr-stated.
- This will require some potential retooling of the Descriptive Phrase Generator stuff