b7174c9320
Fix connect-vertices failing for concave ngons
...
Also add:
- generic callback for bmesh elements.
- ability to pass an existing array to a bmesh operator.
2014-11-02 00:09:14 +01:00
ca1bca442a
Fix T40993: Store selection history for extrude
2014-08-25 16:57:38 +10:00
470e694652
BMesh: New operator flag not to clear history
2014-08-25 16:42:27 +10:00
2883a48b3c
BMesh: minor speedup for deleting faces. also remove unused delete-all
2014-01-17 09:35:53 +11:00
01a2634d61
fix [ #36412 ] Pivot of active element switches to last selected face after duplicating vertices.
2013-09-02 04:39:48 +00:00
54310b8086
bmesh: internal api change, remove BMOElemMapping, its not needed since the values can be stored in the ghash directly.
...
saves 24 bytes per element (per vertex/edge/face on a 64bit system), for bmesh operators.
2013-09-02 03:13:51 +00:00
790e9d9fa0
fix [ #35311 ] Planar Decimate / Limited Dissolve fails to merge some adjacent faces
...
optionally limit by face flipping, also added support to delimit by material and edge crease.
2013-06-03 05:07:16 +00:00
da5e0ea8fe
bmesh operators: use operator type-flag to specify which operations require normal-calculations and which operations require selection flushing.
...
eg, no need to flush selection after 'Smooth' tool, no need to recalculate normals after 'Select Similar'.
2013-04-14 06:22:34 +00:00
716ed32d90
fix [ #34870 ] bmesh.ops.* parameter lists and descriptions don't show in PyConsole on auto-complete
...
more a feature request then a bug but nice to have __doc__ on bmesh operators.
2013-04-05 19:58:18 +00:00
cb6f4160cc
api cleanup: replace BMO_vert_edge_flags_count() with more reusable function - BMO_iter_elem_count_flag().
...
closely matching existing BM_iter_elem_count_flag() function but checks tool-flags instead.
2013-03-27 10:14:09 +00:00
6a59f71d04
bmesh: face creation from a single selected vertex/edge, now extends the selection along wire/boundary edges and makes a face.
...
Selection is specifically so you can continuously fill in holes by tapping the Fkey.
Similar functionality to the F2 addon, however the mouse location isn't used.
2013-03-09 14:14:20 +00:00
b27854bd47
use booleans for bmesh api.
2013-01-14 16:42:43 +00:00
857df8065f
style cleanup
2012-12-28 14:19:05 +00:00
c5a8bd498d
use radians for 'spin' bmesh operator (since the rest of the py api uses radians). also rename BMO_OP_SLOT_SUBTYPE_MAP_FLOAT -> BMO_OP_SLOT_SUBTYPE_MAP_FLT for consistency.
2012-11-28 00:47:33 +00:00
8ecce451ab
bmesh operator naming - use clearer names for args eg: (mat -> matrix, use_singleedge -> use_single_edge)
...
also remove duplicate docs for operator arg formatting.
2012-11-28 00:16:06 +00:00
a9855c227e
py/bmesh api - add support for single item buffers (odd feature but used quite a bit with bmesh operators).
...
also add utility functions BMO_slot_buffer_from_single(), BMO_slot_buffer_get_single()
2012-11-27 09:21:57 +00:00
9982b283e6
fix for asserts added in own recent commit with more strict type-checking
...
- BMO_slot_copy now only copies compatible elements.
other minor changes
- don't use text.format(...), convention for UI scripts is C style string formatting.
- rename bmo_edgenet_prepare --> bmo_edgenet_prepare_exec
- float/double warning in bevel.
2012-11-27 02:34:40 +00:00
f8bc346eff
bmesh/py operator api:
...
add type checking for element buffers, there was nothing stopping python from passing any element type into an argument when in some cases only verts/edges/faces were expected.
now operator args define which types they support.
2012-11-27 00:50:59 +00:00
42c54bcd93
py/bmesh api - support for converting from/to BMO_OP_SLOT_MAPPING type.
2012-11-26 08:44:37 +00:00
3fe8134d6d
add subtypes to bmesh operators (needed for python api to know how to convert return values).
2012-11-26 02:24:03 +00:00
68e9fdeb81
code cleanup: comment unused members of bmesh operator slots and some osl style edits.
2012-11-20 14:31:58 +00:00
ebaf1306b8
bmesh operator api:
...
avoid per vert/edge/face string lookups in BMO_slot_map_* functions --- used in array modifier, subdivide, remove doubles and other tools.
2012-11-20 13:29:27 +00:00
e8667421ed
bmesh operator api edits, add macros and NULL the buffer if BMO_slot_buffer_alloc()'s len is zero.
2012-11-20 03:29:12 +00:00
48639af5f8
use input and output slots for bmesh operators, needed for the python api to get return values.
2012-11-19 14:58:31 +00:00
964f29797b
avoid using BLI_array for remove double helper function - bmesh_find_doubles_common(), was growing and array one at a time (with re-allocs), when the size is known.
2012-11-05 14:39:49 +00:00
1de76baf88
Add BMesh and WM symmetrize operators
...
* The symmetrize operation makes the input mesh elements symmetrical,
but unlike mirroring it only copies in one direction. The edges and
faces that cross the plane of symmetry are split as needed to
enforce symmetry.
* The symmetrize operator can be controlled with the "direction"
property, which combines the choices of symmetry plane and
positive-negative/negative-positive. The enum for this is
BMO_SymmDirection.
* Added menu items in the top-level Mesh menu and the WKEY specials
menu.
* Documentation:
http://wiki.blender.org/index.php/User:Nicholasbishop/Symmetrize
* Reviewed by Brecht:
https://codereview.appspot.com/6618059
2012-10-15 23:50:09 +00:00
ee96cde864
style cleanup: whitespace
2012-08-26 11:35:43 +00:00
9e742ffc2b
style cleanup: also correct some doxy comments
2012-08-18 13:07:48 +00:00
d9fcbe2f59
remove BMO_OP_FLAG_RATIONALIZE_NORMALS option which wasnt used anywhere.
2012-07-21 01:09:11 +00:00
90d215535e
add option so operators can be called with a flag, currently the only flag is to respect hidden geometry.
...
this is useful for bmesh tools that operate in object mode or for modifiers which would previously use hidden faces in some cases.
2012-07-21 00:58:02 +00:00
32cf7fcdb1
code cleanup: spelling
2012-07-16 23:23:33 +00:00
2ed69a95f4
add bmesh/python operator support for vector and matrix args.
...
also rename BMO_OP_SLOT_PNT to BMO_OP_SLOT_PTR (matches RNA and sounds less like 'point')
2012-07-02 20:28:43 +00:00
69a7e0af02
rename bmesh ops since they are exposed in an api now.
2012-06-30 15:27:13 +00:00
e6d55c97dd
add support for passing lists of verts/edges/faces to bmesh operators
2012-06-30 12:58:04 +00:00
3e99ec8d3d
all bmesh operators can now be accessed from bmesh.ops.* using a generic wrapper,
...
argument parsing still needs to have support added for vector, matrix and element types.
2012-06-30 11:14:10 +00:00
35d8424273
code cleanup: rename some members of bmesh operators, 'slots' is a C++ keyword which confuses some IDE's.
...
also added missing BMO_op_vinitf args to comments.
2012-06-30 09:55:04 +00:00
b51590d55d
code cleanup: bmesh subdivide code - BM_mesh_esubdivideflag() & "esubd" bmesh operator was passing a flag about in a fairly confusing way.
...
since we will eventually have python bmesh operator access better expose this as multiple booleans.
remove remaining editbutflag's
2012-04-23 03:43:02 +00:00
792f536b36
code cleanup: better use of BLI_array_* (grow in larger steps where possible), include BMO_iter_new in for loops.
2012-04-23 02:17:57 +00:00
b4a0152e76
code cleanup: float formatting was confusing in some cases - eg: (0.,0.,0.)
2012-04-11 08:15:13 +00:00
db9c9f6c64
fix [ #30772 ] No more than two subdivions give correct result when adding an icosphere
...
bug was introduced in r45297, which inadvertently broke testing for multiple flags at once.
added BM_elem_flag_test_bool() and BMO_elem_flag_test_bool() to get TRUE/FALSE results rather then the flag value.
2012-04-03 02:38:27 +00:00
c7aed8b2af
For BMesh functions that test flags, add enabled/disabled variants.
2012-03-30 17:30:49 +00:00
bbbbe1b00e
Add BMO function to append to a buffer slot.
2012-03-30 17:30:24 +00:00
09f29c0b70
style/name cleanup: have EDBM_* functions match our style guide and also match BM_ function naming conventions
2012-03-27 04:46:52 +00:00
b15255e820
move some bmesh headers into intern/ since they are not used externally.
2012-03-21 12:08:16 +00:00