Commit Graph

108 Commits

Author SHA1 Message Date
248b2fc6d6 bmesh-decimator update
- update face normals when triangulating.
- avoid divide by zero when interpolating customdata on a zero length edge.
- replace zero float comparisons with fabsf() < FLT_EPSILON to avoid numeric error.

also renamed BLI_heap_empty() --> BLI_heap_is_empty() so its obviously readonly function.
2012-10-21 15:20:53 +00:00
a75f11d036 Fix #32219: Inconsistent influence of Units Scale on new objects
Made it so meshes, curves, surfaces and metaballs are scaling to a grid cell size,
which makes them behave consistently now.

There're still issues to be resolved still:

- Lattice is not scaled to grid cell size yet, it uses slightly different add
  function which makes scaling a bit tricky and hacky. Would prefer to do a
  bit bigger refactor here, so it's a TODO for now.

- Cameras, speakers and other helpers are not scaling. They don't have data
  on which scale could be applied and perhaps it should be some kind of draw
  scale. Also would consider it's a TODO for now.
2012-10-19 12:53:03 +00:00
536d9fec80 code cleanup:
- move object_iterators.c --> view3d_iterators. (ED_object.h had to include ED_view3d.h which isn't so nice)
- move projection functions from view3d_view.c --> view3d_project.c (view3d_view was becoming a mishmash of utility functions and operators).
- some some cmake includes as system-includes.
2012-10-17 04:13:03 +00:00
a17e1eea23 refactor foreachScreen functions for clipping, now the projection clipping flag is passed down directly rather then converting the enum into a flag, also fix own recent crash lasso seleting in object mode with pose objects. 2012-10-10 04:03:22 +00:00
22bf1e13db code cleanup: split foreach object data iterator functions out of drawobject.c (since they are used for selection too), into their own file: object_iterators.c 2012-10-10 03:13:02 +00:00
00ce0c9aae Clean up in "add object" code:
* Get rid of ED_object_add_generic_invoke() and all invoke callbacks using it, it was doing nothing exec() callbacks would not do. In fact, its only action (setting part of common add ops properties, like loc, layers, etc.) was needed too by direct exec call, so it was done twice in case of using invoke()!
* Replace custom invoke code for metaballs by WM_menu_invoke helper (as already used by lamps).
* Add a new OBJECT_OT_empty_add op, to allow direct addition of empties of a given drawtype.
* And some general code cleanup (like trailing spaces, empty lines, ...).

Did quite a bunch of tests/verifications, but obviously could not tackle all possible scenarios... Anyway, if any, bugs should arize quite quickly (but I don’t expect any! :p ).
2012-10-05 12:59:09 +00:00
d4e40b5230 fix [#32616] Changing parent does not keep transformation
add an option to apply the transform of an object when re-parenting.

the reason for this is you dont always want to apply transform because...
- your object may be driven/animated and the transformation will be lost.
- with negative scales and rotation it can end up giving odd/not-useful results.
2012-09-27 12:24:38 +00:00
b96c622015 style cleanup 2012-08-11 22:12:32 +00:00
a199ae5368 style cleanup: whitespace, also add '?' to save over popup since it wasnt totally clear it was a question (user pointed this out, they thought it was just notification and lost their work). 2012-07-31 23:06:12 +00:00
4ca9275b44 Implement operator to select linked data from outliner
Supports selecting using object data, material and library.

Would be nice to hide this menu item from menus appearing for
datablocks which does not support such a selection, but that
could be done separately.
2012-07-25 19:45:34 +00:00
b67b73e2d8 "Fix" [#32033] In the execution result of with_automatic_weight, the difference is seen right and left.
This auto/heat vgroup creation seems to be fuzzy/unstable (each run gives a slightly different result). I have not the competences (nor time) to investigate that laplacian stuff, so for now just adding an option when parenting to an armature with envelope/heat, to mirror weights along the X axis (as it is done by default when doing it from the Weight Paint mode).
2012-07-15 12:53:16 +00:00
ac9344de75 Fixes for modifier data in multi-user meshes.
When removing a skin or multires modifier, it skips deletion of the
associated CustomData layer if the object has any other modifiers of
that type. This check has been extended to all objects that use the
object's data.

Similarly, deleting higher multires levels and multires subdivision
will not update the maximum level of any other multires modifiers on
objects that link to the same mesh.

Note that modifier_apply_obdata() doesn't need any changes as it
does not allow applying to multi-user data.

Object joining has also been modified to synchronize multires levels
objects that share a mesh. This is needed because joining can
subdivide or delete levels in order to match the maximum level of the
join-from object to the join-to object.

Fixes bug [#31880] instance multiresolution modifier error.
http://projects.blender.org/tracker/index.php?func=detail&aid=31880&group_id=9&atid=498

Reviewed by Sergey:
http://codereview.appspot.com/6332047/
2012-06-24 20:18:32 +00:00
68a9dd54ec mask mode for clip editor developed by Sergey Sharybin, Pete Larabell and myself.
see:
http://wiki.blender.org/index.php/User:Nazg-gul/MaskEditor


note - mask editing tools need continued development, feather option is not working 100%
2012-06-04 16:42:58 +00:00
47584648dc split up proportional editing keymap functions (adding this in tomato branch was messy) 2012-05-30 08:02:49 +00:00
52aad984b6 Outliner Drag & Drop fixes
OUTLINER_OT_parent_drop
 * use scene of child instead of active scene
 * poll to check if parent and child are in same scene

OUTLINER_OT_parent_clear
 * get scene from child instead of only working on active scene
 * poll to check if no parent

OUTLINER_OT_scene_drop && OBJECT_OT_make_links_scene
 * memory leak on error
 * would only link some objects on error
2012-05-29 18:12:13 +00:00
e0c2ddb886 OUTLINER_OT_scene_drop -- "Drag object to scene in Outliner" operator
Refactored the two (well, three now) other places where an object is linked to a scene into ED_object_scene_link()
2012-05-29 08:20:11 +00:00
54b64cfd61 code cleanup: use const float and define array size 2012-05-26 22:21:56 +00:00
19e1d05461 Modifications to the view3d.select() operator:
1. Two new boolean options have been added to the operator: "deselect"
   and "toggle".
2. The previous behavior of "extend" (toggling the selection) has
   been moved to the "toggle" option.
3. "extend" now only extends the selection, it never deselects.
4. "deselect" is pretty self-explanatory: it deselects (i.e. opposite
   of extend).
5. The built-in keymap has been changed to use "toggle" where
   "extend" was used before for this operator, to maintain the
   previous behavior in the default keymap.

In short, this works towards making "extend" and "deselect" fully
consistent across all selection tools (adding to and removing from
selection, respectively), but still preserves the old behavior
as well.

(Patch reviewed by Brecht.)
2012-05-24 21:05:27 +00:00
9892736206 code cleanup: header cleanup and remove some duplicate defines. 2012-05-12 20:39:39 +00:00
e5d4e0f69b Fix #30231: Drag and Droping Parenting from Outliner giving unnecessary Loop Error
In fact, error was much deeper and DND parenting in outliner used to parent all selected
objects to drop target, not just currently dragging object.

This was caused by code sharing between Parent Set operator and this DND operator which
was iterating all selected objects in scene and was setting parent to it.

Solved issue by separating actual parenting code which makes specified object be parented
to specified parent and moved iterating to Parent Set exec callback.

Now both of discovered issues (unneeded loop error and parenting all selected objects)
are solved, but more extensive testing of this changes are welcome.
2012-02-22 07:56:15 +00:00
48006292d8 svn merge ^/trunk/blender -r44189:44204 2012-02-17 20:56:25 +00:00
2b7ca2304a unify include guard defines, __$FILENAME__
without the underscores these clogged up the namespace for autocompleation which was annoying.
2012-02-17 18:59:41 +00:00
4966982a5a svn merge ^/trunk/blender -r43564:43609 2012-01-22 18:04:35 +00:00
98fd7c2948 Patch [#27790] Drag and drop parenting in outliner
Submitted by Perry Parks (scuey)

From the patch:
This patch enables drag and drop parenting for objects in the outliner.

Drag and drop is supported for a selection of multiple objects as well. Also,
all of the "special" parenting tasks (armature, curve, lattice) are possible
through the usual parenting context menus. For example, drag a mesh object onto
an armature and you are prompted for using bone envelopes, automatic weights,
etc.

Demonstration on Vimeo: http://vimeo.com/25698606
2012-01-22 10:20:30 +00:00
c0eec8f379 svn merge ^/trunk/blender -r43062:43085 2012-01-03 02:16:52 +00:00
1e18da32fb replace:
CTX_data_pointer_get_type(C, "object", &RNA_Object).data
with api call:
  ED_object_context(C)

... since getting the context object is such a common operation.
2012-01-02 17:15:24 +00:00
eb233d9332 syncing some minor formatting edits from bmesh branch. 2011-12-04 23:04:43 +00:00
74c6c91ba6 svn merge ^/trunk/blender -r42080:42095 2011-11-23 17:14:27 +00:00
a91bd43d38 Fix compilation error of blenderplayer caused by recent commit. 2011-11-23 16:44:33 +00:00
85497e35d0 Added method clear to most of collections which supports new/remove.
This method not added to animation-specific structures yet/
2011-11-23 16:12:11 +00:00
15e6d6cd75 svn merge ^/trunk/blender -r41226:41227 . 2011-10-24 12:43:08 +00:00
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
75b3936128 svn merge -r40075:40104 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-10 23:49:39 +00:00
357febc168 fix for building with collada and some other warnings 2011-09-10 09:38:38 +00:00
226e424cb2 svn merge -r39057:39286 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-08-11 04:53:57 +00:00
cc0ec3aa33 fix [#28178] make single user copy of object data doesn't work 2011-08-08 08:22:01 +00:00
6cc8f734c0 svn merge -r36603:36651 https://svn.blender.org/svnroot/bf-blender/trunk/blender \nwith some manual edits 2011-05-13 04:04:53 +00:00
5f5cdf9d00 for bug [#27358] Transform bug when transform > 500
mouse coords would with cont. grab would wrap at short.
use mouse coords as int rather then short.

this problem still happens on linux because of XTranslateCoordinates
2011-05-12 16:47:36 +00:00
6ef77cf95a =bmesh= merge from trunk at r36529 2011-05-08 23:43:18 +00:00
f9bcacdbe8 =bmesh=
Fixed some bugs with mesh primitive add 
operators.  Suzanne now faces forward,
instead of down.  Cylinder and circle
both now work.  Cone lets you adjust the
diameter at both ends now.

I also reorganized the walker code, to
be more maintainable and understandable.
2011-05-01 18:53:18 +00:00
284a0d3610 pass even mouse coords value as const so its not edited, view3d_get_view_aligned_coordinate() could modify the event->mval. 2011-04-21 17:25:58 +00:00
Nathan Letwory
8172207d20 doxygen: editor entry 2011-02-21 07:25:24 +00:00
fa4bbbb249 Maintenance,
- remove some redundant declarations
- changed VertexTangent and Path structs to avoid compiler alignment padding.
2010-12-04 13:00:28 +00:00
51dcbdde03 use 'const char *' by default with RNA functions except when the value is flagged as PROP_THICK_WRAP.
Also use const char in many other parts of blenders code.

Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
2010-11-17 09:45:45 +00:00
8268a4be71 most unused arg warnings corrected.
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating).
- mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
2010-10-16 14:32:17 +00:00
Nathan Letwory
82209cdc86 Reorganisation of COLLADA import code. Classes have been split into their own files.
No functional changes.

Where necessary extern "C" {} blocks have been added.
2010-10-05 00:05:14 +00:00
5fa7d1c1b4 2.5: code changes to reduce the usage of G.main and pass it along
or get it from the context instead.
2010-08-01 12:47:49 +00:00
327b4d588b Separate proportional edit setting between edit and object mode. They are now used and toggled independently. 2010-07-31 19:26:21 +00:00
69cb2cc37b adding curve and mesh objects through python would create the object without assigning it to any layers.
now initialize from the scene (when the value is unset), and throw an error when the value is set to all false.
2010-06-14 15:39:50 +00:00
6b21085ed5 enable adding objects in background mode by not using the context to get the object added. 2010-06-09 19:20:05 +00:00