Commit Graph

1934 Commits

Author SHA1 Message Date
Campbell Barton
c839ff3acb bmesh py api - bmesh.utils.face_flip 2012-02-24 11:04:09 +00:00
Campbell Barton
8c501c2248 bmesh: minor speedup, use 1 iterator rather then 2 when normalizing verts. 2012-02-24 10:40:32 +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
Brecht Van Lommel
8aa569b52e Fix #30325: bmesh edges were marked as sharp by default, after recent
refactor to reuse BM_ELEM_SMOOTH flag for sharp flag.
2012-02-23 21:23:49 +00:00
Campbell Barton
107795af49 bmesh split tool (Ykey), was only splitting off faces, unlike EditMesh which could also split edges.
make this behavior optional and default to off (match EditMesh).
2012-02-23 16:00:53 +00:00
Campbell Barton
c6f340e6b0 previous fix wasnt working in edge mode, now selection +/- works in vert/edge/face modes. 2012-02-23 15:47:18 +00:00
Campbell Barton
668297c8b8 fix [#30318] increase/decrease selection won't work (select-more/less)
This was a problem with bmesh merge, now it works as expected again.
2012-02-23 15:22:29 +00:00
Campbell Barton
e164cddc43 adding icosphere was broken with own recent commit 2012-02-23 12:11:27 +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
c3e192dcae bmesh api cleanup, remove unused header. 2012-02-23 10:24:20 +00:00
Campbell Barton
09ee59c669 bmesh minor api refactor
* BM_vert_in_face now loops over a vert's faces rather then every vert in the face.
* rename bmesh_radial_find_first_facevert --> bmesh_radial_find_first_faceloop
* rename bmesh_radial_find_next_facevert --> bmesh_radial_find_next_faceloop
* rename BM_vert_collapse_edges --> BM_vert_collapse_edge (only collapses one)
2012-02-23 09:26:53 +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
30c62d9699 bmesh py api: functions for getting the area/angle/center of BMesh elements. 2012-02-23 03:39:39 +00:00
Campbell Barton
c8b53d2aaf code style cleanup, no functional changes. 2012-02-23 02:23:42 +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
Sergey Sharybin
dadc2a26e3 Fix #30290: Shape Keys not working as expected
New method of vertex shapekey propagation didn't restored coordinates in
me->mvert array which lead to unwanted deformation of basis mesh and
lead to issues like described in the report.
2012-02-22 12:11: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
Antony Riakiotakis
9ca3084d4d Attempt to fix scons compilation of blenderplayer.
Added bmesh to player libraries and changed the priority of blenlib so as to avoid duplicate definitions (looks like there are actually functions defined twice that cause conflicts if one changes the order of linking...figures).

Only tested this on mingw-windows, I hope it works elsewhere too.
2012-02-22 03:16:34 +00:00
Sergey Sharybin
3663bd580f Remove debug print code.
It was harmless because it ifdef-ed, but it's likelly not needed anymore.
2012-02-21 17:27:33 +00:00
Sergey Sharybin
4041c57756 - Remove unused code in bmesh interpolation module and switch it to using mathutils
functions instead of own macros for vectors.
- Double precision isn't needed here at all. It only makes it impossible to use
  mathutils, adds extra float<->double conversions without any benefits.
  (current multires interpolation is already an approximate method and it can't
  be improved using double precision)
2012-02-21 17:24:05 +00:00
Sergey Sharybin
debd32d336 Improved displacement flipping algorithm to work properly in cases when target grid isn't orthogonal.
Subdivision of face now works pretty smooth, only producing minor unwanted displacement on the along edges.
2012-02-21 17:23:32 +00:00
Sergey Sharybin
b2fd08c754 Flip displacement direction after interpolation in bmesh_loop_interp_mdisps
This is needed because displacement might been interpolated from a grid
with different orientation and in this case X and Y components of displacement
are need to be flipped in needed order.

Order of flipping is determining by projecting source grids axis orientation
on target grid axis. This probably will give some unwanted artifacts when
interpolating non-planar face but currently can't think about better way
to determine how to flip displacement.

This commit makes operators like Subdivide works much more unpredictable
for sculpting data, but this stuff should be rethinked much more global
because current approach is not acceptable.
2012-02-21 17:23:03 +00:00
Tamito Kajiyama
9f243d531c Merged changes in the trunk up to revision 44288.
Conflicts resolved:
source/blender/blenkernel/intern/cdderivedmesh.c
2012-02-21 02:19:54 +00:00
Tamito Kajiyama
69289c978e Merged changes in the trunk up to revision 44266 (including BMesh).
Freestyle edge/face marks were ported to BMesh.

Conflicts resolved:
source/blender/editors/mesh/editface.c
source/blender/editors/space_view3d/drawobject.c
source/blender/makesdna/DNA_meshdata_types.h
source/blender/blenkernel/intern/editderivedmesh.c
2012-02-21 01:40:04 +00:00
Campbell Barton
c4e7cc3287 fix for leak in gpu.export_shader(), wasnt freeing the function.
also change the bmesh iterator so its possible to initialize without stepping.
2012-02-20 22:04:29 +00:00
Sergey Sharybin
5c14048600 Fixed incorrect accessing to use_restrict as to integer slot instead of boolean 2012-02-20 14:18:14 +00:00
Campbell Barton
2421058379 add type check asserts for bmesh operator get/set funcs so errors wont fail silently. 2012-02-20 02:04:13 +00:00
Campbell Barton
1953f042e6 added boolean type for bmesh operators, will make python wrapping clearer and also makes existing calls more obvious.
also corrected some error reports.
2012-02-20 01:52:35 +00:00
Campbell Barton
a368e6771a - remove some unused editmesh functions.
- copy & rename EditMesh stricts for use with scanfill (remove unused members)
2012-02-19 22:17:30 +00:00
Campbell Barton
4504ac27a6 remove more unused files. 2012-02-19 19:32:41 +00:00
Campbell Barton
b1a3d3cea1 remove files no longer used since bmesh merge. 2012-02-19 19:27:06 +00:00
Campbell Barton
afc56a0b10 copying bmesh dir on its own from bmesh branch 2012-02-19 18:31:04 +00:00