View previous topic :: View next topic |
Author |
Message |
Vijchti Member
Joined: 16 Aug 2006 Posts: 250
|
Posted: Sun Oct 01, 2006 9:22 pm Post subject: Deletion of Edges and a Redo Button |
|
|
Exactly what it says. I often connect vertices in complicated objects, rearrange the vertices, and then realize that I have funky shapes because of the way I connected them. It would just be nice if I could delete edges so that I could fix any problems in the way vertices are connected without having to hit the undo button several times.
Also, it would be nice if I could redo what I've just undone -- there are many times when I go through several steps of undoing only to realize that the way I just had it was already perfect...but I have to do all of the work over again instead of being able to hit a redo button a few times. _________________
"Psst, Here's a secret...Your last mortal thought will be,
'Why did I take so many days - just like today - for granted?'" |
|
Back to top |
|
|
Prime_8 DeleD PRO user
Joined: 11 Sep 2006 Posts: 34
|
Posted: Mon Oct 02, 2006 7:19 am Post subject: |
|
|
I second this one . _________________ old fart coder |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Mon Oct 02, 2006 6:50 pm Post subject: |
|
|
Thanks for the suggestions. Although we cannot implement each suggestion, please keep 'm coming!
Delete edge: I think that should be part of the lowpoly routines indeed. Adding it to the list!
Redo: I admit a Redo function would be cool. It is also pretty hard and time-consuming to implement, at least right now. It is on our list but I fear it will be a while before it gets implemented as it is not very high on our priority list. Hope you understand! |
|
Back to top |
|
|
Vijchti Member
Joined: 16 Aug 2006 Posts: 250
|
Posted: Tue Oct 03, 2006 1:28 am Post subject: |
|
|
Yeah, 's no big deal. I just figure that the more things I point out, the better DeleD will be. _________________
"Psst, Here's a secret...Your last mortal thought will be,
'Why did I take so many days - just like today - for granted?'" |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Tue Oct 03, 2006 6:19 am Post subject: |
|
|
|
|
Back to top |
|
|
jwatte DeleD PRO user
Joined: 26 Apr 2006 Posts: 513
|
Posted: Tue Oct 03, 2006 5:50 pm Post subject: |
|
|
Quote: |
I admit a Redo function would be cool. It is also pretty hard and time-consuming to implement, at least right now. |
Why would Redo be any harder to implement than Undo? Just use your Undo system, going the other direction.
In general, when you implement an Undo system, you package all state modifying operations into a Command object. The Command object has two methods: Do, and Undo (plus methods like "MemoryUsage" and "Name" to manage the Undo queue/menu). The Command object collects necessary state (user parameters like selection, and the current state of the affected object) on creation. The Undo queue then immediately calls Do on it, to actually perform the action.
Undo/Redo just steps back/forward in the queue. When you have stepped back, and then do some new operation (instead of redo), you delete the available redo objects, and create a new Command for the new operation.
It sounds to me as if DeleD is not structured like this, internally. However, it's been my experience that you can actually factor it into this way without too much work, because you already have all the code pieces: the pieces that know how to actually do stuff, and the pieces that decode menus and clicks to call the do-stuff functions.
For interactive commands (click-move, say), the Command object would capture undo state on creation, and then be updated with "Do" state as the user moves the mouse; it might even own the mouse until mouse-up. After that, it's the same treatment as "immediate" or dialog-induced commands.
I'm not trying to dis DeleD or anything; I'm just trying to say that it's been my experience that moving to this kind of structure isn't as hard as it might initially seem, and it gives you full undo/redo. What's more -- it gives you an excellent hook where to drop in scripting! (hint, hint :-) |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Sun Apr 01, 2007 10:05 am Post subject: Re: Deletion of Edges and a Redo Button |
|
|
Vijchti wrote: |
Exactly what it says. I often connect vertices in complicated objects, rearrange the vertices, and then realize that I have funky shapes because of the way I connected them. It would just be nice if I could delete edges so that I could fix any problems in the way vertices are connected without having to hit the undo button several times. |
I'm busy determining a workload for the next release (1.62) and am thinking of implementing "Delete Edge" functionality.
Question: how would this work? I see two possible ways here:
- deleting an edge simply deletes its 2 vertices.
- deleting an edge merges the polygons using that edge; note: this probably means an edge can only be deleted if the polygons using that edge are coplanar.
What would you expect?
P.s I'm also thinking about implementing Redo. More on that later. |
|
Back to top |
|
|
Vijchti Member
Joined: 16 Aug 2006 Posts: 250
|
Posted: Sun Apr 01, 2007 6:05 pm Post subject: |
|
|
The way I see it working is that the edge itself is deleted first (you'll basically disconnect the two vertices regardless of whether the polygons are coplanar or not), then you may consider having DeleD select the vertices that it connected so that you can delete those as well if you want. _________________
"Psst, Here's a secret...Your last mortal thought will be,
'Why did I take so many days - just like today - for granted?'" |
|
Back to top |
|
|
Mr.Fletcher DeleD PRO user
Joined: 07 Aug 2004 Posts: 1772 Location: Germany
|
Posted: Thu Apr 05, 2007 8:35 pm Post subject: |
|
|
I'd say delete the one or two (or more) polygons that share the edge. _________________ Behold! The DeleD Wiki! Please help us expanding it
DeleD on IRC |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Fri Apr 06, 2007 1:45 pm Post subject: |
|
|
A few remarks:
- if I do not take the coplanarity of the polygons sharing the edge in question into account, deleting that edge might result in bad geometry. For example, deleting an edge of a cube would then result in one polygon that "goes around a corner" so to speak, and I think most people do not want that to happen. On the other hand, if you delete an edge which is shared by 2 coplanar polygons, the result is one big polygon that is on a plane. Perfectly allright to me, I'd say.
- deleting all polygons sharing the edge in question... is that what you would expect when deleting an edge? For example: imagine a grid (as DeleD can create those). All polygons on a plane, and there you are selecting and deleting one edge. You then see 2 polygons deleted, so a gap is created in the grid. Is that what you wanted to achieve? I think not. If I want a gap, I delete those 2 polygons by hand myself. Instead, I want to remove an edge which, I think, should result in the 2 polygons being merged.
It is very important to get the definition of deleting an edge straight. The way I see things right now is that if you want to delete an edge, the polygons using that edge will be merged if they are coplanar. All comments appreciated! |
|
Back to top |
|
|
Mr.Fletcher DeleD PRO user
Joined: 07 Aug 2004 Posts: 1772 Location: Germany
|
Posted: Fri Apr 06, 2007 2:35 pm Post subject: |
|
|
That's okay, but what if not? I think it should rather delete the polygons instead of doing nothing if they are not coplanar, which should be the most of the cases. _________________ Behold! The DeleD Wiki! Please help us expanding it
DeleD on IRC |
|
Back to top |
|
|
Jeroen Site Admin
Joined: 07 Aug 2004 Posts: 5332 Location: The Netherlands
|
Posted: Fri Apr 06, 2007 4:44 pm Post subject: |
|
|
Mr.Fletcher wrote: |
That's okay, but what if not? I think it should rather delete the polygons instead of doing nothing if they are not coplanar, which should be the most of the cases. |
The question still stands though: do you expect the "Delete Edge" command to actually delete polygons? Appearantly, you do but I'm still not convinced this is the right way to do things.
Hmm.. I wonder how other applications do this? Silo seems to just merge the polygons whether they are coplanar or not. It also seems to delete vertices (and thus parts of polygons) if the vertices in question are no longer used by other parts of the geometry after the edge has been deleted. I could implement this behaviour in DeleD, although I do not agree with leaving the coplanarity out of the algorithm. |
|
Back to top |
|
|
Vijchti Member
Joined: 16 Aug 2006 Posts: 250
|
Posted: Sat Apr 07, 2007 2:19 am Post subject: |
|
|
Jeroen wrote: |
The question still stands though: do you expect the "Delete Edge" command to actually delete polygons? Appearantly, you do but I'm still not convinced this is the right way to do things. |
I would expect it do delete the vertices that create it, just as deleting the vertices that create and edge deletes that edge. However, I'm not entirely sure that's the right way to do it either.
Unfortunately, my computer died a while back and now I have no other 3D editing programs to test this out on. _________________
"Psst, Here's a secret...Your last mortal thought will be,
'Why did I take so many days - just like today - for granted?'" |
|
Back to top |
|
|
|