[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11518] branches/soc-2007-red_fox/source/ blender: Editmesh tool interaction working, memleaks fixed, etc.

Martin Poirier theeth at yahoo.com
Thu Aug 9 00:49:05 CEST 2007


Was there a good reason for abusing TransData's factor
member to store bevel values instead of ival and val?

The use of global is a bit weird too, not sure I like
that (haven't look much at that part though).

Also, you shouldn't hold on to a pointer to the
TransInfo data structure (outside of the transform
engine), you should use BIF_GetTransInfo. This is
safer for future "unglobalizing".


--- Levi Schooley <redfox at hhofministries.org> wrote:

> Revision: 11518
> Author:   red_fox
> Date:     2007-08-08 20:02:24 +0200 (Wed, 08 Aug
> 2007)
> Log Message:
> -----------
> Editmesh tool interaction working, memleaks fixed,
> etc.
> First off, I removed all memory leaks (as far as I
> can tell).
> I did this by correctly handling editmesh, adding 
> CustomData_free() functions to BME_free_mesh() in
> BME_Mesh.c, 
> and changing the CustomData_copy() functions to 
> CustomData_merge() in BME_bmesh_to_derivedmesh().
> Second, I wrapped BME_SFME() with BME_split_face()
> so that 
> face and edge flags were propagated to the new
> geometry.
> Third, and this is the big one, I infiltrated the
> Transform() 
> system so that the editmode tool now works
> interactively. The 
> tool uses the horizontal mouse position to determine
> the 
> bevel distance. Also, you can click the middle mouse
> button 
> during transform to toggle between vert-only and
> edge-based 
> methods of beveling.
> To do this, I added a new global struct, editBMesh,
> to Global 
> G that holds pointers to all of the information I
> need. I 
> capture events during Transform(), and if they
> change a 
> significant option, the option is set globally, and 
> Transform() is cancelled. Trans.state and the global
> options 
> are tested by the calling function, bevel_menu(),
> after 
> Transform() completes. If they signal an option
> change during 
> Transform(), the tool is reset with the new options.
> Fourth, and last (except for some other little
> stuff, like to 
> fix warnings), I added a limiting value (that only
> works to 
> the fullest in special circumstances) that prevents
> the bevel 
> from "overshooting." This definitely needs some more
> math and 
> tweaking work, though.

Choose the right car based on your needs.  Check out Yahoo! Autos new Car Finder tool.

More information about the Bf-committers mailing list