59b082dc27
fix for error in recetly added bisect operator, in rare cases it could attempt to remove vertices twice.
2013-08-23 10:19:58 +00:00
5b5cae86b7
optiona for bmesh triangle fill operator to take a normal argument
2013-08-23 10:12:09 +00:00
6f4b79d5af
edits to new symmetrize tool
...
- snap axis-aligned verts to the center.
- expose the threshold for detecting if a vertex is on the axis.
2013-08-23 05:32:43 +00:00
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
da7af1e271
correct own error in r59365, reported as [ #36536 ] Extrusion detaches faces
2013-08-22 18:52:34 +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
e97f979f73
new bmesh operator bisect_plane, cuts a mesh in half, takes a user defined plane as an argument, handles concave ngons which need multiple cuts.
2013-08-22 17:56:08 +00:00
c1cc9f3376
bmesh duplicate operator: add vertmap output slot.
2013-08-22 17:32:41 +00:00
fca659252f
code cleanup: bmesh duplicate functions
...
- avoid using an iterator when stepping around an edges radial loop.
- use naming constant with the rest of the bmesh operators.
2013-08-21 14:35:51 +00:00
649743dfd6
mesh duplication was doing a loop & hash lookup for every loop corner, when there is no need since the faces are aligned.
...
was also initializing and stepping an iterator for no reason.
2013-08-21 11:27:18 +00:00
7d661839a6
correct error in recent commit (face customdata)
2013-08-21 11:09:50 +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
6f856777fe
bmesh api:
...
- use heap for BM_face_create_ngon_vcloud allocations.
- replace BM_face_create_ngon_verts with more efficient BM_face_create_verts
2013-08-21 05:20:57 +00:00
f48efbf464
inset depth wasn't working right with relative offset, also make it work for inset individual.
2013-08-20 17:38:29 +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
c5e14f62a6
bmesh improvements to face creation.
...
* fill-holes operator now takes advantage of new edge-net fill, works in many more cases then it did before.
* face-create that uses edge-net now initializes the normals based on surrounding geometry, only running normal calculation if there are no connected faces for a reference.
2013-08-18 15:14:55 +00:00
e2dc3313fe
correct recent commit
2013-08-18 14:35:53 +00:00
19d3e230e6
improved BM_face_copy_shared to copy from more possible connected loops and add filter function (not used yet).
2013-08-18 11:44:51 +00:00
0b00ba4ee0
remove unused function
2013-08-17 13:08:09 +00:00
0f07ca6809
remove unused args from edgenet fill (since rewrite, but they weren't used before either)
2013-08-17 09:25:12 +00:00
5fafc222f0
style cleanup
2013-08-17 08:21:40 +00:00
85b0315b3b
avoid double ghash lookups
2013-08-17 08:00:22 +00:00
d7cc2be2b7
add linklist stack macros, use where over allocating an array was previously done.
2013-08-17 05:33:55 +00:00
ef8ea14f45
rewrite edgenet fill bmesh operator.
...
previous code created faces with mixed face-flipping and could get very slow,
test with ~60,000 edges here hung my system for over 2min (didnt wait for it to finish), new code executes in about 1 second.
new code doesn't attempt to flip faces correctly, its quite involved to do so, especially when the new faces are not created adjacent to eachother.
so simpler to calculate normals afterwards.
2013-08-16 14:18:54 +00:00
5157eea977
bmesh edge-net: refactor out face creation into its own function, replace array reallocation with alloca.
...
fix for error increasing the face tag count when the face might not be created.
2013-08-13 23:48:48 +00:00
91f04bebf0
bmo_edgenet_fill_exec was building a vertex array when it didnt need to. also simplify for loops.
2013-08-13 22:28:16 +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
98c574e41a
use 'greater/less then or equal to' operators rather then adding 1.
2013-08-11 05:40:35 +00:00
00b39c4e5b
code cleanup: more confusion with 0/NULL/false
2013-08-07 03:55:21 +00:00
78d69a1e15
code cleanup: replace strcpy with BLI_strncpy for fixed size strings, and correct some harmless but incorrect sizeof() use
2013-08-04 18:12:49 +00:00
5f72462e38
correct edgeloop tagging assigning an uninitialized value, also remove redundant NULL check in edgenet fill
2013-08-03 17:29:53 +00:00
a4b922ad9b
correct invalid sizeof() use in bmesh (harmless in practice)
2013-08-03 17:27:05 +00:00
c17f5960df
correct error in own recent edits to triangle joining
2013-08-02 13:35:04 +00:00
78820edafc
use bmesh for loop macros for looping over mesh verts/edges/faces
2013-08-01 18:33:35 +00:00
76e989d7b1
function renaming for own recently added BLI_math functions, suggested by Brecht.
2013-07-30 10:58:36 +00:00
1300721d57
add asserts to ensure face normal is up to date.
2013-07-29 09:12:23 +00:00
cdc315a69b
bmesh optimization (noted as todo), avoid recalculating normal every time BM_face_legal_splits() runs,
...
assume normal is valid (assert when its not).
2013-07-29 06:04:09 +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
c754eaa0f9
add inline functions getting a single axis from mul_m3_v3()
2013-07-28 19:46:33 +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
d68917cb86
code cleanup: typos
2013-07-27 07:02:27 +00:00
8aa1bdbc89
simplify triangle joining and remove use of BLI_array.
2013-07-27 06:45:11 +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
29df776b89
optimization: call one bmesh operator for rotate (not 3).
...
added pivot_m4() utility function since rotating about an arbitrary point is handy.
2013-07-26 06:12:49 +00:00
09a9aa5720
add twist option to bridge tool (for circular loops)
2013-07-25 19:27:18 +00:00