6cba2b8d73
move bmesh tools into their own include,
...
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
2013-08-23 04:22:07 +00:00
c4e1d40022
replace symmetrize code with calls to bmesh operators.
...
calls: bisect, duplicate, scale, flip, weld.
resolves report [#36475 ] Symmetrise does not keep uv/weight
also fixes issues with faces that cross the axis more then once.
2013-08-22 18:02:36 +00:00
9470754fd3
bmesh api cleanup, face creation args now accept an example face (as with vertex and edge),
...
also replace BM_face_create_quad_tri_v with BM_face_create_verts
2013-08-21 07:51:47 +00:00
8937a8b839
use BM_CREATE_NOP arg rather then zero, with pointer and bool args in either side in some cases it gets a bit confusing.
...
also correct edge-rotate where bool->flag conversion worked by accident.
2013-08-21 05:39:46 +00:00
21ac0515e4
fix [ #36352 ] Inset individual, uncheck "select outer" selects zero faces
...
rewrite individual inset not to remove and re-create faces, makes re-selection simpler.
2013-08-20 16:59:04 +00:00
9f7961b6b1
Optimization and threading fix for shapekeys weights calculation
...
This commit fixes two different issues, which were caused by
how weights are being calculated for relative shapekeys.
Weights for key block used to saved in KeyBlock DNA structure,
which lead to situations when different objects could start
writing to the same weights array if they're sharing the same
key datablock.
Solved this in a way so weights are never stored in KeyBlock
and being passed to shapekeys routines as an array of pointers.
This way weights are still computed run-time (meaning they're
calculated before shapekey evaluation and freed afterwards).
This required some changes to GameEngine as well, to make it
never cache weights in the key blocks.
Another aspect of this commit makes it so weight for a given
vertex group is only computed once. So if multiple key blocks
are using the same influence vertex group, they'll share the
same exact weights array. This gave around 1.7x speedup in
test chinchilla file which is close enough to if we've been
caching weights permanently in DNA (test machine is dual-code
4 threads laptop, speedup measured in depsgraph_mt branch,
trunk might be not so much high speedup).
Some further speed is optimization possible, but it could be
done later as well.
Thanks Brecht for idea of how the things might be solved in
really clear way.
--
svn merge -r58786:58787 ^/branches/soc-2013-depsgraph_mt
2013-08-19 10:36:39 +00:00
6bdff7e2ad
fix [ #36481 ] When "Rip Edge" cannot be completed, Blender crashes weirdly
2013-08-19 10:00:17 +00:00
fa3481cf07
correct own error in recent linked stack edits.
2013-08-18 04:06:49 +00:00
5fafc222f0
style cleanup
2013-08-17 08:21:40 +00:00
d7cc2be2b7
add linklist stack macros, use where over allocating an array was previously done.
2013-08-17 05:33:55 +00:00
7a6f3d9e43
fix [ #36349 ] Separate mesh by material creates meshes with all the materials from the original
2013-08-14 14:36:43 +00:00
7d67261a7b
fix bug with editmesh rip, active edge could be left on the unselected side of the edge loops.
2013-08-14 09:14:33 +00:00
5a9c012d86
fix for bug in rip tool, isolated verts would remain selected after ripping.
2013-08-13 01:52:36 +00:00
49411a6e37
fix own regression, rip tool wasn't handling selection.
2013-08-13 01:00:07 +00:00
fd14c344e0
switch arg order for BM_elem_select_copy(), would like to make this constant for all bmesh functions eventually.
2013-08-13 00:35:23 +00:00
880a86230f
bmesh_vert_separate: remove unused return value
2013-08-12 23:49:56 +00:00
76cb6829e5
edge-split now leaves split edges selected
2013-08-10 23:22:35 +00:00
00b39c4e5b
code cleanup: more confusion with 0/NULL/false
2013-08-07 03:55:21 +00:00
1dc993ecd2
fix own regression in edgeloop delete [ #36389 ] loop detete crashes
2013-08-06 17:45:58 +00:00
90b22486c7
select faces after dissolving
2013-08-06 05:05:31 +00:00
4d9d21600d
Add key shortcut for context sensitive dissolve, Ctrl+X / Ctrl+Delete (as with node editor)
2013-08-06 05:01:11 +00:00
a75702b467
code cleanup: remove duplicate checks
2013-08-03 16:55:49 +00:00
4770848871
code cleanup: bmesh use 'const' for query functions.
2013-08-03 16:37:23 +00:00
31761f5e5b
code cleanup: replace bmesh_radial_face_find -> BM_edge_in_face
2013-08-03 15:30:57 +00:00
4f02555004
new mesh tool for cleaning up meshes, splits up non-planar faces while they exceed a given angle threshold
...
(access from the 'Mesh -> Clean' menu).
2013-07-28 19:53:46 +00:00
fc4a777511
use '_exec' suffix for operator execute callbacks, also picky change to sizeof() use in BLI_array.h
2013-07-28 17:06:31 +00:00
4982f200fa
move alloca define into its own header since its not related to BLI_array
2013-07-28 10:38:25 +00:00
72f2917032
bmesh: skip error checks when building in release mode (minor speedup),
...
also more strict use of BLI_array_declare(), only allow after array is declared.
2013-07-28 09:05:27 +00:00
6b3abde8d4
fix for joining face selection after recent api change, also bmo_join_triangles_exec() wasn't filling in its 'face' output slot.
2013-07-27 06:11:54 +00:00
a0969adb4e
fix for bridge tool selection flushing (after recent api change), also exposed bug in bmesh edgering-subdiv operator.
2013-07-27 05:57:20 +00:00
5dc3cfc983
fix [ #36282 ] Spin error with non uniform scale
...
add support for passing object matrix to bmesh transform operators.
2013-07-26 11:15:22 +00:00
09a9aa5720
add twist option to bridge tool (for circular loops)
2013-07-25 19:27:18 +00:00
4bc32d5ded
mesh tool to fill in holes, added in mesh clean menu,
...
unlike other face creation tools it copies data from surrounding faces.
2013-07-25 18:43:05 +00:00
a15e9ca495
triangulate and beauty fill also needed changes to selection handling after recent changes.
2013-07-25 07:00:07 +00:00
3270031660
correct problem with limited-dissolve not leaving the selection correctly (caused by BM_elem_attrs_copy no longer dealing with selection)
2013-07-25 06:05:44 +00:00
19496ab62a
internal bmesh api change: BM_elem_attrs_copy() no longer copies the selection flag.
...
this was slowing down modifiers since the selection flags would be copied and flushed to connected geometry.
2013-07-24 19:31:58 +00:00
cdac157f4c
code cleanup: use iterator macros, and replace BM_LOOPS_OF_FACE with direct loop access when converting a bmesh to a mesh.
2013-07-24 18:38:55 +00:00
8ef3b51325
fix [ #36256 ] Checker Deselect, failed with de-selected active face.
2013-07-23 18:49:44 +00:00
78490c0a7b
Fix [ #36259 ] Select linked flat faces with Shift+Ctrl+Alt+F does not work in ver. 2.68
...
Code was cleaning BM_ELEM_TAG flag of verts, when it actually uses the one of faces...
2013-07-23 18:03:40 +00:00
04ea8c0ee8
remove the pointer from BLI_bitmap's typedef,
...
hides that an arg passed is really an array which may be modified by other functions.
2013-07-22 23:20:48 +00:00
b7bf20d950
optimization: only calculate the normals for passing into derivedMesh foreachMappedVert/foreachMappedFaceCenter when needed,
...
this means in editmode with wire draw, face and vertex normals don't have to be calculated at all.
in most cases the normals are not used so add a flag that makes calculating them only for functions that need them.
also fix face normal calculation for CDDM, was using quad calculation for ngons too.
2013-07-22 22:59:47 +00:00
9634f8f115
transform was flushing the selection (inline), now skip this and use the selection as-is.
...
flush the selection on entering editmode instead (since the selection mode can be changed with another mesh).
is other tools leave the selection incorrectly flushed, those will need to be fixed so transform works as expected.
2013-07-22 10:44:24 +00:00
7db1d6556d
code cleanup: add break statements in switch ()'s, (even at the last case).
2013-07-21 08:16:37 +00:00
49c61e169b
misc edits
...
- fix for missing None check with recent 'Hidden Wire' draw option.
- avoid int overflow with mesh selection.
- remove ';' outside of functions.
2013-07-20 15:07:57 +00:00
e3c3a6e2c8
fix own bad regression/bug, removing vertex colors crashes [ #36227 ]
2013-07-20 01:15:12 +00:00
a2492e0603
style cleanup: braces/indentation
2013-07-19 16:44:17 +00:00
dc591a633e
previous commit r58256, had error in editmode (somehow it worked in most tests still).
...
also don't decrement active indices below zero (also a problem in 2.67).
2013-07-15 09:03:28 +00:00
dc9beee3e2
fix for error (-1 index into array) when removing customdata layers with no data, delete_customdata_layer was using layer data pointer to check weather to adjust index values (but both pointers can be NULL). Remove this code and do in customdata.c
2013-07-15 06:29:09 +00:00
b7396654e1
fix for bad NULL check in bmo_connect_pair, also remove duplicate checks in if statements and redundant initialization vars.
2013-07-13 16:25:47 +00:00
1d761d0eca
fix [ #36106 ] Defining the Loopcut number with the keyboard is limited to 130
...
mousewheel value is now clamped too and raised the limit to 500.
2013-07-12 01:33:42 +00:00