Commit Graph

4124 Commits

Author SHA1 Message Date
Janne Karhu
9feadd443a Small fixes for particles.
* Particle collision with size was broken since raytrace optimizations by jaguarandi, now the collision code falls back to old slower method when the collision ray has a radius.
* Single goal/avoid object now works for boids.
* Some tiny improvements on collision avoidance for boids.
2010-01-23 15:45:01 +00:00
Joseph Eagar
7ef85aa41f Initial results of my profiling of the animation system.
Basically two simple changes, changes, I pulled in the faster 
ghash in bmesh (which uses mempools for allocation, providing 
a substanstial speedup in some cases, and also I inlined some
of the functions), and I changed __inline to __forceinline for inlining
of math functions.

I also removed the timer in the view3d zoom op (ctrl-middlemouse)
that was making it nonfunctional.  Why was that there?
2010-01-23 11:25:20 +00:00
Joshua Leung
8dd14e1eed Graph Editor: Bugfixes for option where only the keyframes of selected F-Curves are shown
* Selected keyframes in unselected F-Curves were still being modified, although not shown
* Selection tools for keyframes were changing the selection status of F-Curves, making keyframes sometimes disappear after trying to select another keyframe

* Warning fixes in a few other files
2010-01-22 23:51:31 +00:00
Brecht Van Lommel
cbc4aae06a Fix crash rendering grass_wind.blend from regression tests. The real
problem is that where_is_object is being called from multiple threads
but is not thread-safe, added a note about this problem, this commit
only solves the crash. Also remove the pushdata/popdata mechanism
that was being used here, using this kind of system is bound to give
problems with threading.
2010-01-22 11:03:55 +00:00
Matt Ebb
96b5658d0c Fix [#20756] Texture painting on 3D tends to forget textures in the new texture menu.
Part of this fix (loading files with brushes/textures) will only apply for new files saved after this commit
2010-01-22 04:21:46 +00:00
Martin Poirier
0d4583365a Fix bug in IDP_ReplaceGroupInGroup (it would sometimes add the same property twice).
Also simplify some other loops.
2010-01-21 21:01:18 +00:00
Brecht Van Lommel
48f48fa814 Fix crash in histogram in image window when image buffer contains
NaN values, now clamps integer instead of float to prevent this.
2010-01-21 13:06:44 +00:00
Joseph Eagar
7ad7820f7f Added a new notifyer, NC_SPACE_CHANGED, to signal an editor that
replaces another so it can do updates (e.g. dopesheet editor can
sync channel selection).

Also coded a simple optimization for allocating small objects,
based on mempools.  It's #ifdef'd out, you can enabled it by 
defining OPTIMIZE_SMALL_BLOCKS (e.g. adding -DDOPTIMIZE_SMALL_BLOCKS to
your compiler flags).

We suffer from a great deal of performance loss from the system allocator
(vgroups, ghash, edgehash, the singly-linked list implementation in blenlib,
editmesh, and likely a great many areas I'm forgetting), and this is the 
common solution for handling the many-small-objects problem.  It's not
really production-ready yet (it's long-term memory consequencers need to
be profiled first, and the implementation tweaked as necassary), but for
people on systems with slow system allocators it's worth trying.

Note that since this creates a guardedalloc<->blenlib link, the build systems
need to be updated accordingly (I've already done this for scons, though I'm
not sure if the player builds).
2010-01-21 03:08:57 +00:00
Matt Ebb
3e1783c715 New Compositor node: Hue Control
Was very quick to do, now re-aquainted with node editor.

http://mke3.net/blender/devel/2.5/hue_correct_node.jpg

Todo: modes for affecting hue and value on the vertical axis as well as just saturation - or if an enterprising coder wants to give it a go, let me know and 
I can help :)
2010-01-21 00:00:45 +00:00
Brecht Van Lommel
9857ffde31 Bugfix: copying drivers did not set compiled expression to NULL, also tweak
to set it to NULL on file read instead of write as is done usually.
2010-01-20 18:27:19 +00:00
Brecht Van Lommel
939c3ba9cb Fix for proxy fix: copy drivers on synchronize now does proper relinking
of driver targets, sharing code with make proxy.
2010-01-20 14:28:49 +00:00
Brecht Van Lommel
1e7858f5a0 Proxy Fix: drivers are now copied on proxy synchronization. Also for bones
on non-proxy protected layers, not sure if these should be done or not, it
depends a bit on preference.
2010-01-20 12:20:34 +00:00
Campbell Barton
d99d68684b only reallocate memory for child particles if the size changes. 2010-01-20 11:32:11 +00:00
Matt Ebb
1d3186cbcf Durian request: Added 'Color Balance' node to compositor. uses Lift/Gamma/Gain
similar to sequence editor.

--> http://mke3.net/blender/devel/2.5/color_balance_node.jpg

Also added 0 key (zero key) shortcut when mouse is over a button, to reset it to its default value.
Same as the RMB menu ->Reset to Default, except for color wheels, it only resets the hue/sat/value
components that that widget affects.

Peter/Xavier: The existing color balance code can generate NaNs (fractional power of a negative),
which causes havoc along the image pipeline. I added a check in the node code to prevent this.

Still plenty of potential for lots of better colour correction tools in the compositor, just needs time...
2010-01-20 04:19:55 +00:00
Joshua Leung
26bc442881 Bugfix for Driver Evaluation:
* Current value for drivers didn't get stored, which meant that the debug value never got updated to reflect the current state.
* Min/Max variable types were not working
2010-01-20 00:54:06 +00:00
Joshua Leung
a8855e2caf Drivers UI: Debug Info
Feature request for ZanQdo, which shows the intermediate values used in driver calculations (i.e. current value of driver, and current value of variables), allowing drivers expressions to be debugged. This is a per-driver setting...
2010-01-19 23:38:26 +00:00
Campbell Barton
ccb6e1904a patch from Bjørnar Hansen (anachron)
Multiple background images displaying each on a different axis.

Changes made from the original patch.
- Use an enum rather then multiple booleans.
- Reduced the space taken up by the user interface.
- Made the image template compact display not show fields & premul options.
- Added readfile.c lines so old blendfile images are loaded.
- Option to hide BGpic UI (like modifiers & constraints)
- Use the index rather then a bgpic from the context for the remove operator.

note: could be good to use 1 image for both left+right, for eg, but for this to work as intended we would need to add image flipping depending on the axis so left this commented out for now.
2010-01-19 22:44:43 +00:00
Brecht Van Lommel
7e9d9460c9 Added extra check & prints for multires data failing to write to
external file.
2010-01-19 15:15:48 +00:00
Campbell Barton
abb5214a8f removed 3D view listener for changing the background image frame.
do this on drawing instead since SCREEN_OT_animation_step isnt calling the notifier (assume this is to be more efficient?). this isnt slow so is ok to do on drawing.

rename BKE_image_user_calc_imanr to BKE_image_user_calc_frame
2010-01-19 14:04:33 +00:00
Joshua Leung
7759fc2983 Motion Paths - (Part 3) Operators, Drawing, and Fixes
This commit makes the new-style Motion Paths work for Objects and Bones. Motion Paths can either be added for Objects (Object buttons) or for Selected Bones in PoseMode (Armature Buttons), and/or removed from these panels too.

Changes:
* Changed the way the baking code worked, since it was better to be able to bake a bunch of objects at once, instead of doing it per object
* Fixed a variety of bugs regarding initialising defaults and reading old files
* Added operators for Objects (like for bones), and replaced the existing code for bones.
* Fixed bug with baking code that was causing it to bake the wrong ranges

Todos:
* Frame number drawing is currently messed up, since the "cached" text drawing takes into account the object transforms.
* The new MotionPath panels currently appear as the first panels in the respective contexts, probably due to the order in which the files are included. This needs some fixing, though not sure what the best way is yet.
2010-01-19 11:31:49 +00:00
Matt Ebb
b079dcc140 Fix compile on msvc (inline) 2010-01-19 02:15:37 +00:00
Matt Ebb
aab8196a1c Finished some work from the weekend to keep local tree clean..
* Added a generic 'histogram' ui control, currently available in new image editor 
'scopes' region (shortcut P). Shows the histogram of the currently viewed image.

It's a baby step in unifying the functionality and code from the sequence editor, 
so eventually we can migrate the sequence preview to the image editor too, 
like compositor.

Still a couple of rough edges to tweak, regarding when it updates. Also would 
be very nice to have this region as a partially transparent overlapping region...
2010-01-19 01:32:06 +00:00
Campbell Barton
13f28b6fa4 revert for last commit, this should fix the proplem properly.
- selected bones on hidden layers would be selected for weight painting (confusing to the user). use the 'active' bone instead.
- when no weight group was set, the index used for the bone group was off by 1.
2010-01-18 16:21:23 +00:00
Campbell Barton
9ae90efc8e - opengl render anim exec function so python can render opengl animations without and have it block until its done.
- timeline rna camera access.
- new textblocks have tabs as spaces enabled by default since this is blenders default.
2010-01-18 14:40:06 +00:00
Campbell Barton
b9fd903e8e make the animation read error message say if the file wasnt found. 2010-01-18 11:46:19 +00:00
Campbell Barton
04230ae592 fix for movie files sequence strip names not working unless the first frame of the movie was shown. 2010-01-18 11:22:32 +00:00
Joshua Leung
90e95d896c NLA (Un)Mapping Fixes:
Hopefully this time I've finally found the proper fix for this. At least in the mini test-suite I made for this, the new inverse process seemed stable enough.

---

Also, tweaked the keyframe drawing code so that it doesn't convert the handles too when performing NLA mapping. This should provide some minor speed boosts when drawing keyframes under these conditions...
2010-01-18 00:35:28 +00:00
Dalai Felinto
9356b1b7ee BGE: Mouse Sensor type defaults to 1 (MOUSELEFT ) + remove camera attribute from Camera objects.
(if you want to mark your camera objects create a property manually ;)

That way object.getPropertyNames() works consistently across all object types.
2010-01-17 21:46:34 +00:00
Campbell Barton
c7dfa96aea bugfix [#20639] BF25_SVN_25888 and below - OBJ and 3DS import fails
blender supports type changing for textures in a way that python doesnt.
add a new general function.

Example usage:
 tex = bpy.data.textures.new("Foo")
 tex.type = 'IMAGE'
 tex = tex.recast_type()

Macro to give the number of users accounting for fake user.
 ID_REAL_USERS(id)
Use this so you can remove a datablock if it has a fake users as well as apply transformations to it in the 3D view.

Move api function bpy.data.add_texture() --> bpy.data.textures.new()/remove()
2010-01-17 20:06:34 +00:00
Campbell Barton
e682febe24 fix for own bug in name flipping, was modifying the original name (very bad!). 2010-01-17 16:00:54 +00:00
Dalai Felinto
e02ad764ee Text Editor: indent and unindent now supports tabs/spaces according to (text->flags & TXT_TABSTOSPACES).
Code-wise it looks now (again) that tab is the default. I hope that'ok. For bitwise operation it's cleaner IMO if the check is for positive values on them.

* TXT_TABSIZE is still harcoded to 4 spaces *
2010-01-17 03:15:27 +00:00
Campbell Barton
70060b2936 fix for own un-initialized pointer 2010-01-16 15:39:00 +00:00
Campbell Barton
2ca119c66d possible fix for [#20674] SegFault from console 'c = data.texts["text1"].copy()'
fix for freeing the undo buffer from a copied text block. (the copy had the old undo pointer)

since I only got an error, not a segfault Im not sure this is the real cause of the crash.
2010-01-16 14:05:39 +00:00
Campbell Barton
03e924cdee mirror modifier vgroup option was doing string name conversion to find the flipped name for every vertex for every weight.
the vertex flip mapping only needs to be made once.

warning fixes too.
2010-01-16 01:15:47 +00:00
Campbell Barton
ace8d45c1c - particle drawing was using invalid memory with weights.
- particle set weight operator (Shift + K) and from the menu.
- mirror vertex groups operator can also flip weight group names.

a number of utility functions for weight groups added
 int *get_defgroup_flip_map(struct Object *ob);
 void flip_vertexgroup_name (char *name_r, const char *name, int strip_number); // moved from modifier.c 
 void copy_defvert (struct MDeformVert *dvert_r, const struct MDeformVert *dvert);
 void flip_defvert (struct MDeformVert *dvert, int *flip_map);
2010-01-15 17:28:00 +00:00
Dalai Felinto
690ad15099 Text Editor: Add an option "Tabs as Spaces".
So now tab is not ALWAYS converted to spaces.
This is stored by text datablock (what allows to do nice things in the future, as automatic check for the indentation type of the file).

Ideally we should redraw the other Text Editor windows after changing that (in case the same file is opened and the Property panel is also open). Not sure how to do that though.

I'm using TABSTOSPACES as the DEFINE flag because TABSASSPACES sounds too ugly.

(also fix for interface divisor bug)
2010-01-14 21:30:51 +00:00
Campbell Barton
b0f87935a8 spelling errors, no real changes to code. 2010-01-14 10:59:42 +00:00
Campbell Barton
4371c3b044 no-functional change - use interpolation functions where possible. 2010-01-14 10:58:03 +00:00
Campbell Barton
c1f2fd0a46 particle weight brush back (mostly the same as in 2.4x), needed to control long hairs movement. 2010-01-14 08:53:10 +00:00
Campbell Barton
e5be23c141 check if the layer exists rather then getting the array. 2010-01-13 12:17:21 +00:00
Brecht Van Lommel
63e80e271d Bugfix: drivers on constraint properties could get set to invalid when
transforming, due to the evaluation of the object transform without
constraints, and the driver not finding the property.

Constraints are now disabled in a way that should avoid this problem
2010-01-12 19:51:26 +00:00
Brecht Van Lommel
b58a14fe93 Fix for custom shapes getting lost on proxy armature bones. 2010-01-12 18:56:39 +00:00
Campbell Barton
59dfd24f75 - bugfix [#20654] the property edge_face_count of the Mesh-Object does not work
- remove unneeded particle function
2010-01-12 18:33:21 +00:00
Brecht Van Lommel
f7f98f3b05 Proxy Protection Fixes
* Mostly revert #24880: Transform Locks affecting animation system. This
  was implemented as a feature request from Nathan but was not the
  intended functionality, and actually gives problems instead. The transform
  locks should really only affect what the user can do, not if the property
  can be animated internally.
* Revert #25868: fix for lib linked scenes not animating. This was needed
  due to the above feature, but meant that all lib linked properties were
  editable in the UI.
* Make bone properties of on proxy-protected layers not editable. They will
  be overriden on reload/redo like lib linked data, so should not be edited.
2010-01-12 17:08:28 +00:00
Campbell Barton
e672a083d9 bugfix for particle editmode operators from (Janne Karhu)
psys_get_particle_on_path was taking dynamics into account, making subdivide add points in odd places.
2010-01-12 16:29:05 +00:00
Campbell Barton
78798ba4df rename free_group to free_group_objects since it doesnt free the group its self. 2010-01-12 13:42:13 +00:00
Campbell Barton
70942f9a83 last commit was no good since pe_get_current was running recalc_emitter_field on mousemove and poll() functions.
run on entering particle editmode only.
2010-01-12 13:40:29 +00:00
Campbell Barton
a3e461ce1b - player building again
- fix for compiler warnigns
- bpath reporting was incorrect
2010-01-11 10:48:41 +00:00
Brecht Van Lommel
49fc1f9860 Fix #20619: subsurf + explode modifier crash. 2010-01-11 10:22:24 +00:00
Matt Ebb
e0dd3fe587 * Restored font selection functionality with open font and unlink font operators,
so you can change the font of 3D text objects.
2010-01-11 05:10:57 +00:00