Commit Graph

338 Commits

Author SHA1 Message Date
3a361f83bd BMesh: Bugfix for infinite loop in r43937.
Infinite loop occured when quad-to-triangles operator.

The iterator increment in the do/while conditional gets executed after
the continue, so the iterator was getting double-incremented and thus
could skip past the first loop.
2012-02-07 01:50:25 +00:00
542dfd94a5 Style Cleanup, use TRUE/FALSE defines. 2012-02-07 01:46:47 +00:00
286073fb4e Style Cleanup 2012-02-07 00:13:29 +00:00
81eedf6ada use more optimal method of looping over face loops. 2012-02-06 23:48:42 +00:00
c6f07c651e rename defines to upper case. 2012-02-06 22:57:25 +00:00
8733f89539 Style Cleanup: edits for line length 2012-02-06 06:26:54 +00:00
5c3fdfac77 Code Style: more code style edits. 2012-02-06 06:03:46 +00:00
e80c80dc51 replace some hard coded limits with defines 2012-02-06 05:18:08 +00:00
288a5b4b17 Style Cleanup: bmesh code style was a bit mixed - follow http://wiki.blender.org/index.php/User:Nazg-gul/CodeStyle 2012-02-06 04:37:27 +00:00
18763fd9c8 Minor Improvements...
- more efficient array growing
- use BM_NGON_STACK_SIZE for more static arrays
- dont use BLI_array for bevel code where size is known.
2012-02-05 23:09:07 +00:00
11d5a2d2eb Code Cleanup: style change only 2012-02-05 15:55:28 +00:00
d186719f6d optimization for interpolating between vertices when the factor is 0 or 1 (1 is used frequently). 2012-02-05 14:33:59 +00:00
dea59f60c4 fix for memory leak in bmesh_jekv(); --- dissolve would not free deform weights in some cases. 2012-02-05 14:07:25 +00:00
baa843d0d3 Code Cleanup: use vector functions for copying / adding UV's 2012-02-05 13:25:42 +00:00
ce90b472af Fix [#29984] Loop select crash on some wire edge meshes
Crash was because the loop walker's wire edge handling wasn't general enough (handled only wire edges that were connected to exactly one other wire edge)
2012-01-26 12:39:48 +00:00
c7e8af13d4 remove cellalloc, from my tests jemalloc beats cellalloc, so we better just use a better malloc replacement.
See Details:

http://wiki.blender.org/index.php/User:Ideasman42/BMeshBranchReview#Update_43694
2012-01-25 20:18:12 +00:00
3d01f13c43 fix for 3 issues when applying a deform modifier in editmode.
- drawing face normals was broken (using wrong index).
- drawing flat faces in solid mode would display ugly tesselation normals (as if the model was made of triangles).
- drawing smooth faces in solid mode would show vertex normals based on tesselation (heavily slant in 1 direction).

now the normals are calculated and stored per polygon (will save some memory too for non tri meshes).
2012-01-24 19:37:18 +00:00
41c0f0c733 replace BLI_array_growone() with BLI_array_growitems() when the size of the increase is known ahead of time, will reduce reallocs and give some speedup. 2012-01-23 13:51:44 +00:00
f8d21588b6 fix for leak in bmesh_jekv() when large ngons were being used.
also make BLI_array use more efficient.
2012-01-23 13:44:57 +00:00
40a1ecafb0 replace BLI_array_staticdeclare with BLI_array_fixedstack_declare()
This has the advantage that it only does 1 alloc at the beginning if the stack variable is too small.
(rather then constantly check to grow one, which is a really huge macro too).
2012-01-23 13:41:28 +00:00
61a5cc28be disable re-tesselation for modifiers that use bmesh, array/bevel/edge split - were tesselating 2 times and didnt need to.
also comment array modifier from flushing selection flags.
2012-01-22 21:12:18 +00:00
b54182c93f minor header tidy up 2012-01-22 18:44:44 +00:00
b3938cee63 minor warning/fixes 2012-01-20 15:22:20 +00:00
9c03a8ca77 quiet some warnings 2012-01-20 14:44:38 +00:00
e6b8469316 fix in recent commit with face normal calc optimization 2012-01-19 20:52:51 +00:00
7c82dbe68b minor optimizations for bmesh_update_face_normal(), which is called while transforming. 2012-01-19 18:35:08 +00:00
ad3e9900d6 call CDDM_from_BMEditMesh without creating tessface data for modifiers.
- in the case of deform modifiers this is very safe (assuming the mods themselves dont need tessface data), since the DM is freed right after, so this is an easy speedup.

- in the case of bevel and split edge modifiers this should still work out fine since mods that need tessface data will generate it.
2012-01-18 15:29:25 +00:00
9d782c8a1a argument for CDDM_from_BMEditMesh() so creating tessface data is optional, no functional changes since all callers use this so far. 2012-01-18 15:09:27 +00:00
fb07ed7cfe fixed [#29907] Uncoherent behaviour of Delete Edge Loop 2012-01-18 12:31:41 +00:00
72169b79a7 fix own error [#28645] TODO: dissolve edges doesn't delete lonely vertices on edges
made this mistake when refactoring edge collapse code, though overall I think the function works better then before now.
2012-01-17 03:40:37 +00:00
444833a8fb remove some redundant lines of code. 2011-12-21 07:36:30 +00:00
71edaceab9 avoid a loop over all faces in copy_mesh 2011-12-21 05:35:19 +00:00
8a8cb2c3ef minor formatting edits 2011-12-21 04:56:04 +00:00
57e6ac47a0 use TRUE/FALSE rather then 1/0, no functional changes. 2011-12-21 03:33:32 +00:00
6254cc1c70 2 new bevel options for the operator and the modifier.
* even offset, uses same shell distance method as solidify to give even with beveled faces.
* distance offset, this is mostly for compatibility with the modifier in trunk which uses the bevel width as a distance rather then a percentage. at the moment this is awkward for the operator since it makes percent act differently where the 0-1 range doesnt make sense.

still need to bring back more options from trunks bevel modifier.
2011-12-13 09:57:19 +00:00
143a654e6f formatting and minor refactor of some bmesh functions.
* BM_Make_Quadtriangle --> BM_Make_Face_QuadTri_v
* BM_Make_QuadTri      --> BM_Make_Face_QuadTri
2011-12-13 06:56:10 +00:00
30d129593b non functional changes & de-duplicate yet another face center function 2011-12-12 23:58:05 +00:00
8d0dc29aba remove BLI_blenlib since its not needed in quite a few bmesh files 2011-12-12 22:34:05 +00:00
6b674008a1 give a more useful error message when bmesh operators fail to pass, was also leaking memory in this case. 2011-12-08 02:08:07 +00:00
1ec4629d88 replace function in commented code incase we want to bring it back 2011-12-07 21:55:59 +00:00
c5e6b44748 split BM_Collapse_Vert into 2 functions
* BM_Collapse_Vert_Faces
* BM_Collapse_Vert_Edges

since these are both quite different operations and callers where checking for one case or another anyway.
2011-12-07 21:54:14 +00:00
4b09f86c32 rename iterator type from htype to itype (htype means header type for BMesh elements) 2011-12-07 20:55:28 +00:00
d1183814c4 BMESH TODO - BM_editselection_plane now returns a useful orientation from a tri/quad. 2011-12-07 20:13:15 +00:00
0b805fcb5d remove double lookus in BM_GetCDf/BM_SetCDf, also remove bm_cdata_get_single_float which was a duplicate of BM_GetCDf. 2011-12-06 08:07:12 +00:00
e4ced610ee fix for crash calling rotate edge on a completely selected torus. 2011-12-06 03:31:28 +00:00
d74c564235 svn merge ^/trunk/blender -r42333:42361 2011-12-02 23:02:21 +00:00
34c5698d2e some formatting edits & #if 0 files which are not used. 2011-12-02 22:35:05 +00:00
9010378425 fix [#28645] TODO: dissolve edges doesn't delete lonely vertices on edges
dissolving a vert on 2 edges now uses 'JOIN EDGE KILL VERT'

also removed a fairly large block of code since 'jekv' handles this too.
2011-12-02 05:54:48 +00:00
f06bbaed92 split BMFlags_To_MEFlags & MEFlags_To_BMFlags into type specific calls, since we always know the types with these functions theres not much point in having generic calls with a type switch. 2011-12-01 01:41:56 +00:00
bc9b593909 More DM func renames, fixing some build breaks, renaming more stuff, also seems like it might be fixing the recent CDDM_copy corruption/leak bug 2011-11-30 18:03:56 +00:00