Enhancing OOPS, Tuhopuu Updated with python/oops accsess!

The interface, modeling, 3d editing tools, import/export, feature requests, etc

Moderators: jesterKing, stiv

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

Seems like you have some good plans. In my mockups, making things pretty has no priority, I was just toying with the idea of collapsable boxes and thought it would be best to use a consistant design (looks like panels in buttonwindows).
I personally like the idea of several output channels to be visible (Ipo, Mesh, Material, Children etc.) so that you can visualise what OOPS boxes fit into each other (Green goes into green output widget, red goes into red output widget and so on).
ideasman wrote:Mabe the title and rename text box could be the same, seems a bit silly having 2.
I don't thik it would be good if you renamed the datablock by just clicking on their names, since you would accidentially edit the name when wanting to drag them around. The collapsable idea comes in useful here - fold out, rename, fold back up, and move around.

Oh, and I drew in the material/lamp preview thing mainly because Ideasman said he was interested in toying with this..

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman »

If preview's were accsessable I think it would be good to give the user an option.

Whith renaming, I dont see the conflict.
Could make it shift+Click however clicking is only used for gestures anyway, and they could be done in the empty space, and you dont drag with the LMB in blender wither.

Monkeyboi, I value your input, useability is 1st priority and Im still very new to C and Blender source-


I recomment other to have a go, its realy not as hard as I expected.
I just wish the code was commented better.

- Cam

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

Could make it shift+Click however clicking is only used for gestures anyway, and they could be done in the empty space, and you dont drag with the LMB in blender wither.
Hmm.. good point.

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman »

Was just thinking about it....

What about LMB for rename and LMB on the line points to re-parent/relink-object data.

coltseaver
Posts: 0
Joined: Tue Apr 27, 2004 9:56 pm
Location: Brussels, belgium

Post by coltseaver »

why?
the current Nkey is enough and pretty quick, isn't this?
it doesn't disturb IMHO

About grouping, my mockup was just symbolic.
Indeed i first thought about a tree view but i didn't know if it would be done easily in Oops and i don't think it is good to change a lot the Oops's look, either current radial way (like in my mockup) or tree.


seeya

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman »

I disagree, personaly Id like to be able to click in on the oops text to change the name- or some other similar way- a form of direct input.

Though the nkey is in keeping with other parts of blender its not very obvious.

I have always assumed a tree view would be best... anybody think otherwise.

Im going for horizontal left to right tree view, spline curves, object renaming from direct keybord input. and after that a stob at dynamic linking of objects using the mouse.

But the oops view wont look a great deal diferent. funky GFX isnt that big a deal and can be added if needed once the groundwork is done.

-Cam

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

What do you mean with reparent? If you mean you shoule be able to set up child/parent relationships by dragging from a datablocks input widget to another datablocks output widget then I absolutely agree, but I thought there was already an agreement about this.

Or did I misunderstand?

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman »

No, you understood.

coltseaver
Posts: 0
Joined: Tue Apr 27, 2004 9:56 pm
Location: Brussels, belgium

Post by coltseaver »

Though the nkey is in keeping with other parts of blender its not very obvious

Not really, because when you want rename an object in 3D view, you push Nkey and float appear, moreover with your thread, i was reinterested at Oops and when i was retrying it, i wanted rename object but i didn't know how and however i had naturally pushed Nkey for this action and it obviously worked.

Thus: not obvious as you said, i don't know
Logical in blender...i do think that. (just my opinion of course)


cheers

theeth
Posts: 500
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Post by theeth »

Nkey is properties (often including name) in pretty much any window. 3D view, IPO, Sequencer, ...

Regarding the drag/drop functionality, in order to not mess the layout of the oops when drag/dropping, I guess you'll be keeping the old location values so you can revert to them if the drop is succesful?

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman »

theeth wrote:Nkey is properties (often including name) in pretty much any window. 3D view, IPO, Sequencer, ...

Regarding the drag/drop functionality, in order to not mess the layout of the oops when drag/dropping, I guess you'll be keeping the old location values so you can revert to them if the drop is succesful?

Martin
Renaming is an issue we need to work out.
We can keep the NKey, theres no resion not to have multiple ways of doing the same thing.

I propose: keep the Nkey as well is LMB directly in the text to rename.

With tuhoppu accsess I can test this and further discusson can contunue...


Theeth, with drag and drop. Do you mean the OOPS box will not be re-positioned apon a relink?

Posibilities are:
1. No repositioning- Just keep it in the same place (Not at all confusing)
2. Auto-reposition child. based on hierachy (probably annoying, probably wont bother testing this one)
3. If a succsessfull lnk is made automaticly put the user into grabmode (may be woth testing but, opt 1 seems finer to me.)

