Campbell Barton
bf0c8e116d
PyAPI: add PyList_APPEND
...
This appends while giving ownership to the list, avoiding temp assignment.
This matches PyList_SET_ITEM which bypasses refcount's
Note, this also reduce code-size, Py_DECREF is a rather heavy macro.
2015-01-06 19:09:53 +11:00
Campbell Barton
9fd569a654
PyAPI: add utilities PyTuple_SET_ITEMS, Py_INCREF_RET
...
Setting all values of a tuple is such a common operation that it deserves its own macro.
Also added Py_INCREF_RET to avoid confusing use of comma operator.
2015-01-06 19:09:11 +11:00
Campbell Barton
8106a6b75d
mathutils: refactor instantiation
...
remove 'type' argument, very few mathutils objects are wrapped,
add new function for creating wrapped objects.
also fixes unlikely memory leak if the data-array can't be allocated.
2015-01-04 17:43:57 +11:00
Campbell Barton
aab4f2b762
cleanup: redundant casts & const cast correctness
2015-01-01 23:42:28 +11:00
Campbell Barton
3e7e97f127
BMesh: ensure iterator macros assign to valid types
...
note, this is for C++ code which expects a cast, (will be added later)
also add a macro for nop-expressions (EXPR_NOP),
when we never want an expression to be evaluated, but it should still be valid.
2014-12-08 10:54:56 +01:00
Campbell Barton
0154096fd5
Cleanup: unused headers
2014-11-28 23:12:12 +01:00
Campbell Barton
915235c87a
Cleanup: unused headers
2014-11-28 22:16:14 +01:00
Campbell Barton
bcbbc66795
Cleanup: unused headers
2014-11-28 15:52:30 +01:00
Campbell Barton
7d040d2a08
Cleanup: use BLI_listbase_*** prefix for count,sort,sort_r
2014-11-16 13:57:58 +01:00
Campbell Barton
133f79e449
Cleanup: warnings, typos
2014-10-29 14:15:21 +01:00
Campbell Barton
785b90d7ef
BMesh Py API: Fast index lookups for vert/edge/faces
...
This changes the Py API to use array lookup table.
Previously this could be very slow since it would loop over all elements.
Now the python script is responsible for creating the internal lookup table (as with C code).
This will break some scripts.
2014-10-28 10:03:54 +01:00
Campbell Barton
497d06d64d
Fix T41971: BMesh mapping slot arg error
2014-10-01 22:36:09 +10:00
Campbell Barton
26e476b7e1
Fix T41788: bmesh.utils.loop_separate, face_vert_separate() always return None
2014-09-12 10:16:50 +10:00
Campbell Barton
cbde56572f
bmesh py api: face_split_edgenet missed NULL check
2014-07-21 12:42:00 +10:00
Campbell Barton
49a5115497
bmesh py api: add bmesh.utils.vert_splice(...)
2014-07-17 12:25:40 +10:00
Campbell Barton
7f4735ab3b
bmesh py api: BPY_BM_CHECK_SOURCE_* macro now accepts multiple args
2014-07-17 11:56:08 +10:00
Campbell Barton
de379c05de
bmesh py api: add BMesh.calc_tessface()
2014-07-16 11:57:28 +10:00
Campbell Barton
28940d79b1
bmesh py api: add typed tuple-from-array functions
2014-07-16 11:50:34 +10:00
Campbell Barton
8a04bed724
Error in last commit
2014-07-14 21:34:51 +10:00
Campbell Barton
a8e338cee5
Py/API: add bmesh.utils.face_split_edgenet
2014-07-14 21:32:37 +10:00
Campbell Barton
c3deb16c16
BMesh: add ability not to delete vertex when collapsing
2014-06-27 20:28:02 +10:00
Campbell Barton
4ca67869cc
Code cleanup: remove unused includes
...
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
Campbell Barton
e73d0f57a3
Code cleanup: use 'const' for arrays (python)
2014-04-27 00:25:15 +10:00
Bastien Montagne
0b7f581397
Split Normals I (2/5): Add basic BMesh support of split normals.
...
* Merely a re-implementation of core split algorithm for BMesh, taking advantage of topological data available.
* This code needs valid loop indices, so added BM_LOOP support to BM_mesh_elem_index_ensure() & co.
Reviewers: campbellbarton
Reviewed By: campbellbarton
CC: brecht
Differential Revision: https://developer.blender.org/D366
2014-04-13 12:25:54 +02:00
Campbell Barton
5873160242
Code cleanup: strict flags for bmesh_log
2014-04-03 17:13:31 +11:00
Campbell Barton
2097e621ed
Code cleanup: use r_ prefix for return args
2014-03-16 03:26:23 +11:00
Campbell Barton
13ea967cce
Code cleanup: correct abs use and quiet warnings
2014-03-01 14:26:18 +11:00
Campbell Barton
bd697dd4d7
Fix T38402: invalid message for bad type assignments (Quat, Vector)
2014-01-30 16:45:20 +11:00
Campbell Barton
5aa006bc1c
Fix incorrect extern
2014-01-28 01:50:09 +11:00
Bastien Montagne
18db6c58ec
Fix T38150: implementation mismatch in bmesh python
...
Hopefully this time all mismatches are fixed (quickly checked the whole BMesh API files,
found a few others in addition to those reported in T38150).
2014-01-23 20:17:54 +01:00
Campbell Barton
62aa004c25
Style Cleanup: whitespace
2014-01-12 22:05:24 +11:00
Campbell Barton
c2508b6e1b
Fix T38150: correct fix this time
...
also use fixed size lists for list creation.
2014-01-11 21:03:21 +11:00
Campbell Barton
ee15db9db5
Fix T38150: BMLayerCollection.items/values docs switched
2014-01-10 22:18:34 +11:00
Campbell Barton
c5cb42f402
Code Cleanup: use bool for bmesh operator boolean mapping functions
2014-01-03 21:35:29 +11:00
Campbell Barton
04a902965e
BMesh optimize face splitting by taking loops rather then verts
...
- add BM_vert_pair_share_face
- add BM_loop_is_adjacent
- remove BM_verts_connect
2013-12-24 11:13:58 +11:00
Campbell Barton
75212f4677
BMesh Py API: add bmesh.geometry.intersect_face_point()
...
patch originally by mont29 with some edits.
2013-12-06 21:15:56 +11:00
Campbell Barton
85bbef0f4e
python api internals: no need to set the stop-iter exception string.
2013-11-17 15:09:57 +11:00
Campbell Barton
712c8f3cae
code cleanup: warnings
2013-10-31 03:30:20 +00:00
Campbell Barton
3264461598
move bmesh array lookup data and utility functions from editmesh into bmesh,
...
since enough bmesh operations can also take advantage of direct index lookups on verts/edges/faces.
developers note:
- EDBM_index_arrays_init/ensure/free -> BM_mesh_elem_table_ensure/init/free
- EDBM_vert/edge/face_at_index -> BM_vert/edge/face_at_index
- EDBM_uv_element_map_create/free -> BM_uv_element_map_create/free
- ED_uv_element_get -> BM_uv_element_get
2013-10-28 02:05:33 +00:00
Andrew Hale
7be81ffaf5
Expose MVertSkin customdata layer in Python. This allows scripts to change parameters which are used by the skin modifier (such as radius)
2013-10-27 12:16:45 +00:00
Campbell Barton
d6b21df2e6
correct include guards and add checks in check_style_c.py for them.
2013-09-19 23:17:52 +00:00
Campbell Barton
890cafface
fix for error in bmesh api, selection setting needs to go via BM_elem_select_set else the total selected elements count isn't mantained.
2013-09-05 08:38:06 +00:00
Campbell Barton
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
Campbell Barton
79f7a78637
fix [ #36528 ] crash when reinitializing bmesh from mesh
2013-08-27 00:39:51 +00:00
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
38338a51c9
add is_finite_v# functions, use bool's
2013-08-20 09:34:52 +00:00
Campbell Barton
880a86230f
bmesh_vert_separate: remove unused return value
2013-08-12 23:49:56 +00:00
Campbell Barton
4f29aeeff2
code cleanup: some structs were declaring data when only typedef's were intended, make local vars and functions static.
2013-08-07 03:44:05 +00:00