Commit Graph

964 Commits

Author SHA1 Message Date
Ton Roosendaal
ec834f8234 Bug fix, IRC report.
Mesh with very strange topology makes loop-select (ALT+select) crash.
Missing NULL check for do-while loop that can return NULL.

For Campbell: here's the file to check: http://www.pasteall.org/blend/21576
2013-05-23 16:01:25 +00:00
Campbell Barton
0ff22044cd Support for bridge tool subdivisions, smoothing and shape along the profile.
also added the underlying subdivision as a standalone operator in the edge menu, named: subdivide edge-ring.
http://www.graphicall.org/ftp/ideasman42/bridge_subd.png
2013-05-23 06:19:04 +00:00
Campbell Barton
aa0caa448e utility bmesh functions, for edge loop creation, optionally pass array BM_edge_split_n() to get verts created. 2013-05-22 06:00:26 +00:00
Campbell Barton
7781312346 code cleanup: rename bmesh operator files to be more consistent 2013-05-20 07:38:11 +00:00
Campbell Barton
43748eca2d ignore hidden edges for bmesh grid-fill. 2013-05-17 12:26:14 +00:00
Campbell Barton
b73c821b5d fix for BM_mesh_edgeloops_find(), could give edge loops with one vert. (caused bridge to crash sometimes) 2013-05-17 12:11:34 +00:00
Campbell Barton
f79e190307 fix for error in bridge tool, using freed faces from bmo input. 2013-05-17 12:05:07 +00:00
Campbell Barton
fbf890200c fix for crash in grid-fill where it was possible for rail edges to overlap. 2013-05-16 15:28:57 +00:00
Campbell Barton
b881dd9e7f grid-fill: fix error in detecting face flipping. 2013-05-16 13:58:21 +00:00
Jürgen Herrmann
cd34945792 Fix compile error on VS2012.
Unused variables (for debug only) give an error.
2013-05-16 11:04:01 +00:00
Campbell Barton
d4dc67d318 bmesh grid fill: interpolate vertex customdata (useful for vertex weights and shapekeys) 2013-05-16 07:21:34 +00:00
Campbell Barton
1df12416ca bmesh, grid fill tool.
This uses 2 edge loops and fills them with a grid, taking into account curvature of surrounding edges.
Access from face menu: Ctrl+F,G

