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
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
57ce6d1470
old todo, rotate around individual origins now supports connected face/edge islands.
...
previously this gave very odd/annoying results, see bug reports [#36134 ], [#35419 ]
2013-07-22 14:50:38 +00:00
7398c49776
add support for BM_mesh_calc_face_groups to use vertex connectivity (not currently used yet)
2013-07-22 08:12:50 +00:00
7db1d6556d
code cleanup: add break statements in switch ()'s, (even at the last case).
2013-07-21 08:16:37 +00:00
a2492e0603
style cleanup: braces/indentation
2013-07-19 16:44:17 +00:00
7087b8b9fe
code cleanup: remove BLI_array use when extruding individual faces. also use BM_face_copy utility function.
2013-07-19 11:45:21 +00:00
79b919644b
code cleanup: remove array reallocation in bmesh duplicate function (use alloca)
2013-07-19 10:39:32 +00:00
7430701600
correct own incorrect check bmesh edgerin subdivide, also add missing break in orthogonalize_m3 though this one wouldn't effect release builds.
2013-07-16 11:39:48 +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
13e33522dc
fix for bridge tool where the 2 loops overlap (typical use for scanfill), however its nice to support with bridge too since it can do subdivisions, handles customdata and fills in quads.
2013-07-11 08:37:30 +00:00
bd5cb6fb3b
fix for own error in normal-recalc r58077, initial face flipping wasn't checking against face-island center.
2013-07-09 01:18:15 +00:00
14ab39c5e0
minor improvements
...
- calc normals only check flag when needed.
- keymap, dont get name unless its needed.
- keymap, avoid property lookup.
- idprop debug print, include pointer, helpful for troubleshooting.
2013-07-09 00:13:17 +00:00
27734f5bec
fix/improve normal calculation, noticed when checking on the previous bugfix.
...
- normals depended on the meshes rotation, so you could rotate Suzzane and in some cases one of the eye normals would be flipped.
- normals depended on the meshes placement in relation to the meshes center, now find the outer most face by each face-island center.
2013-07-08 13:30:11 +00:00
61bbefe40d
remove unused normal-recalc flags.
2013-07-08 08:56:46 +00:00
335fd7388f
move normal recalculation into its own source file.
2013-07-08 08:50:04 +00:00
2c8087aa2a
fix [ #36047 ] Recalculate normals produces faulty normals on certain simple meshes
...
The mesh in the report had 3 faces-user-edges, resolve the problem by not walking over these edges.
also don't recurse anymore (avoids realloc's).
2013-07-08 00:51:30 +00:00
0a1bcc78e0
fix for writing past array end with loop filling.
2013-07-06 02:20:39 +00:00
0d18f1829a
fix [ #35989 ] bridge tool flip mash
...
open edge loops were calculating flipping incorrectly.
2013-07-05 08:45:42 +00:00
e9208e99b7
bridge tool: calculate face normals before triangulating, own error when removing normal recalc from the bmesh operator.
...
also rename `Fill Grid` -> `Grid Fill` to match `Beauty Fill`
2013-07-01 07:15:12 +00:00