Scene browser progress

 From:  Michael Gibson
2470.1 
Ok, I've made some good progress on the scene browser / object organization tools.

Still a ways to go, and not everything shown here is actually fully functional but I wanted to show what I'm currently doing to gather comments / ideas, etc...

The main function of the scene browser in v2 is to enable you to perform operations (particularly hide/show) on sets of objects. In the future it will also be a good place to access lists of certain kinds of entities like saved views and cplanes, but for v2 it will work with 2 different categories of things - groups and styles.

Groups will let you define a container that can hold other objects or sub-groups that you assign to it, to manipulate them as a set. I'm not ready with this part quite yet, I'm working on the styles part first.

Styles define the visual presentation of the object on the screen, for v2 this will be just its color but in future versions I would like to expand this to other kinds of visual properties as well (textures, line styles, etc...).

In the scene browser, styles give similar functions as a group, where you can for example hide or show all objects that have been assigned a particular style.

My current WIP scene browser looks like this (Styles section shown expanded):



This is a new panel that can be opened up which goes adjacent to the regular side pane. There is a button to open or close it in the bottom of the side pane next to where help is currently:



You can also set up a keyboard shortcut to toggle it open/closed.

There is also a second optional mode for how the browser is positioned, this will be a new setting under Options / General / Scene browser position:



The options are "Adjacent" or "Inside". If you choose "Inside", then the browser will appear as an additional palette inside of the side pane, like so:




The idea for that is that if you have a high resolution display with a lot of empty space over there, you can place the Scene browser in that empty space rather than as a new panel. I was thinking of making this the initial default mode if you have a screen resolution of 1600x1200 or higher.


Then for assigning styles, there is a new entry in the object properties panel that shows the current style of the selected objects:



And if you click it it will pop up a style menu that lets you pick a style to assign to the selection:



In the future there can probably be things like different categories, with some tabs along the left side similar to how the Options dialog works, but for v2 this is just a simple list.

I've tried to think if it is possible to move the style display of the current selection to be somehow embedded within the styles section of the scene browser itself so that things related to styles could be more concentrated all in just that one area, but I have not been able to figure out a good way to do that.

Another thing that I don't really like is the "Tools" entry that pops under Styles in the Scene Browser - this will be a place where you can launch a menu with some various things on it, like "Edit styles", stuff like that. I'd kind of like to build this menu into the "Styles" line itself that has the +/- thing on it. But when I put something like a drop-down arrow in that same line, it makes it look like it is similar to the +/- control so it doesn't really draw enough attention to it as a separate function from the +/- ...


Then as far as how the show/hide works, that part is not actually hooked up yet but the idea will be that when the eye is shown it means that all the objects that belong to that group or that have that style are not hidden. If you left click on that eye, it will switch all the objects associated with that to be hidden and the eye will disappear.

If you click on that area where the eye is not showing, it will show all the objects for that thing and the eye will then appear.

If you click anywhere else to the right of the eye (either on the swatch or the name), then I'm thinking of popping out a flyout menu with a few different actions on it, probably locking will go under this menu and when all objects are locked then that icon will display a lock rather than the eye.

One thing that I'm not quite sure about is whether it would be good to make it very easy to select all the objects belonging to a group or style with a single click somewhere on that line. The other idea is to put selection as an action on the flyout menu which then makes more area set to trigger the flyout which makes the flyout function easier to find.


Also I think that right-click on the eye will turn off all the other objects and only keep just those ones visible.


Anyway things are still in flux but it is starting to come together.


If you have any comments, ideas, or questions, please let me know!

- Michael