http://www.graphicall.org/ftp/ideasman42/grid_fill.png
2013-05-15 20:34:40 +00:00
Campbell Barton
cd089ea321 bmesh edgeloop utility function, calculates an edge loop from 2 verts (start and endpoint). 2013-05-15 06:27:48 +00:00
Campbell Barton
be409d446c fix for own recent change with normal calculation (with no faces it wasn't freeing 0 byte allocation). 2013-05-15 05:56:49 +00:00
Campbell Barton
bbea18f8c1 bridge tool: fix for error in recent commit. missed NULL check for example face. 2013-05-14 10:56:18 +00:00
Campbell Barton
5888830acb tweak to r56784, no functional change, utility function worked confusingly. 2013-05-14 06:10:26 +00:00
Campbell Barton
3b8b62ea4e fix for problem where edge loop select would select too many vertices (extend selection too far),
before & after: http://www.graphicall.org/ftp/ideasman42/edgeloop_select_fix.png
2013-05-14 04:55:21 +00:00
Campbell Barton
b31e03fdd1 refactor bmesh edge loop walker,
was getting too complicated handing different cases at once, split out boundary case into its own branch.
2013-05-14 04:09:02 +00:00
Campbell Barton
c838b2d2a7 bmesh api: add 'is_boundary' attribute to verts. 2013-05-14 02:56:24 +00:00
Campbell Barton
92da9792fe fix for strange behavior with loop select involving ngons,
when selecting a loop with quads on one side an ngon on another - never select the outer boundary edge of the ngon.
2013-05-13 17:42:27 +00:00
Campbell Barton
f4bb0a7412 code cleanup: remove duplicate calls to 'BMW_current_state' 2013-05-13 16:35:28 +00:00
Campbell Barton
b48deabf4e new bevel: fix for crash in merge, could result in collapsing faces being invalid. rather then splice each edge, use weld_verts operator which handles removing degenerate geometry. 2013-05-13 14:31:45 +00:00
Campbell Barton
281c1565b9 remove BLI_array use in bmesh mirror, add BMO_iter_as_arrayN() function. 2013-05-13 13:44:20 +00:00
Campbell Barton
51c615e1bc new bridge tool: fix for cases with it would crash when existing faces matched the newly created ones. 2013-05-13 12:58:25 +00:00
Campbell Barton
f03a165a35 fix [#35308] Edge Split operator splits unselected edges 2013-05-13 12:09:21 +00:00
Campbell Barton
e40d403e43 fix for bridge flipping, loops pointing away from eachother (over 90d difference) would flip
now check the loops are facing eachother, taking their relative positions into account.
2013-05-13 11:21:33 +00:00
Campbell Barton
c961c56c64 add missing STACK_INIT, also quiet float <> double conversion warnings. 2013-05-13 02:10:59 +00:00
Campbell Barton
6c28e1d76a fix for crash with new bridge method used with invalid edge-loops. 2013-05-12 15:24:02 +00:00
Campbell Barton
4e4eff3937 remove BLI_array allocations from uv/color reverse, rotate. 2013-05-12 14:45:09 +00:00
Campbell Barton
40535f5ef3 bmesh recalculate normals - remove BLI_array reallocation, the max size of the array is known.
replace with STACK_* macros (moved to BLI_utildefines.h).
2013-05-12 12:23:44 +00:00
Campbell Barton
85145db47b remove wanton use of array reallocation for mesh smoothing. 2013-05-12 12:06:08 +00:00
Campbell Barton
f87464392c bridge option to bridge loop pairs,
change the operator option to an enum: Connect Loops - open/closed/pairs
because it was getting confusing having all as bools.
2013-05-12 10:00:15 +00:00
Campbell Barton
b6345616a7 fix for 2 crashes in bridge tool mixing open/closed loops with different vertex counts. 2013-05-12 04:08:45 +00:00
Campbell Barton
9cd0c5f7fb bridge tool: support for bridging loops with different numbers of vertices. 2013-05-12 03:36:41 +00:00
Campbell Barton
dc1a36534d add support for bridging multiple edge loops at once. 2013-05-11 16:20:29 +00:00
Campbell Barton
55f929ab3d - add generic edge-loop utility functions for bmesh.
- rewrite bridge tool to use the new functions (using edge & vertex arrays was quite cumbersome).
2013-05-11 14:40:03 +00:00
Campbell Barton
4c042f2145 bmesh: optimize bmesh_vert_separate, redice allocs (best cast it wont do any allocs).
gives approx 16% overall speedup to edgesplit modifier.

also reduce size of smallhash stack, was 521, which got doubled and was quite large on the stack. reduce to 64.
2013-05-09 12:46:35 +00:00
Campbell Barton
2e0f741d01 can't use alloca in inline functions (fills up stack - I thought compiler would be smart here).
also reserve the exact number of vert/face/edge/loops when creating a bmesh during undo.
2013-05-09 11:42:24 +00:00
Campbell Barton
278240f4b0 bmesh: avoid using BLI_array macros for every face when converting to bmesh, replace with alloca 2013-05-09 10:44:38 +00:00
Campbell Barton
6f8c29ab0b fix for 2 errors introduced since release
- shape key NULL pointer dereference.
- use uninitialized variable for bmesh free.

also update credits and merge dissolve flag assignment.
2013-05-09 07:02:51 +00:00
Campbell Barton
3d95873cf6 fix [#35257] Brige > Merge sometimes flips result 2013-05-08 23:14:27 +00:00
Campbell Barton
0ee45c9301 more optimal method of calculating the normal for the solidify modifier.
When adding 2 unit length vectors, the length can be used to calculate the angle.
2013-05-08 14:33:02 +00:00
Campbell Barton
7bd7da7cc6 code cleanup: dissolve - use iterator macros, remove unused function. 2013-05-08 14:08:37 +00:00
Campbell Barton
7dbf6d513e mesh dissolve vertices: option to split off corners of surrounding faces, makes the result more localized to the area around the vertex. 2013-05-08 14:01:38 +00:00
Campbell Barton
8ac2fee57a minor speedup for bmesh - add CustomData_bmesh_free_block_data(), use
when the block would be immediately allocated again.
2013-05-08 13:00:25 +00:00
Campbell Barton
f554c264da speedup for freeing bmeshes, skip calling free on every
vert/edge/face/loop if there are no free functions for the customdata
layers.
2013-05-08 12:59:56 +00:00
Campbell Barton
e4aff35020 smooth falloff options for loopcut. 2013-05-08 12:58:28 +00:00
Campbell Barton
f433f011cf add option to only beauty fill between vertices with non-matching tags,
useful for beauty filling the result of a bridge between 2 edge-loops.
2013-05-08 12:56:41 +00:00
Campbell Barton
0ffde4fae3 expose bmesh volume calculation to python api (use for print toolbox addon). 2013-05-07 00:00:32 +00:00
Campbell Barton
04234c5287 fix for missing slot in edge bisect bmesh operator. 2013-04-30 23:35:02 +00:00