5342d57a5e
allocate bmesh data from known sizes where possible (was still using defaults in places),
...
add macros for initializing BMAllocTemplate's, also add assert on invalid use of bmesh_sfme()
2013-09-24 03:31:00 +00:00
7490cb9e94
fix for bad mistake in recently added BM_face_create_verts functiofix for bad mistake in recently added BM_face_create_verts functionn
2013-08-21 16:00:53 +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
57f8a252d6
fix own regression [ #36443 ] Vertex to UV index doesn't match with 2.68a
...
add BM_face_create_verts wrapper for BM_face_create which creates its own edge array.
2013-08-21 05:11:11 +00:00
49411a6e37
fix own regression, rip tool wasn't handling selection.
2013-08-13 01:00:07 +00:00
880a86230f
bmesh_vert_separate: remove unused return value
2013-08-12 23:49:56 +00:00
4a8d4f319f
bmesh_edge_separate: avoid counting radial loops when splitting edges, we only need to check if the edge is boundary or not. will speedup edgesplit modifier a little.
2013-08-12 22:36:46 +00:00
83617429cf
Fix build warnings with clang and UNUSED_RESULT_ATTR (attribute declaration must precede definition).
2013-08-05 12:49:13 +00:00
31761f5e5b
code cleanup: replace bmesh_radial_face_find -> BM_edge_in_face
2013-08-03 15:30:57 +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
7db1d6556d
code cleanup: add break statements in switch ()'s, (even at the last case).
2013-07-21 08:16:37 +00:00
7fec23ae0a
fix for problem with edge slide where it would stop shapekey modifier from being applied (because of added vertices),
...
now, instead of making hidden copies of faces, the faces are copied into a temp bmesh.
also remove a hash that was being created and not used (old code).
2013-07-11 04:24:36 +00:00
401eaa448b
Fix for distortion happens when flipping mesh normals
...
Issue was caused by missing X/Y displacement components
flip when flipping the normals (flipping the normals changes
the tangent space apparently and displacement vectors need
to be modified to correspond to new space).
Reported by Jonathan Williamson in IRC.
2013-06-11 08:06:59 +00:00
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
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
456f3b318a
code cleanup: minor changes, clang checker option for exact size matches and use vector functions.
2013-04-14 12:01:12 +00:00
29c8bd7b24
api cleanup: split part of BM_face_create_ngon_vcloud() into a new function BM_face_create_ngon_verts(),
...
a function to create a bmesh face from an ordered vertex array, optionally creating edges and calculating winding.
2013-03-27 05:52:28 +00:00
0d0291f6e1
code cleanup: incorrect sized array args, remove some redundant code.
2013-03-17 10:26:23 +00:00
347e2b6cb0
code cleanup: make bmesh var names more consistent
2013-03-09 17:12:24 +00:00
2005f7c6c0
style cleanup: also some typos
2013-02-11 00:49:00 +00:00
b27854bd47
use booleans for bmesh api.
2013-01-14 16:42:43 +00:00
3d69dbd44a
use openmp to thread some common bmesh operations
...
- BM_mesh_elem_toolflags_ensure / bmo_flag_layer_alloc / bmo_flag_layer_free / bmo_flag_layer_clear
- BM_mesh_select_flush
- EDBM_index_arrays_init
notes:
- mostly use openmp `sections` to split operations on vert/edge/face since this is a fairly minor change.
- split tool flag pool in 3, this means we can allocate exact sizes needed and iterate on them in threads without alloc'ing.
2012-12-12 05:04:01 +00:00
c40030a36c
replace BLI_array_declare with BLI_array_staticdeclare() and BLI_array_alloca() for smaller arrays.
2012-12-12 02:48:03 +00:00
71730f26d7
replace BLI_array_fixedstack_declare with() new macro BLI_array_alloca() which uses stack memory always and doesn't need to be freed explicitly.
2012-12-11 15:10:19 +00:00
e2f0a1e4db
own cleanup commit in bmesh branch - removed last letters from ends of some comments.
2012-12-11 14:24:27 +00:00
d72a6c3018
fix for another error in my own recent commit, beauty fill crashed.
2012-11-30 16:15:49 +00:00
07ccd3ee3f
fix [ #33029 ] Applying modifier leaks memory
...
Thanks for Sergey for finding the bug & patching, This fix works a bit differently.
Theres no need to allocate the customdata in the first place - since its written into. So add a flag for vert/edge/face/loop creation functions so they can skip customdata creation.
2012-11-29 16:26:39 +00:00
7ef78723b7
code cleanup: doxy comment corrections and correct own typo animation player docs.
2012-11-26 00:59:11 +00:00
2fd1f38fbc
enable edge draw by default for new edges,
...
alternate fix for [#33217 ] Mirror Modifier not showing "Shadow" mesh in wireframe view
2012-11-21 10:57:45 +00:00
cdc4037f0d
bmesh: BM_verts_in_face was using bmesh operator flag which is no longer ensured to be available,
...
use internal apiflag instead, Thanks to Nicholas Bishop for spotting.
also quiet some warnings.
2012-11-19 00:54:55 +00:00
a9af563526
bmesh: lazy initialize bmesh tool flag pool, has the advantage that modifiers that dont use bmesh operators can skip allocating it.
2012-11-18 12:14:22 +00:00
cf6994b910
code cleanup: spelling,
...
also initialize bmesh-bevel settings struct to zero to avoid possible uninitialized memory later.
2012-11-12 07:33:01 +00:00
0bfc92ff8e
BM_iter_as_arrayN() can now take an optional existing array argument, useful to avoid many small malloc's by passing a fixes size stack variable instead.
...
Will give some speedup to edge-split modifier and bevel.
2012-11-12 05:53:43 +00:00
ec67334e25
A few more BMesh errors messages translated, and "automated" translation for modifers too!
2012-10-27 11:12:09 +00:00
23d43396ff
code cleanup: quiet -Wshadow warning, var name changes for splice functions and add assert for BM_edge_splice() when edges don't use the same vertices.
2012-10-20 09:56:40 +00:00
9b07c98bb4
code cleanup: minor style change & quiet warning, also add assert for BM_vert_splice() to check for invalid use.
2012-10-19 03:07:58 +00:00
12a8c19956
un-subdivide bmesh operator, useful for making lower polygon versions of models, can give nicer results then edge collapsing which tends to give a lot of sharp triangles.
...
works on edges and faces, has iteration option to further reduce the poly count.
access from the edge menu, under subdivide.
example: http://www.graphicall.org/ftp/ideasman42/bmesh_unsubdivide.png
2012-10-16 16:04:12 +00:00
eb771c78cd
fix for free NULL pointer in BM_vert_splice() and BM_iter_as_arrayN() failed with BM_VERTS_OF_MESH/BM_EDGES_OF_MESH/BM_FACES_OF_MESH.
2012-10-16 14:35:37 +00:00
da9394f596
code cleanup: define sizes of vectors for function args and use C style comments
2012-10-15 09:11:17 +00:00
c9c76a9a68
add compiler hints that failing to create a bmesh face is unlikely.
2012-10-01 11:12:49 +00:00
25c96bc9f3
code cleanup: remove unused macros, commet some which may be useful later - or good to keep for completeness. quieted some warnings and add flags -Wmissing-include-dirs and -Wno-div-by-zero to cmake/gcc
2012-09-20 01:02:39 +00:00
bd5fdf63cb
fix [ #31456 ] Extreme lag editing meshes
...
running BM_CHECK_ELEMENT was taking over 75% of the time to subdivide a mesh, since this only reports errors, and is so slow - only run this on non-release builds.
2012-09-12 04:53:49 +00:00
39231c90dd
fix [ #31738 ] BM_vert_splice modifies loops during iteration
...
patch by Nicholas Bishop, modified to avoid looping over vert-loops one extra time.
added BM_iter_as_arrayN(), returns an iterator as an array without knowing the length before calling.
2012-09-11 06:12:48 +00:00
1a7eb3454e
style cleanup
2012-09-08 08:59:47 +00:00
a9f10b6bc2
style cleanup
2012-09-08 06:40:03 +00:00
47ec91e8d3
code clenup: comments and some style edits on ghost/osx (odd indentation)
2012-09-06 02:10:09 +00:00
0dd42fd513
Fix #32387 : some mesh modifications breaking other shape keys.
...
The vertex shapekey index is now no longer copied, and propagation of offsets
in the basis to other shapekeys is disabled if new vertices were added. The
reason being that the propagation will only be done for the old vertices leaving
the new ones behind, and so doing e.g. subdivide + translate on the basis would
create a mess on other shape keys.
2012-08-23 13:54:30 +00:00
e9caa21830
fix own error in recent smoothview cleanup, also correct some cross references in bmesh docs.
2012-08-17 14:43:20 +00:00