Commit Graph

30281 Commits

Author SHA1 Message Date
Nicholas Bishop
bfc331dd75 BMesh: use MPoly rather than MFace in multiresModifier_base_apply 2012-02-28 03:54:31 +00:00
Nicholas Bishop
2a4cd1d203 Bugfix for clipping of SEARCH_MENU icon text.
For the preview-icon search menu (used for example in brush
selection), clip the text so that long names don't flow out into the
space between columns.
2012-02-28 01:55:27 +00:00
Campbell Barton
fa38c3dbac bmesh code cleanup - remove most of BKE_bmesh and remove BKE_bmeshCustomData.h. 2012-02-27 21:33:30 +00:00
Campbell Barton
d2cab3e8b0 move bmesh wiki docs into bmesh header and update doxygen.
also have doxygen ignore *.py files and fix some warnings.
2012-02-27 20:27:19 +00:00
Bastien Montagne
40fca4ed21 Quite a warning (unused param in func), was preventing debug build... 2012-02-27 18:20:58 +00:00
Bastien Montagne
49adbe3ab8 Various fixes to UI messages (among other things, all messages needed it should now be capitalized). 2012-02-27 18:14:56 +00:00
Campbell Barton
684a2c8dca fix for error in python context.copy(), calling in byttons view would raise an exception.
buttons view used incorrect return value. -1 is for valid but not set (could use defines/enum here).
2012-02-27 18:08:31 +00:00
Lukas Toenne
050428049f Implements a new operator for detaching nodes. In the process i overhauled the node muting system as well.
There are a number of features that use a kind of "internal linking" in nodes:
1. muting
2. delete + reconnect (restore link to/from node after delete)
3. the new detach operator (same as 2, but don't delete the node)

The desired behavior in all cases is the same: find a sensible mapping of inputs-to-outputs of a node. In the case of muting these links are displayed in red on the node itself. For the other operators they are used to relink connections, such that one gets the best possible ongoing link between previous up- and downstream nodes.

Muting previously used a complicated callback system to ensure consistent behavior in the editor as well as execution in compositor, shader cpu/gpu and texture nodes. This has been greatly simplified by moving the muting step into the node tree localization functions. Any muted node is now bypassed using the generalized nodeInternalRelink function and then removed from the local tree. This way the internal execution system doesn't have to deal with muted nodes at all, as if they are non-existent.

The same function is also used by the delete_reconnect and the new links_detach operators (which work directly in the editor node tree). Detaching nodes is currently keymapped as a translation variant (macro operator): pressing ALTKEY + moving node first detaches and then continues with regular transform operator. The default key is ALT+DKEY though, instead ALT+GKEY, since the latter is already used for the ungroup operator.
2012-02-27 17:38:16 +00:00
Antony Riakiotakis
d55c1d59f9 Fix: confirming edge slide with factor 0 and automerge turned on would delete the selected edges. Caused by automerging the edges with temporary geometry used for the operation, that was getting deleted later. Now deleting the temporary geometry before automerging. 2012-02-27 16:45:48 +00:00
Campbell Barton
96e0f18850 bmesh py api - loop vert/edge/face attributes. 2012-02-27 15:20:54 +00:00
Campbell Barton
4c3e3e93a9 bmesh minor api edits to be a little more typesafe. 2012-02-27 14:57:09 +00:00
Campbell Barton
130668b12f minor bmesh api naming edits. 2012-02-27 14:07:19 +00:00
Campbell Barton
e17bf02c2d Code Cleanup:
* made bmesh_structure.h function names more consistant.
* remove unused code in bmesh_structure.c
* removed 'Edge Flip' operator (missing from bmesh but looked into trunk feature and dont think its worth keeping).
* tagged  some BMESH_TODO's
2012-02-27 13:47:53 +00:00
Sergey Sharybin
08b35cda7f Select edge loop and edge rings operators can't be redone form history menu
so registering them seems to be kind of useless because things like deleting
edge loops with Shift-R command is impossible.

This commit will resolve issue #30375: Loop Select should not become a Redo History Item.
2012-02-27 12:53:23 +00:00
Sergey Sharybin
d7f0e29291 Few files had got +x mode which seems to be totally unnecessary. 2012-02-27 12:48:06 +00:00
Campbell Barton
21f1c99a78 update bmesh design doc and added some comments to the code from it. 2012-02-27 12:25:47 +00:00
Campbell Barton
47c373c7a9 style cleanup (mostly whitespace) 2012-02-27 10:35:39 +00:00
Campbell Barton
120297734b fix for emitting particles (needed tessfaces).
this fixes the cloud-gen addon.
2012-02-27 09:37:59 +00:00
Nicholas Bishop
8fcb66588b Code cleanup, remove redefinition of UNUSED macro.
Patch from Jason Wilkins:
http://projects.blender.org/tracker/index.php?func=detail&aid=30350&group_id=9&atid=127
2012-02-27 02:46:25 +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
Daniel Stokes
b200c7a4df Fixing a crash when converting physics objects in the Game Engine. 2012-02-26 21:57:51 +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
5cfab7f521 bmesh api name change, add _count suffix for BM_*_share functions. 2012-02-26 19:46:12 +00:00
Campbell Barton
c956e5d2d9 modified fix for "Fix [#30351] Solidify Modifier High Quality Normals fails." from r44464.
rather then recalc polygon normals - solidify is simple enough to just flip the normals of the copied faces, the rim faces normals are already re-calculated so copy them.
2012-02-26 18:12:01 +00:00
Campbell Barton
6bc7c30b93 fix for build error with non debug builds from last commit. 2012-02-26 17:24:04 +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
03f5758b48 replace BMESH_ERROR with BMESH_ASSERT, most areas it was used are better suited to an assert anyway.
also tag all error cases as UNLIKELY() for better branch prediction.
2012-02-26 16:39:21 +00:00
Bastien Montagne
5970adaccf Fix [#30351] Solidify Modifier High Quality Normals fails.
Don't really know why, but appears we need to recalc normals when this option is ON.

Also small perf improvement (avoid to compute twice each face normals).
2012-02-26 15:38:28 +00:00
Campbell Barton
62f9959a8e replace bmesh_error with macro that gives the file/line/func the error happens on. 2012-02-26 14:57:41 +00:00
Sergey Sharybin
bed0257414 Fix #30254: VSE: no red warning border on metastrips with Extend (E) 2012-02-26 09:19:48 +00:00
Sergey Sharybin
f268918d50 Fix #30337: missed Set Origin for Metaball
Implemented Set Origin operator for Meta Balls.
2012-02-26 08:55:31 +00:00
Sergey Sharybin
8285fef0e8 Fixed for selected bundles drawing in 3D viewport:
- If track was hidded in clip editor it wasn't highlighted in 3d viewport
  even if it's selected.
- If two tracks has got the same bundle coordinate and one of them is
  selected it might not be highlighted in 3d viewport because of
  draw order.
2012-02-26 08:14:14 +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
Nicholas Bishop
e3877a625e Style cleanup: remove underscore prefix from CCG struct names. 2012-02-26 06:50:54 +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
ff7ddb1925 change vertex dissolve not to collapse edges when its only connected to 2, rather then joining the faces on either side.
This way. IMHO is more useful since it means you can simplify the geometry between faces without joining them and it distinguishes vertex dissolve more from edge dissolve - which will join both faces still.
2012-02-26 05:04:30 +00:00
Nicholas Bishop
c5066df307 Code cleanup: clarify multiresModifier_disp_run modes.
Previously the function took 'invert' and 'add' parameters to indicate
what operation should be performed on the displacements, replaced
these with three named modes: APPLY_DISPLACEMENTS, CALC_DISPLACEMENTS,
and ADD_DISPLACEMENTS.
2012-02-26 04:40:56 +00:00
Campbell Barton
a631b5a651 fix for a bug in bmesh_jekv (and its main caller BM_vert_collapse_faces).
Collapsing an edge could result on 2 edges sharing the same verts, now check for this and 'splice' one edge into another.
2012-02-26 04:38:37 +00:00
Campbell Barton
ebeb815577 fix for vertex dissolve not doing anything with a single vertex on a single face.
now collapse the vertex into the edges.

also disable removing the vertrex when it could not be collapsed (old code), found it could would connected faces which isn't acceptable - now return fail in that case.
2012-02-26 00:43:47 +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
b4b7d809f1 bmesh code cleanup
* minor edits to header
* make BM_vert_dissolve() easier to read.
2012-02-25 23:41:31 +00:00
Campbell Barton
e20d09f079 fix [#30352] Dissolving a vert in an edgeloop (no faces) just deletes the verts killing connections
collapse the vertex into an edge when it has 2 edges connected to it.
2012-02-25 23:29:12 +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
72e1316dc4 minor style edits
- use GL_TRUE/FALSE for glLightModeli
- use set for python checks against multiple string values.
2012-02-25 21:27:45 +00:00
Campbell Barton
98aececc8e bmesh code cleanup
* change BMO_elem_flag_* defines to inline functions.
* BMO_slot_map_insert() is too big for an inline function - un-inline it.
* remove redundant casts.
2012-02-25 20:58:03 +00:00
Campbell Barton
55e68985e7 bmesh api:
* added BM_elem_flag_set, BMO_elem_flag_set. to avoid 'if(...) enable(); else disable();' all over the place.
* added bmesh_operator_api_inline.c, the header file was getting messy.
2012-02-25 19:43:51 +00:00
Campbell Barton
0096370db8 fix for own error edge tagging sharp. 2012-02-25 18:13:58 +00:00
Sergey Sharybin
79f9964cdb Changes in double side lighting usage
Disabled double-side lighting by default and changed areas which are using
double sided lighting to switch it off just after doing stuff which requires
double side.

This makes code a bit more simple to follow (no all that disabling double side
lighting all over the code and so).

This change also fixes crash of blender caused by intel gme965 driver which
leads to stack corruption in some place when double side lighting isn't
disabled (probably driver still kind of using double side in some areas or so).

Hopefully it'll also fix #30293: Converting Text to Mesh

Thanks to Campbell to assist writing this patch!
2012-02-25 18:09:39 +00:00
Campbell Barton
3fc2fbc333 style cleanup, use { on newline after function definition.
spelling 'impliment' -> 'implement'
2012-02-25 16:49:59 +00:00