theeth
Posts: 500
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Post by theeth »

ideasman wrote:Theeth, with drag and drop. Do you mean the OOPS box will not be re-positioned apon a relink?

Posibilities are:
1. No repositioning- Just keep it in the same place (Not at all confusing)
2. Auto-reposition child. based on hierachy (probably annoying, probably wont bother testing this one)
3. If a succsessfull lnk is made automaticly put the user into grabmode (may be woth testing but, opt 1 seems finer to me.)
That's exactly what I was talking about. And the thing I mention (albeit in more particular terms) is your Option 1.

Which I think would be most logical.

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

matt_e
Posts: 410
Joined: Mon Oct 14, 2002 4:32 am
Location: Sydney, Australia
Contact:

Post by matt_e »

Monkeyboi wrote:
ideasman wrote:Its interesting you use a sidways splines, I think this would actually be better cos the n you could use the horazontaly inclined bottom view that useually hold buttons.

It makes sense too because the blocks themselves are short and wide so less overlapping would occour.
Yes, I agree. In apps with trees, it's usually sideways for these reasons.
Actually, I disagree. Firstly, more of a personal workflow issue, but the OOPS can be useful if it's integrated more into Blender's select/edit/visualise cycle. It'd be great to can see the visual representation and also edit that data, all while using the OOPs to selcte and create relationships between that data. You could do this with a more functional OOPS simply by dividing the screen into 3 and having the 3D View and buttons window update depending on what's selected in the OOPS (easy to do - could be done automatically, or using UI controls attached to OOPS blocks). Shake works in a way similar to this and it's bloody brilliant!

Secondly, the OOPS is not really a tree - it's more of a network. In a tree structure, there's a clearly definied hierarchy. A is a child of B is a child of C is a child of D, etc. But Blender's datablocks can be linked in all sorts of interesting ways. Not just in the case of things like materials sharing textures, or objects sharing meshes, but there are also more subtle relationships between blender data that isn't currently visualised like parents, constraints, using textures to control lamps, using objects to define texture co-ordinates, etc. Besides, most node-based apps I've used (mainly compositing apps) have been laid out vertically, so we're going to need better justifications than anecdotes :)

Perhaps an interesting approach could be to somehow visualise these concepts through the direction. As a contrived example, normal heirarchical datablock links like object->obdata->material->texture could be represented vertically, while other relationships like parenting, constraints, etc. could be represented horizontally. I think it could get confusing to mix these concepts up (like in Monkeyboi's mockups). As far as I'm aware, object data can not be linked to object data - parenting is a different thing altogether.

Re. drag and drop, IMO you wouldn't want to be dragging and dropping the blocks themselves at all to connect them, just the endpoints of the splines. So none of your blocks would get moved anyway.

wavk
Posts: 126
Joined: Wed Oct 16, 2002 9:58 am
Location: The Netherlands
Contact:

Post by wavk »

broken wrote:
ideasman wrote:Now I have added curved spline segments its going to be tricky to work out if the users mouse is over it.
(Well I dont know how to at least)
Wavk, where are you? :) Wavk must have figured it out somehow when he made crafter - hopefully he should may be able to shed some light on the subject...

Hi guys! Nice to see people working on this. It's turning out a lot like crafter ;) Just the way I like it.
broken wrote:Wavk, where are you? :)
I'm in Spain :)

To see if a user's mouse is over a connection.... It's not as difficult as you might think it will be. I had to think over it too.

I guess you do know how to detect the mouse over a single line? The curve is basicly a number of lines. So what you have to do is do the same thing for every segment of the curve.

The way I did the line removal in crafter is basicly calculating if the line the user draws intersects with on of the lines in the curve, which is very basic math.

This is a VERY interesting discussion and I've been also thinking about the OOPS window. When I'm back home, I'll join the discussion :)

Have fun,

Wybren

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

broken wrote:Secondly, the OOPS is not really a tree - it's more of a network. In a tree structure, there's a clearly definied hierarchy. A is a child of B is a child of C is a child of D, etc. But Blender's datablocks can be linked in all sorts of interesting ways.
I think Blenders OOPS is a tree. There are quite limited possobilities as to which things can be connected together. Even if the possibilities were broader I would still call it a tree. A tree is a group of relationships as you say, where something is the child of something else which in turn is child of something else again. This is exactly how the OOPS works, consider datablocks such as Ipo and Material blocks 'children' of the object blocks and you will see it is a tree. Other applications hirearchy views work like this (Softimage for example) where materials etc. are children linked to (or children of) an object node, just as in Blender.

Post Reply