af36dd4664
Cleanup: trailing newlines
2018-06-29 08:02:49 +02:00
cbf5c738d6
Cleanup: get rid of last G.main's in bpy area.
...
Essentially 'validating' them as G_MAIN, and adding some asserts in
dubious places, that handled IDs are actually in G_MAIN.
2018-06-22 11:37:47 +02:00
2f1e34cfcc
Cleanup: use clamp_* from BLI_math (replace macro)
2018-06-17 11:50:56 +02:00
f61c30f804
Cleanup: get rid of last G.main in BMesh code.
2018-06-13 16:29:12 +02:00
7719c11006
Cleanup: strip trailing space in Python module
2018-06-04 08:54:40 +02:00
0f217de403
Fix T54927: BMesh Py error w/ select history slice
2018-05-03 20:23:32 +02:00
05f3e245a8
Fix T54098: Crash existing /w dyntopo sculpt
...
Optionally don't remap indices for objects.
Checking all objects parent's would reference a freed pointer
while freeing all objects.
In the case of dynamic topology there is no use in keeping track
of hook/vertex-parent indices.
Also disable this when creating meshes for undo storage
since adding an undo step shouldn't be modifying other objects.
2018-02-19 17:34:30 +11:00
ccdacf1c9b
Cleanup: use '_len' instead of '_size' w/ BLI API
...
- When returning the number of items in a collection use BLI_*_len()
- Keep _size() for size in bytes.
- Keep _count() for data structures that don't store length
(hint this isn't a simple getter).
See P611 to apply instead of manually resolving conflicts.
2018-02-15 23:39:08 +11:00
a33a5880f7
Fix bmesh.utils.face_join arg parsing
2018-01-12 14:51:15 +11:00
aae8e21100
BMesh Py API: Expose color alpha
2017-11-12 15:48:24 +11:00
8661ab12a6
Fix BMesh PyAPI internal flag clearing logic
...
Would leave the flag set on raising an exception.
2017-10-24 16:52:54 +11:00
1aa5b63661
Docs: improve bmesh exception message
...
Suggested in T53131
2017-10-23 21:57:32 +11:00
b29e37ed81
Docs: add note for bmesh face_split_edgenet
2017-10-12 23:36:42 +11:00
85d53620aa
Cleanup: avoid confusing assignment
2017-09-04 14:35:35 +10:00
32e36a1782
Correct own error simplifying matrix checks
2017-09-03 00:05:11 +10:00
cb7f1f8160
Docs: BMesh.from_mesh behavior w/ multiple calls
2017-08-28 12:40:36 +10:00
738d942d29
Correct error in recent use of PyC_Long_*
...
Regression in 46cf33bf0
2017-08-25 02:09:23 +10:00
46cf33bf01
PyAPI: Make use of PyC_LongAs... API
...
Avoids setting exceptions inline,
also use Matrix_ParseAny for bmesh.ops.
Some inline exceptions are kept because they show useful details.
2017-08-20 15:49:10 +10:00
fc9fa07c0e
BMesh: BM_face_exists no longer uses return arg
...
Just return the face or NULL, like BM_edge_exists(),
Also for BM_face_exists_overlap & bm_face_exists_tri_from_loop_vert.
No functional changes.
Old code did some partial overlap checks where this made some sense,
but it's since been removed.
2016-11-14 04:33:35 +11:00
a96c9def6f
PyAPI: minor optimization for dictionary creation
...
Pass size when its known.
2016-07-31 17:22:04 +10:00
cca57bf04c
PyAPI: Use module names on initializaton
...
No need to re-convert from C strings to PyUnicode.
2016-07-14 15:51:56 +10:00
124bfa4d2d
Cleanup: spelling, style
2016-07-08 00:48:45 +10:00
0a026033ae
BMesh: make toolflags optional
...
Saves 8 bytes per vert/edge/face.
Gives overall ~20-25% memory saving for dyntopo sculpting
and modifiers that use BMesh.
2016-07-01 19:29:22 +10:00
65df2fd997
bmesh py api: expose BM_face_calc_tangent_*
...
D1988 by @wisaac, with own edits and improvements.
This improves on existing tangent calculation functions too.
- BM_face_calc_tangent_auto: Chooses method based on number of sides, used by manipulator (not exposed to Python).
- BM_face_calc_tangent_edge: from longest edge.
- BM_face_calc_tangent_edge_pair: from longest edge-pair (most useful with quads).
- BM_face_calc_tangent_edge_diagonal: edge farthest from any vertex.
- BM_face_calc_tangent_vert_diagonal: vert farthest from any vertex.
Also optimize BM_vert_tri_calc_tangent_edge* functions to avoid sqrt.
2016-06-12 15:12:34 +10:00
6d0cae56e8
Fix T48290: Hook fails after deleting geometry
...
Now CD_SHAPEKEY_INDEX customdata is stored in edit-mode when hooks and vertex parents are used.
This also fixes a bug where undo would loose key-index data.
Move to structs for BM_mesh_bm_to/from_me to avoid passing many argument, which mostly aren't used.
2016-04-29 23:39:50 +10:00
727f15f7d8
Docs: note that BMesh loops are accessed via faces
...
Resolves T48258
2016-04-25 11:57:52 +10:00
2a9bc888d0
Fix T47784: BMesh.from_object broken keyword args
2016-03-15 00:38:33 +11:00
f5604af464
Cleanup: use BM_mesh_* prefix for BMesh functions
2016-01-14 13:00:11 +11:00
8ca76d15b2
Add bmesh.select_history.discard
...
Follows convention for set, useful to avoid error handling with remove().
2016-01-13 04:03:47 +11:00
22ec7b17d2
BMesh: raise exception face-split w/ adjacent loops
...
Was raising "internal error".
2015-11-25 12:08:50 +11:00
b8c40d47e0
Cleanup: remove unused bmesh iterator
2015-11-19 22:13:35 +11:00
2eb50d450c
Cleanup: simplify PyBMesh customdata API use
2015-09-18 16:40:54 +10:00
09e40a4956
Cleanup: spelling
2015-09-14 02:22:22 +10:00
1140238acf
Fix T45976: Crash accessing BMesh customdata
...
Layers returned from items() and values() could have an invalid index.
2015-09-01 19:59:26 +10:00
9304df5182
Fix T45939: Crash w/ BMesh.*.sort()
2015-09-01 16:07:34 +10:00
c86a519898
Use qsort_r for BMesh Py API
2015-09-01 13:56:08 +10:00
cff288cf3a
Use PyC_ParseBool to parse bools
...
This could cause problems since they could be any int,
then passed directly to internal functions that assume bools.
2015-08-04 18:49:42 +10:00
339915a962
Optimize PySequence_Fast usage
...
Access arrays directly, avoiding type-check every time.
2015-07-29 10:49:35 +10:00
376e4c945e
Fix leak in BPy_BMElem_PySeq_As_Array
...
Also add BPy_BMElem_PySeq_As_Array_FAST
2015-07-29 10:49:34 +10:00
a2d4c26aa2
BMesh: use define for string
2015-06-14 08:27:29 +10:00
dbee634572
Fix typos.
2015-05-04 01:53:34 +09:00
f283b959e7
BMesh: BM_vert_separate double edge fix
...
Splitting edges could give duplicates.
2015-05-02 16:24:35 +10:00
a5869945c6
Cleanup: bmesh src/dst order in API args
2015-05-02 15:46:03 +10:00
f553aba69f
Correct docstring
2015-04-30 09:55:54 +10:00
89f5a09ab4
Cleanup: use 8 space indent for multi-line args
2015-04-25 20:15:20 +10:00
18ee593729
Expose CD_PAINT_MASK to Python API
...
D782 by Stanislav Blinov
2015-04-24 04:10:51 +10:00
6603a10331
Cleanup: remove redundant initializers
2015-04-16 22:26:20 +10:00
690b90f1e2
BMesh: minor optimization counting adjacent data
...
add BM_***_count_is_over(), _count_is_equal()
Useful if we only want to know if the count is a smaller value.
2015-04-12 17:38:14 +10:00
fee0e6e211
BMesh Py API: calc_edge_angle functions
...
Make consistent with calc_edge_angle,
take an optional fallback arg for non-manifold edges
otherwise raise an exception.
2015-03-09 00:47:53 +11:00
8638142c3b
Fix T43904: calc_vert_angle returns wrong value
...
This was mis-named, rename to `calc_edge_angle`
and allow a fallback value in the case when the vert doesn't have 2-edges.
2015-03-06 18:55:36 +11:00