Scene Management

Next
 From:  andy (ANDYJAGGY)
3877.1 
Okay this has been one of my major gripes with working with models in Moi.

I think the object visibility should function completely separate from the types and styles menus. I want that item to remain hidden even if I then adjust the visibility of the edges and surfaces etc... As it is right now I can hide the object but then if I adjust the visibility of the edges the edges of that object pop up again. I want that object to remain hidden. Otherwise it really become unmanageable to work with anything too complex.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3877.2 In reply to 3877.1 
Hi Andy, so the main problem with it working the way that you describe (the object section having some kind of separate and higher weight to its visibility functions than the other sections) is that it leads to things like this:

You receive a file from someone that has created a named object and hidden it using that "special" section of the scene browser. However you have no idea about this and you just want to show everything in the model, so maybe you go to the "Styles" section of the scene browser and turn on all styles, or maybe you just use the Edit > Hide command to show all objects. But unknown to you, you didn't actually show all objects because of the "extra-special" weight on the one particular hide method that someone else happened to use previously.

So that's one reason why I have tried to avoid that kind of multiple layered hiding modes, it can easily lead to confusion. It's easy for the same kind of confusion to happen when you open older files you created yourself, not even just when receiving files from other people.

By not having any kind of special weight to one particular kind of hide, that allows for all hiding and showing methods to be treated equally and behave in a consistent and predictable manner.

That doesn't just apply to the scene browser sections (like Objects, Types, and Style categories), but also to the separate "Hide" command that's on the Edit menu that lets you hide or isolate the current selection or show all objects. Because these all work in a consistent way when you go to do an action that is supposed to show all objects, you can know that it really is going to show all objects and not possibly miss some.

Also for the problem that you describe about using the Types section, if I am following you correctly all you need to do is click on the same spot a second time and you will get what you want.

Here are the steps -

You started with some objects hidden and now you want to go to the "Edges" entry under the Types section to hide all edges that are currently being shown.

When you do a first click on the eye icon, it does show all the edges since the default action for a mixed state (some things hidden, some things shown) is to show.

But then a second click in the same spot will hide all those edges that were just shown - the end result after that second click is that your object that was originally hidden is now hidden and all the other edges that you wanted to hide are also hidden. So isn't that the state that you wanted to get things in? It's just a second click away in the same spot...

Also another thing which you may want to set in moi.ini is a flag under the [Scene Browser] settings:
[Scene Browser]
SelectSkipHiddenObjectsDefault=n


If you set that to be SelectSkipHiddenObjectsDefault=y then when you click on the text part of the scene browser item to select objects, it will only select the currently visible objects and not just everything that goes with that slot. This is normally available by doing shift+click on the text part, but if you change that setting it will be available just by a plain click.

So once that is set up you could do something like select all visible edges by a click on the text label part of the Edges entry in the Scene Browser types section and then hide them with Edit > Hide.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  andy (ANDYJAGGY)
3877.3 
That helps me understand it a bit better, but it doesn't seem to solve the exact problem I am talking about.

1) I have all my objects visible with edges not shown.
2) I hide one of the named object.
3) I now want to turn the edges on for JUST the visible objects, but when I click on the edges to show edges it shows the edges for the object that is currently hidden. This is the behavior I am trying to avoid, I want it to show the edges for just the objects that are visible. I thought the shift click would be what I was looking for but when I tried it nothing happened.

I guess I kind of understand why it is like this from your previous post, but it is not the behavior I would expect or desire for 90% of situations.








  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  DannyT (DANTAS)
3877.4 In reply to 3877.3 
Hi andy,

If you need that level of control on edge visualisation then you'll have to assign names or styles(colours) to your objects that way you control by object or style not by type, if you need an example let us know.

Cheers
~Danny~
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3877.5 In reply to 3877.3 
Hi Andy, I see what you mean now - for just hiding the edges, the second click as I described above works for that part, but then showing just the particular edges you want is where you have a problem.

But I think that it's possible that the scene browser can be modified a bit in v3 to solve this particular thing with sub-objects without needing to introduce some special overriding hide property like you were talking about previously.

Like you mentioned a shift+click could be a possibility or maybe just a single click on those particular sub-object types should look for this situation of visible parent objects that have some sub-objects hidden and flip all those particular sub-objects to be on with the first click. That would mean that it would then take a second click on it to show all edges, and a 3rd click to hide them all. I'll need to think about that a little bit.

In the meantime, it should be possible to set up a keyboard shortcut with a script on it that will do that one show operation that is currently missing. I'll cook up a script for that shortly and post it here.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
3877.6 In reply to 3877.3 
Hi Andy, here's a script that should perform the edge showing operation that you wanted:

script: /* Show all edges of visible objects */ var breps = moi.geometryDatabase.getObjects().getBReps(); for ( var i = 0; i < breps.length; ++i ) { var brep = breps.item(i); if ( !brep.hidden ) brep.getEdges().setProperty( 'hidden', false ); }


To set this up, go to Options> Shortcut keys, and push the Add button to add a new blank entry to the top of the list.

Then for the Key column, put in whatever key you want to trigger it, maybe E since it involves edges.

Then in the Command column on the right-hand side, paste in the above script.

Then after that you can type E (or whatever you set up as the key) to get the particular edges that you want to be shown - the script will only show edges on objects that are currently visible and not touch the edges on objects that are totally hidden.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  andy (ANDYJAGGY)
3877.7 In reply to 3877.6 
Thanks! I will give this a try as soon as I get a chance.

Andy
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All