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