Commit Graph

3840 Commits

Author SHA1 Message Date
Campbell Barton
9d49fa0e63 style cleanup - spelling corrections & update some incorrect comments. 2012-03-03 11:45:08 +00:00
Campbell Barton
95bba22af0 fix for error report in property registration, it wasnt printing the error. 2012-03-03 00:20:05 +00:00
Campbell Barton
e9c935caa0 fix bug [#30426] crash in bmesh python api.
if blender freed the BMesh before python was finished (on exit editmode for eg), python would attempt to access the bmesh to clear python pointers in it.
2012-03-02 18:23:08 +00:00
Campbell Barton
ea13ec1699 Spelling Cleanup 2012-03-01 12:20:18 +00:00
Howard Trickey
fc84402632 Mistake in previous commit test for API vert new: it failed for no-arg case. 2012-02-29 15:35:10 +00:00
Campbell Barton
7cc206ddca Code Cleanup: remove non existing function declarations.
added some missing functions too - which are not used yep but should be there for api completeness.
* CDDM_set_mloop
* CDDM_set_mpoly
* BLI_mempool_count
2012-02-29 15:00:37 +00:00
Howard Trickey
d330efa084 Fix 30401: Python API vert new((0,0,0)) crashes.
Thanks to Campbell for fix, adding an & to an arg.
Also needed to negate the sense of a later test.
2012-02-29 14:16:35 +00:00
Campbell Barton
17ee9f77c5 bmesh py api - initial support for selection history. 2012-02-29 14:05:03 +00:00
Campbell Barton
6dcbba943b bmesh py api - element hide_set() function which flushes hidden state. 2012-02-28 05:02:34 +00:00
Campbell Barton
96e0f18850 bmesh py api - loop vert/edge/face attributes. 2012-02-27 15:20:54 +00:00
Campbell Barton
47c373c7a9 style cleanup (mostly whitespace) 2012-02-27 10:35:39 +00:00
Campbell Barton
c62a462997 use LIKELY/UNLIKELY macros for operations that run a lot. 2012-02-26 23:59:08 +00:00
Campbell Barton
3ba37b65a3 style cleanup 2012-02-26 22:38:49 +00:00
Campbell Barton
7068fee2dd fix for a bmesh glitch when making a face (Fkey).
On a place, Ctrl+T, Fkey would create a quad overlapping the 2 Tris.

Now this case is checked for in a general way - if the bounds of the face are already filled in with faces (that _only_ use these edges-verts), then dont create the face.

This is an option for the 'edgenet_fill' operator, since creating the face isnt incorrect, just not-what-you-want mostly.

added functions
* BM_edge_share_vert - returns shared vert between 2 edges.
* BM_face_exists_multi, BM_face_exists_multi_edge - check if existing faces fill the edge bounds.
* also add BM_ELEM_INTERNAL_TAG so low level functions can tag without conflicting with higher level functions that also rely on tagging elements.
2012-02-26 21:32:20 +00:00
Campbell Barton
74e9563b8a * bmesh py api BMEdge.verts was using 2 v1's
* bmesh pu api __repr__ functions for mesh data.
* correct py hash defines.
2012-02-26 17:20:36 +00:00
Campbell Barton
d82c768cc7 bmesh py api, add another interpolation function.
BMVert.copy_from_vert_interp(vert_pair, fac)
2012-02-26 07:16:50 +00:00
Campbell Barton
1004b03578 bmesh - remove faces with <3 sides after dissolve/collapse (most tools already did this). 2012-02-26 05:48:12 +00:00
Campbell Barton
76acda4417 bmesh python api
* BMLoop attributes link_loop_next/prev
* BMVert.copy_from_face_interp
2012-02-25 23:56:20 +00:00
Campbell Barton
c65b3b73fd bmesh api cleanup
* better type safety for BM_elem_flag_* and BM_elem_index_* functions.
* add BMElem type to be used where BMFace/Edge/Vert/Loop can be interchanged.
* fix bug in select manifold, found when making functions more strict.
2012-02-25 22:23:40 +00:00
Campbell Barton
3fc2fbc333 style cleanup, use { on newline after function definition.
spelling 'impliment' -> 'implement'
2012-02-25 16:49:59 +00:00
Campbell Barton
6ca7d82932 code cleanup: white space, spelling & ';;' end of lines. 2012-02-25 16:04:03 +00:00
Campbell Barton
05725e7b6e bmesh py api - add funcs
* BMFace.copy_from_face_interp(face)
* BMLoop.copy_from_face_interp(face, vert=True, multires=True)

These are important for rebuilding geometry from existing faces without loosing UV's, vcols etc.
2012-02-25 15:51:39 +00:00
Campbell Barton
69cf6adb84 fix for own regression in r44361 (broke BM_vert_in_face)
also fix py api: bmesh.utils.face_split(face, v1, v2)
2012-02-25 14:56:37 +00:00
Campbell Barton
aca448f0b6 bmesh py api - fix for error creating a new face 2012-02-24 13:50:36 +00:00
Campbell Barton
f7c9485605 bmesh python api:
bm.verts.get(verts) / bm.faces.get(verts)

 - use to find an edge or face from a vertex list passed.
2012-02-24 12:57:05 +00:00
Campbell Barton
c839ff3acb bmesh py api - bmesh.utils.face_flip 2012-02-24 11:04:09 +00:00
Campbell Barton
068566f985 bmesh py api - normal_update() functions for vert/edge/face. 2012-02-24 10:35:52 +00:00
Campbell Barton
c8d6b7759e bmesh py api, minor change - edges now take a seq of 2: bm.verts.new((v1, v2), example=None) 2012-02-24 10:17:30 +00:00
Campbell Barton
edb04d1461 bmesh docs now written in sphinx doc generator.
* http://www.blender.org/documentation/blender_python_api_2_62_0/bmesh.types.html
* http://www.blender.org/documentation/blender_python_api_2_62_0/bmesh.utils.html
2012-02-24 09:53:29 +00:00
Campbell Barton
1fbd91b8a1 typo cleanup, no functional changes. 2012-02-24 06:44:04 +00:00
Campbell Barton
6b85b96952 bmesh py api (some api changes and doc additions)
* remove 'select' and 'hide' from BMLoop
* remove BMesh.update
* add BMesh.normal_update(skip_hidden=False)
* add BMElemSet.index_update(), eg: bm.verts.index_update()


bmesh api
* BM_mesh_normals_update() now takes skip_hidden as an argument
(previously this was default behavior), however this isnt good when
using BMesh modifiers, where you want all normals to be recalculated.
* add bm_iter_itype_htype_map[], to get the iter type from a BMesh
iterator.
2012-02-24 05:56:06 +00:00
Campbell Barton
b9b0c3dfb4 bmesh python api - add/improve rst docstrings. 2012-02-24 04:59:13 +00:00
Campbell Barton
6871860cfe bmesh py api - ensure data layers to store bmesh pointers exist - removing all elements could free them for eg. 2012-02-23 17:22:37 +00:00
Campbell Barton
310af7d73f bmesh py api
bmesh.utils.face_join(faces)

added a utility function for converting a list of python BMesh elements into a C array.
use for this face_join as well as BMesh.faces.new()
2012-02-23 17:14:53 +00:00
Campbell Barton
2fd226abe7 bmesh py api, added: bmesh.utils.edge_rotate(edge, ccw=False)
also improved docstrings.
2012-02-23 14:15:26 +00:00
Campbell Barton
7bc306c947 bmesh py api, new elements now take optional 'example' arguments, so the new data copies from the existing. 2012-02-23 11:27:22 +00:00
Campbell Barton
3034971520 bmesh py api functions:
bmesh.utils.vert_collapse_edge, vert_collapse_faces, vert_dissolve, face_split
2012-02-23 10:29:04 +00:00
Campbell Barton
0dc50a0e07 bmesh py api, new submodules
* bmesh.types, just allows access to BMVert, BMEdge etc.
* bmesh.utils, so far only added edge_split() function, this module will give access to mesh editing functions.
2012-02-23 05:20:09 +00:00
Campbell Barton
38f546a614 swap arg order for BM_edge_split(), makes sense to have edge as first
arg.
2012-02-23 05:17:07 +00:00
Campbell Barton
d232815481 - swap arg order for BM_face_copy() boolean options.
- use edge example for BM_face_split().
2012-02-23 04:26:24 +00:00
Campbell Barton
ecb6f13618 bmesh py api, more wrapped funcs:
* BMFace.copy(verts=True, faces=Trur)
* BMEdge.other_vert(vert)
2012-02-23 04:19:25 +00:00
Campbell Barton
30c62d9699 bmesh py api: functions for getting the area/angle/center of BMesh elements. 2012-02-23 03:39:39 +00:00
Campbell Barton
92c47145fd bmesh python api change in internal behavior.
* Only have 1 python object per bmesh, vertex, edge, loop, face.
* Store pointers back to the python data in a custom data layer so as not to use more memory for normal editing operations (when pythons not running).
* Currently this data is created and freed along with the BMesh PyObject.
* Incidentally - this fixes comparisons for bmesh elements which wasnt working before.
2012-02-22 16:08:30 +00:00
Campbell Barton
ccfcc70c8c add slice access to bmesh sequences.
eg:
 verts = bm.verts[1:-7]
2012-02-22 12:54:53 +00:00
Campbell Barton
5123238f7d BMesh-py attributes (readonly):
* is_valid (all types)
* is_wire (verts/edges)
* is_boundry (edge only)
* is_manifold (verts/edges)

also corrected own error, missed updating BMesh operator formatting char (broke erase only-faces)
2012-02-22 12:28:32 +00:00
Campbell Barton
0ca14d9558 bmesh py api add connectivity attributes - to access adjacent data. 2012-02-22 12:04:44 +00:00
Campbell Barton
361de47cf5 bmesh py api - function to remove vert/edge/faces 2012-02-22 11:52:56 +00:00
Campbell Barton
91353bc716 bmesh python api - add BMEdge.verts, also had to add VERTS_OF_EDGE iterator in bmesh's api. 2012-02-22 11:31:07 +00:00
Campbell Barton
e0a6d273d0 bmesh py api - generalize bmesg sequences to use the iterator type and optionally another bmesh element.
This allows BMFace.verts to be added without defining a new sequence type.
2012-02-22 10:41:07 +00:00
Campbell Barton
e7d98179ea initial bmesh python api.
corrently allows to create and loop over verts/edges/faces, access selection and selection modes.

this is still WIP, access to face, edge verts is still missing, no access to UV's, no access to editing operations yet.

When the api is ready it will be documented by sphinx like mathutils, blf, aud.
2012-02-22 09:19:53 +00:00