I got edge selection!

General discussion about the development of the open source Blender

Moderators: jesterKing, stiv

Caronte
Posts: 76
Joined: Wed Oct 16, 2002 12:53 am
Location: Valencia-Spain-Europe

Post by Caronte »

It's a start, but is only usefull for better looking.

One of the bigger features of the edge selection, is to extrude several edges at time independent of the face structure.

If you select a edge from a plane and then select the oposite side, all the edges are selected (with the actual system) and you can't extrude only the desired sides.

It's only a comment, I apreciate very much your effort.

P.D: Sorry for my poor english.
Caronte.
"Some Day, All Will Be Digital"
http://www.nicodigital.com

Devas73
Posts: 26
Joined: Wed Oct 16, 2002 12:21 am

Post by Devas73 »

I remember you were also working on a python syntax highlighting system, which was cool... what happened to the project?

Goofster
Posts: 108
Joined: Mon Oct 14, 2002 12:26 pm

Post by Goofster »

devas:
I dropped the syntax highlighting because 1) I don't know python and 2) I'd rather work on more functional features like modelling tools.

Caronte:
We discussed this on IRC too, but it's very VERY hard to do with the current modelling system. after all, if you select two vertices of an edge, you inmediately select the edge.....it's just the blender way.
we'll keep it in mind tho, I can see the use.

Roel

macke
Posts: 24
Joined: Tue Oct 15, 2002 11:57 pm

Post by macke »

Goofster wrote:ok, the code is all cleaned up now. big coodles go to Mr. Ton himself for putting up with me, and Macke for being worse at math than me :D
That sends a warm tingling sensation straight to the bone!

Zarf
Posts: 46
Joined: Mon Oct 14, 2002 3:54 am

Post by Zarf »

Goofster wrote:devas:
I dropped the syntax highlighting because 1) I don't know python and 2) I'd rather work on more functional features like modelling tools.

Caronte:
We discussed this on IRC too, but it's very VERY hard to do with the current modelling system. after all, if you select two vertices of an edge, you inmediately select the edge.....it's just the blender way.
we'll keep it in mind tho, I can see the use.

Roel
Very cool work Goofster,

If you build a lookup table keeping track of edges that sits on top of Blenders internal mesh format there is no reason (that I can see, however with no experience with blenders source I speak from a position of relative ignorance) that this cannot be done. This is how essentially wings works with objects, it keeps everything in a generic mesh format similar to blenders (no edge data at all) with a winged edge database sitting on top of it that the program uses to edit the mesh. AFAIK (and contrary to popular belief) it dosnt even serialize the WEDS when saving files. The Winged Edge database is apparently generated at loadtime.

This makes a whole lot of sense for various reasons (you wouldnt want to build display lists by traversing a WEDS for one.)

There would also be a speed and memory issues to consider (I dont think it would be as huge a deal as some make it out to be though)

I am not advocating implementing a winged edge facility in blender, (there are other ways to keep track of edges, the half-edge data structure or some even simpler lookup scheme). Merely suggesting some possibilities since, as long as edge select is just a shortcut to selecting two points its not really edge select.

Keep up good work!

Cheers,
Zarf

JA-forreal
Posts: 0
Joined: Sat Mar 22, 2003 10:45 pm

Post by JA-forreal »

Thanks Goofster! UV map editing in Edit mode is a whole lot easier with your edge-select feature for dense meshes.

Mel_Q
Posts: 41
Joined: Wed Oct 16, 2002 12:00 am

Fantastic work :)

Post by Mel_Q »

Works great now! Even works in zbuf mode- thanks a million!

dickie
Posts: 15
Joined: Fri Oct 18, 2002 11:45 am

Post by dickie »

right on. excellent work.

will face selection be next?

luckybreak
Posts: 11
Joined: Fri Nov 22, 2002 12:35 am

Post by luckybreak »

And I like the fainter grid in this version - much easier on the eyes, is that just something specific to this, or can we hope to see it in the other um...trees.

TorQ
Posts: 29
Joined: Wed Jan 29, 2003 2:03 am

Post by TorQ »

killer! this is a step in the right direction! now if we could only get turn edge by clicking on the edge...

thorax
Posts: 320
Joined: Sun Oct 27, 2002 6:45 am
Contact:

Post by thorax »

There is a big difference between edge based modelling and
edge selection.. I would wonder if the underlying data structure
remained, and vertices and faces can be accessed if we know the
edge? Or if its having to do an edge search everytime we try to
select an edge... The difference will be in efficiency,
but users will respond emphatically to change, question is
is it progress..

thorax
Posts: 320
Joined: Sun Oct 27, 2002 6:45 am
Contact:

Post by thorax »

Goofster wrote:devas:
We discussed this on IRC too, but it's very VERY hard to do with the current modelling system. after all, if you select two vertices of an edge, you inmediately select the edge.....it's just the blender way

Roel
No its the way blender was poorly architectured..
Nice hack though.. Basically zero representation of edges in
the data structures in blender.. Blender only represents faces
and vertices, it was for efficiency in memory usage..
Edges are implied through the relationship of faces to
vertices.. If edges were a part of the data structure, then you
could find edges without searching through the faces for related
vertices, in fact you could traverse through the vertices
to related edges..

What I might do, if I was to hack this, was do the closest point search
which blender already does, then do the next closest point search for
other vertices in the face that use the first vertex.

thorax
Posts: 320
Joined: Sun Oct 27, 2002 6:45 am
Contact:

Post by thorax »

Zarf wrote:
There would also be a speed and memory issues to consider (I dont think it would be as huge a deal as some make it out to be though)

I am not advocating implementing a winged edge facility in blender, (there are other ways to keep track of edges, the half-edge data structure or some even simpler lookup scheme). Merely suggesting some possibilities since, as long as edge select is just a shortcut to selecting two points its not really edge select.

Keep up good work!

Cheers,
Zarf
I like Zarf's suggestions.. He always has cool things to say..
Yeah this would work.. You could derive the edge data from the mesh,
because as I said edges are implied.. It could be like a mode on a
mesh, when you want to edit with edge-based modelling, but
its like a wrapper on the existing mesh structure and could be
used in combination with existing tools.. The edge based modelling
is preferred for purposes searching for related geometry quicker. When a
edge based modelling tool is used it could allocate parts of the mesh
that are being modified, and perform an edge based operation on the
edge database, then write the changes back into the mesh model..
But it would also have to allocate the parts of the mesh, say edges that would have to be split, to change those as well..

It should be possible to wrap the existing structure.. But that would be just like implementing a new data structure, but it would have the advantages of reusing the existing toolbase.

As for the efficiency concern (creating the edge databse at runtime):
A lazy evaluation technique would be to create edge data structures
only when they are used.. So initially the model has no edge data,
but when we go to select vertices, edges are created when needed,
so that the next time the vertices are selected we can do a search
for the related edge through the edge database than through the face
database.. This would follow naturally from the implementation
of a edge database. The idea here is that rather than incurring the cost of the conversion to the edge based database at startup, its incrementally paid for on each edge selection operation or winged-based edge modelling operation. This could occur transparent to the user and
would allow a transition to acceptance of edge based modelling features in
blender.. Making blender into a sort of hybrid modeller.. But the
existing tools that blender uses would have to signal the edge database when faces/vertices change, so that the edge database can maintain its
relationships.. Otherwise it would require a sort of garbage collection
that goes through and trims out edges that no longer exist..

But all the old tools would have to give to the database is the faces affected, then the database could do garbage collection and weed out the edges that are no longer in the model..

Post Reply