Commit Graph

492 Commits

Author SHA1 Message Date
Campbell Barton
aaa8a13c49 code cleanup: use const events for modal and invoke operators. 2013-03-13 09:03:46 +00:00
Bastien Montagne
ea341574cb Rigid body UI: add translation to materials' names (density collection). 2013-03-10 13:37:14 +00:00
Campbell Barton
abd1748e48 code cleanup: move runtime var zfac out of RegionView3D. rename initgrabz() -> ED_view3d_calc_zfac() and have it return the zfac to use. 2013-03-09 11:40:42 +00:00
Campbell Barton
dfa8540cdf use bool for rna funcs. 2013-03-07 02:44:55 +00:00
Campbell Barton
384948908a patch [#34103] path_util_split_dirstring.patch, path_util_split_dirstring_2.patch, path_util_split_dirstring_3.patch
from Lawrence D'Oliveiro (ldo)

Get rid of BLI_splitdirstring, replace with calls to BLI_split_dirfile, BLI_split_dir_part and BLI_split_file_part as appropriate.
2013-03-05 06:26:10 +00:00
Campbell Barton
e39f05e5fa patch [#34103] fileops_1.patch
from Lawrence D'Oliveiro (ldo) 

Add comments and use of bool type in fileops.c
2013-03-05 03:53:22 +00:00
Sergej Reich
1add9e5449 pointcache: Fix freeing all bakes in particle mode
Freeing all bakes didn't free edited cache in particle mode, this lead
to unresponsive ui and crashes.

Now use same logic as for freeing single bake.
2013-02-24 19:33:10 +00:00
Campbell Barton
4df5b943ed patch [#34103] - listbase.patch, insertlinkbefore.patch
from Lawrence D'Oliveiro (ldo) 


notes from tracker:
use bool for return type from BLI_remlink_safe, necessitating including BLI_utildefines.h in BLI_listbase.h
get rid of duplicate BLI_insertlink, use BLI_insertlinkafter instead.

A few places which were using BLI_insertlinkafter (actually BLI_insertlink), when it would be simpler to use BLI_insertlinkbefore instead.
2013-02-22 14:12:55 +00:00
Brecht Van Lommel
20220d47e3 Dependency Graph: some refactoring which should have no user visible impact
besides performance in some cases.

* DAG_scene_sort is now removed and replaced by DAG_relations_tag_update in
  most cases. This will clear the dependency graph, and only rebuild it right
  before it's needed again when the scene is re-evaluated.

  This is done because DAG_scene_sort is slow when called many times from
  python operators. Further the scene argument is not needed because most
  operations can potentially affect more than the current scene.

* DAG_scene_relations_update will now rebuild the dependency graph if it's not
  there yet, and DAG_scene_relations_rebuild will force a rebuild for the rare
  cases that need it.

* Remove various places where ob->recalc was set manually. This should go
  through DAG_id_tag_update() in nearly all cases instead since this is now
  a fast operation. Also removed DAG_ids_flush_update that goes along with
  such manual tagging of ob->recalc.
2013-02-21 19:33:04 +00:00
Sergej Reich
e3944f5bfa Divide by 3 instead of multiplying by variations of 0.333
Fixes small precision problems.
2013-02-14 17:35:43 +00:00
Sergej Reich
92b6a54e50 rigidbody: Don't cancel add operator if rigid body already exists
In some cases objects might have rigid bodies but aren't in the rigid
body group, just add objects to the group then.

Also allow changing the rigid body type by using the add acive/passive
buttons. This avoids having to remove objects just to change type.
2013-02-12 14:45:57 +00:00
Sergej Reich
ca0e18f88b rigidbody: Clean up wm notifiers in rigid body operators
Remore group notifiers, they're already sent by add/remove group operators.
Add pointcache notifiers.

Fixes UI not being updated properly in some cases.
2013-02-12 14:45:55 +00:00
Campbell Barton
7c5e72460a fix [#34169] dynamic paint bake from python + command line = segfault 2013-02-11 15:48:43 +00:00
Sergej Reich
bd9a7ab768 rigidbody: Add missing updates for rigidbody operators
Fixes cache not being invalidated when using change collision shape and
calculate mass operators.
2013-02-09 10:04:29 +00:00
Sergey Sharybin
fdfa5910b5 Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashes
Issue was caused by couple of circumstances:

- Normal Map node requires tesselated faces to compute tangent space
- All temporary meshes needed for Cycles export were adding to G.main
- Undo pushes would temporary set meshes tessfaces to NULL
- Moving node will cause undo push and tree re-evaluate fr preview

All this leads to threading conflict between preview render and undo
system.

Solved it in  way that all temporary meshes are adding to that exact
Main which was passed to Cycles via BlendData. This required couple
of mechanic changes like adding extra parameter to *_add() functions
and adding some *_ex() functions to make it possible RNA adds objects
to Main passed to new() RNA function.

This was tricky to pass Main to RNA function and IMO that's not so
nice to pass main to function, so ended up with such decision:

- Object.to_mesh() will add temp mesh to G.main
- Added Main.meshes.new_from_object() which does the same as to_mesh,
  but adds temporary mesh to specified Main.

So now all temporary meshes needed for preview render would be added
to preview_main which does not conflict with undo pushes.

Viewport render shall not be an issue because object sync happens from
main thread in this case.

It could be some issues with final render, but that's not so much
likely to happen, so shall be fine.

Thanks to Brecht for review!
2013-02-05 12:46:15 +00:00
Campbell Barton
69993c5d40 style cleanup: spaces -> tabs 2013-02-04 00:18:09 +00:00
Campbell Barton
6fca85780b style cleanup: also correct doc example for 'foreach_get/set' 2013-02-02 00:34:34 +00:00
Sergey Sharybin
7dc33e3ef8 Move opencl and reigidbody from source/blender/ to intern/
This modules does not depend on any blender-specific data
structures or algorithms and due to our policy better be
placed to intern/

Shall be no functional changes, tested CMake and SCons on
Linux, hopefully other platforms will work as well.

P.S. SVN history shall be preserved for the files.
2013-02-01 06:24:49 +00:00
Bastien Montagne
a2e55171fe Bunch of fixes for UI messages.
Also generate rigid body constraint types in py bullet code from RNA enum values (simpler than having to sync the code when something is changed here!).

Side note: RNA API about icons still needs to expose icons for enum values, and conversion funcs between icon_name and icon_value!
2013-01-27 18:14:24 +00:00
Sergej Reich
4245a107cf Revert r54058, caused crash when adding paritcles in particle edit mode
MEM_recallocN() doesn't allocate memory when used on a null pointer.

Just revert commit since there is no real benefit to using
MEM_recallocN() in this case.
2013-01-26 12:30:44 +00:00
Sergej Reich
204ec89bff rigidbody: Improve add/remove operators
Now all add/remove operators for rigid body objects and constraints
automatically add objects to the appropriate groups and create groups if they
don't exist yet.

This makes handling rigid bodies easier but doesn't take away functionality.
If users want to handle groups manually they just need to create them before
adding any objects.

The previous behaviour was confusing and was even considered to be a bug since
clicking on rigid body in the physics tab seemed to do nothing.
2013-01-25 06:26:38 +00:00
Campbell Barton
dccec5727e replace calloc + memcpy with recalloc. 2013-01-24 00:46:51 +00:00
Brecht Van Lommel
555ae1f4b0 Fix #33896: particle add brush with radius 1 would give duplicated and NaN hairs. 2013-01-23 19:40:52 +00:00
Campbell Barton
69ddc5eb99 make bullet optional again 2013-01-23 07:26:39 +00:00
Sergej Reich
47c96081d0 rigidbody: Add rigid body constraints
Constraints connect two rigid bodies.
Depending on which constraint is used different degrees of freedom
are limited, e.g. a hinge constraint only allows the objects to rotate
around a common axis.

Constraints are implemented as individual objects and bahave similar to
rigid bodies in terms of adding/removing/validating.

The position and orientation of the constraint object is the pivot point
of the constraint.

Constraints have their own group in the rigid body world.

To make connecting rigid bodies easier, there is a "Connect" operator that
creates an empty objects with a rigid body constraint connecting the selected
objects to active.

Currently the following constraints are implemented:
* Fixed
* Point
* Hinge
* Slider
* Piston
* Generic

Note: constraint limits aren't animatable yet).
2013-01-23 05:56:56 +00:00
Sergej Reich
2d8637946b rigidbody: Add rigid body simulation
Add operators to add/remove rigid body world and objects.
Add UI scripts.

The rigid body simulation works on scene level and overrides the
position/orientation of rigid bodies when active.
It does not deform meshes or generate data so there is no modifier.

Usage:
* Add rigid body world in the scene tab
* Create a group
* Add objects to the group
* Assign group to the rigid body world
* Play animation
For convenience the rigid body tools operators in the tools panel of the 3d view
will add a world, group and add objects to the group automatically so you only have
to press one button to add/remove rigid bodies to the simulation.

Part of GSoC 2010 and 2012.
Authors: Joshua Leung (aligorith), Sergej Reich (sergof)
2013-01-23 05:56:44 +00:00
Sergey Sharybin
e224996f3d Avoid using python keyword as operator property name 2013-01-21 12:44:40 +00:00
Campbell Barton
159507dc2c fix for possible null pointer dereference in PE_create_particle_edit 2013-01-20 14:10:10 +00:00
Campbell Barton
6747dec926 style cleanup 2013-01-07 03:24:22 +00:00
Ton Roosendaal
c9b8839237 Bug fix #33647
Particle combing didn't always respond as expected. The combed effect was 
depending on the center of object in view, instead of on the center of 
selected hairs. That made combing in certain close ups impossible.

Same was actually true for transform tools for hairs!

And even worse - there was an optimize break in calculating center
which wasn't true even. Causing centers for transform to fail similar
in other cases.
2012-12-21 17:47:50 +00:00
Sergey Sharybin
b28c055508 Fix #33640: Blender crashes when I click on "Connect Hair" in "Particles" pannel
Issue was caused by disabled particle system modifier, now connect hair
will check on that and give an error message if modifier is disabled.
2012-12-21 09:27:39 +00:00
Campbell Barton
b2c66e268f replace MIN/MAX 3,4 with inline functions 2012-12-21 05:07:26 +00:00
Campbell Barton
c27d22ab71 fix own regression in 2.65 [#33643] Rotation does not work at certain zoom level
caused by not projecting points behind the perspective view,
even though this worked in 2.64 the values were flipped (rotating direction was reversed and the center point was flipped).

added V3D_PROJ_TEST_CLIP_NEAR, when omitted ED_view3d_project_*** will project points from behind a perspective view plane.
2012-12-21 03:49:47 +00:00
Campbell Barton
e72239c6a4 style cleanup 2012-12-18 01:52:18 +00:00
Bastien Montagne
ab2c273b12 Added GPL header to sconscripts!
Also changed shebang to '#!/usr/bin/env python', this is more portable across unixes...
2012-12-17 08:01:43 +00:00
Campbell Barton
11ffc7f5c2 remove modifiers_indexInObject(), just call BLI_findindex directly. 2012-12-15 05:46:41 +00:00
Ton Roosendaal
0990c84f3f Fixes for correct UI scaling display:
- Move to layer (and more popups) didn't scale yet
- User Prefs and render window now open on right location on Mac Retinas
- Brush sizes for painting now scale for Mac Retina
2012-12-14 15:09:59 +00:00
Campbell Barton
7c699a217a define the size of matrix args for both rows/cols. 2012-12-11 14:29:01 +00:00
Campbell Barton
a91814e94d style cleanup 2012-11-26 11:03:14 +00:00
Brecht Van Lommel
7cc12e5170 Fix #33279: crash in particle brush cut tool when cutting hairs that go outside the view. 2012-11-23 21:22:13 +00:00
Daniel Genrich
ef67ddeba9 Bugfix [#29186] Object contribute to fluid sim animation start earlier than keyframe
Also fix:
- Fluid simulation was always lagging 1 frame behind: E.g. the 250th frame in blender showed 249th frame of the fluid simulation.

Change:
- Animated enabled/disabled property only gets counted as "on" if value >= 1

Note that this bugfix should solve many problems with timings of animated fluid sim properties.
2012-11-23 05:00:07 +00:00
Campbell Barton
ebde2d579a each different remove doubles function used a different property name, use 'threshold' for all now. 2012-11-14 03:13:51 +00:00
Daniel Genrich
b51908b913 Bugfix [#32939] Fluid sim reversed on X and Y with animated Control object
Bug was introduced in r48531 by accident since fluid control object abuse a variable for another flag which got reset.
2012-11-07 18:11:13 +00:00
Campbell Barton
fae6c35ca7 code cleanup: quiet -Wdouble-promotion, disabled this warnings for a few files since its done throughout the code in some places. 2012-11-04 07:18:29 +00:00
Campbell Barton
00b8c2afa1 style cleanup 2012-10-31 10:09:06 +00:00
Campbell Barton
aeba4950c3 style cleanup 2012-10-27 10:42:28 +00:00
Bastien Montagne
c9dade4fe0 Big i18n commit: add "reports" from bmesh/readfile/tracking/dynapaint (and a few others), and another bunch of UI messages tweaks/fixes, as well as some BKE_report()<->BKE_reportf()... 2012-10-26 17:32:50 +00:00
Campbell Barton
f70d2c65d8 rename api functions...
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
2012-10-23 13:28:22 +00:00
Campbell Barton
1767b65846 style cleanup: also rename bmesh_decimate.c --> bmesh_decimate_collapse.c 2012-10-23 03:38:26 +00:00
Campbell Barton
ddc2dbc2a4 style cleanup 2012-10-22 08:15:51 +00:00