[Bf-committers] Knife tool and perspective mode -- incorrect results

Robert Wenzlaff rwenzlaff at soylent-green.com
Mon Nov 8 15:57:52 CET 2004


On Sunday 07 November 2004 16:10, Ton Roosendaal wrote:
> The current knife tool (ab)uses the subdivide() function, which allows  
> arbitrary location of a subdivision on an edge, but not more than 1 new  
> vertex per edge.
> For this proposal to work an entire new intersection routine has to be  
> made.

Well, it's a limitation of subdivide_flag(), not the intersect routine.  
Subdivide_flag() didn't even allow arbitrary location until I added it.

Actually, There _is_ a way to do multiple cuts without a new subdivide 
routine. 

1) Flag one division per edge until you happen upon an edge that already has a 
division flagged. 

2) Then call subdivide_flag().  

3) Continue with step 1 (where you left off) until you come to the end of the 
mousetrail.

Not pretty.  Might make a few extra faces where second cuts are first 
detected, but I think it would work.   Would require a little reorganization 
of the Knife and Intersect code (either Intersect would have to call 
subdivide directly, making it non-reusable for other tools, or Intersect 
would need a return code that indicates it's not done with the mouse curve 
yet and a couple static variables so it can remember where it left off.  Then 
Knife can call it again if there are multi-cuts...).  A little hackish, but 
the alternative is re-writing subdivide_flag() just for knife.

The other "problems" in Bart's propsal are mostly differing interpretations of  
"standard" key/modifier meanings.  Knife is a little awkward as it is a 
multi-step tool, and you need a way to indicate you are done drawing.  Like 
Wand select, you need to hit a key to indicate you are done selecting, except 
I chose just "enter".  Since it only takes one hand to work the mouse and one 
hand to hit enter, this seemed acceptable.  Bart doesn't agree.
 
*********************************************
Robert Wenzlaff   rwenzlaff at soylent-green.com



More information about the Bf-committers mailing list