Michael,
Re:
> it can be tricky indicating whether you want something as a sibling to a current item or as a child to it.
Hadn’t thought of that problem, having gotten used to one convention, but totally true.
Re:
> Like other popup menus in MoI it would possible to use it by a press / drag / release over menu item instead of click + click.
I didn’t know that, though I also don’t remember encountering any popups in MoI.
Re:
> I don't want to have a v4 file opened in v5 to have very different behavior than v4 when working inside the viewport.
Yeah that would be a significant problem for long-time users.
Re: video demo of popup
Thanks for whipping up a prototype! I expected from your written description that clicking or releasing while having the pointer over “Assign here” would cause “Unnamed” to become a child of “Group02” near the start of the video, but that doesn’t happen. Is the video showing a nonfunctional mock-up of the popup, or am I missing something?
The more I've thought about groups, the less sure I've become about what the problems are that I, as a user, need solved by the scene browser. Here's a list of the problems that come to mind, but there must be more.
Another view
- Providing a 5th view of the scene that shows relationships that aren't obvious in ortho or 3D. Like a hierarchical BOM.
Instancing
- Keeping track of instances of a part in case I change something about the base part and need to go through and replace all instances.
History
- To quickly delete recently created objects that I'm not happy with.
- As a history mechanism to allow reversion to a backup duplicate of an object or set of objects so that I can redo a sequence of edits on the object(s) in a different way. Here's an example from Illustrator where I'm doing destructive edits on the group "edges" and have a backup copy "edges bk" that I can revert to in case I don't like how my edits on "edges" turn out:
Selections that are hard in viewports
- As a history mechanism to retrieve previous selections and select a similar or identical set. This is either to bring back a selection that was difficult to make in the first place, or to bring back a selection that was easy to make at one time (e.g. right after a set of objects was created and could easily be selected), but no longer is (e.g. because the scene has gotten more complicated).
- Objects are overlapping in viewport space in such a way that it is not possible to draw a marquee (of either marquee type) that includes all of the wanted objects and excludes all of the unwanted. This is a problem that arises if I didn’t anticipate what I would need to select at the time that the objects were created or if ad hoc selections are needed because the sets that I desire aren’t disjoint. Maybe a lasso tool (freeform marquee shape) could help here.
- I want to select multiple objects, but there are too many to select individually, such as the result of Transform > Array. This is solved by the v5 implementation of groups where, if the objects resulting from Array are grouped then, clicking one of the group members in a viewport selects all group members. This also can be done in v4 by assigning the same name to all objects created by Array, selecting one of the objects, and then running a script to expand the selection to all objects with name matching that of the selection. Would it be a good idea to group results of Array by default, or at least have all objects resulting from Array including the original object, but not the curve of Array > Curve, be selected after Array runs to afford grouping?
- Objects aren't visible in viewports because they're behind or between other objects. A simple example is something like a painting canvas behind a frame. Say I want to select the edges of the canvas and extrude them toward the frame to make a shadow box sort of thing. I can't select the edges because they're hidden by the frame and a cover over the back of the frame:
Ok I could solve this by toggling visibility or orbiting the view, but maybe there are situations when it would be nicer to select the canvas and drill down into a tree in the Scene Browser to select the edges there.
- I want to select one object, but the ray in object space defined by the click point and the viewport projection encompasses more than one object. In KiCad this is solved by a popup context menu asking me which of the items under the click I wish to select and a preview of the selection on hover:
- Objects are outside of the viewport field of view, but I need to select them to perform an operation. This is something I do every day when projecting points through the cameraPt, which is unusual, but maybe there are other cases.
- I want to change Visible or Locked attributes of an object or set of objects, but can’t make the selection in a viewport because Visible = false or Locked = true.
Summary
Which of the problems above are already solved or should be solved in a different way? What other problems should be solved by the browser? Are there any examples of these problems being solved particularly well that I can play around with to refine my understanding?