Commit Graph

432 Commits

Author SHA1 Message Date
c284725a1a 3D Audio GSoC:
* versioning stuff for btheme->tv3d.speaker
* separating object.c speaker functions in own source file

Thanks Brecht for the suggestions.
2011-08-04 07:12:03 +00:00
3e85ec432e 3D Audio GSoC:
Adds new speaker object type.

Notes:
* Needs some nice icons
* Quickily review by Joshua Leung (5 mins)
* Properties UI updated (with help of Thomans Dinges)
* Speakers have their own theme color
* No real audio functionality yet.
* Minor bug regarding lamps/lattices fixed in interface_templates.c

I personality tested:
* Creation, Deletion, Duplication
* Saving, Loading
* Library linking (incl. make local)
* Tracking
* Dope Sheet, Outliner
* Animation
* Drawing (incl. Theme)
2011-08-01 11:44:20 +00:00
6a392e8cb5 == RNA Property Updates get called by Animation System now ==
This fixes bug #26764 and several others like it, where modifier
properties (and others, but most visibly modifiers) would not do
anything when animated or driven, as modifier properties require the
RNA update calls to tag the modifiers to get recalculated.

While just adding a call to RNA_property_update() could have gotten
this working (as per the Campbell's patch attached in the report, and
also my own attempt #25881). However, on production rigs, the
performance cost of this is untenatable (on my own tests, without
these updates, I was getting ~5fps on such a rig, but only 0.9fps or
possibly even worse with the updates added).

Hence, this commit adds a property-update caching system to the RNA
level, which aims to reduce to the number of times that the update
functions end up needing to get called.

While this is much faster than without the caching, I also added an
optimisation for pose bones (which are numerous in production rigs) so
that their property updates are skipped, since they are useless to the
animsys (they only tag the depsgraph for updating). This gets things
moving at a more acceptable framerate.
2011-07-24 04:34:46 +00:00
5e41807135 Fix #27654: vertex parenting not working with constructive modifiers.
Vertex parents were not requesting the original index layer, now do this as
part of depsgraph building, and make constraints with vertex groups use the
same system. Fix is based on patch by Campbell, but with some changes.
2011-06-15 09:45:26 +00:00
e8bc3fe0e3 object-mode lattice bounds were not taken into account when calculating min/max.
effected view-selected, center-origin & local view.
2011-06-06 07:29:57 +00:00
9b5800bcd7 fixed "rather then" -> "rather than" typos all over the place 2011-05-28 13:11:24 +00:00
9af390ab67 fix [#27485] Create new shapekey on lattice 2011-05-26 06:34:31 +00:00
d02480cdaa remove / comment unused code, patch by nico_ga on IRC with some edits. 2011-05-22 16:29:51 +00:00
3aaa03e1f8 Add localize_lamp and localize_world functions as already existed for materials
and textures, unused still.
2011-05-19 11:21:37 +00:00
c213b9525f minor changes to view3d operators, add View3D to 'ViewOpsData' 2011-05-14 05:42:58 +00:00
054eb2897c object_mat3_to_rot wasn't correctly accounting for the euler delta rotations, so setting the matrix of an object would fail in this case (rotational jump). 2011-05-14 04:59:37 +00:00
eabb444106 minor cleanup: make functions static, use NULL for pointer comparisons,
also fixed a possible bug assigning incorrect DPX function types to
imbuf.
2011-05-10 13:11:36 +00:00
e601dee168 take 3, fix [#26727] Make Proxy ignores group offset 2011-05-03 05:41:16 +00:00
Dalai Felinto
1fdc760bfe bugfix: empty proxied (Ctrl+Alt+P) doesn't maintain draw type and size
reported by me in my Blender ranting sessions with myself
2011-05-03 00:13:01 +00:00
e45328f1b6 fix [#26727] Make Proxy ignores group offset 2011-04-28 17:19:32 +00:00
e4cc1c3f2c fix [#27178] Material links lost when making mesh data local
- making local object data - Curve/Mesh/MBall lost references to linked materials.
- joining a linked mesh object into a local one lost the link.

As well as these reported bugs, checked all local functions for consistency/correctness and found other cases which would also fail.
- making local metaball didn't ensure unique ID name.
- make_local_armature() was missing check for object users - main body of code would never run.
- local particles didn't set the dupli-group or textures to extern.

checked all local functions for consistency/correctness.
2011-04-26 07:17:21 +00:00
33b8d53224 minor cleanup & replace inline armature separate pchan searches with BLI_findstring(), no functional changes. 2011-04-20 02:56:51 +00:00
be17466942 Fix for [#27038] Bugs when linking particles/collision/softbody modifiers
* Collision modifiers are disabled here by intention, but particles and softbody were copied the wrong way over :)
* On a further note I don't really get this whole "link modifiers" thing as it just copies the modifiers. As modifiers aren't ID blocks there's no sense in calling this linking!
* Secondly I don't think particles, smoke etc should be considered as modifiers here at all, meaning they shouldn't be linked/copied. These "modifiers" only read the mesh data at a certain location of the stack, but don't actually modify the mesh in any way (more info here http://wiki.blender.org/index.php/User:Jhk#Modifier_Stack_proposal).
2011-04-19 16:30:55 +00:00
7f598451fc fix [#26906] Panorama Button (Camera Data Properties)
- render check for ortho/panorama combination wasn't working since the flags were not initialized at the time of checking.
- disable panorama button in ortho mode.
2011-04-15 12:08:17 +00:00
fb994b3c85 fix [#26727] Make Proxy ignores group offset 2011-04-02 01:36:40 +00:00
a73c3fe5c9 subsurf, derived mesh and other misc files: floats were being implicitly promoted to doubles, adjust to use floats. 2011-03-27 17:22:04 +00:00
8b6b5341a5 move object re-linking into a function. 2011-03-25 08:43:41 +00:00
da18391ac4 api function added for [#26481] Export to X3D of IndexedFaceSet should use X3D 's DEF USE mechanism
Object.is_modified(scene, 'PREVIEW') function for python exporters to check if any modifiers or shape keys are applied (weather the original mesh can be used for exporters).
2011-03-16 08:53:35 +00:00
709c727c51 replace 0 with NULL when used as a pointer 2011-03-03 17:58:06 +00:00
Nathan Letwory
0ff06e21cd doxygen: blender/blenkernel tagged. 2011-02-27 20:40:57 +00:00
2c4fb98522 Bugfix [#26106] No instant visual feed back for Dupliframes, parenting
problem and crash

- It turns out we still need the "copyob" still, if for nothing other
than making sure that the unkeyed transforms can get restored. This
was removed originally as I thought that just reevaluating the
animation would work.

- Removed a buggy line of logic that was causing crashes when there
was no animation data. It's better to just assume that if animation
data exists, that something exists there.

- Make Duplicates Real was not clearing data such as the new animation
data or constraints.
2011-02-16 21:54:41 +00:00
ac1e2fc977 Bugfix [#22535] Dupliframes with keyframe Anim are broken
So, it turns out that dupliframes weren't that bad to restore... the
old version didn't do truly accurate transform freezing as it didn't
update ancestors too. However, as a modelling tool, this will probably
suffice.
2011-02-16 09:59:29 +00:00
8b7482892b made most variables which are only used in a single file and not defined in header static for blenlib, blenkernel and editors. 2011-02-14 17:55:27 +00:00
0955c664aa fix for warnings from Sparse static source code checker, mostly BKE/BLI and python functions.
- use NULL rather then 0 where possible (makes code & function calls more readable IMHO).
- set static variables and functions (exposed some unused vars/funcs).
- use func(void) rather then func() for definitions.
2011-02-13 10:52:18 +00:00
867fc4b463 enforce string limits (reported by pedantic checking tools & some developers).
mostly replace strcpy with BLI_strncpy and multiple strcat's with a BLI_snprintf().
also fix possible crash if CWD isnt available.
2011-02-13 03:21:27 +00:00
c57cd7c5bd bugfix for setting the worldspace matrix of an object which used quaternion rotation and deltas, was subtracting the values rather then multiplying by the inverse.
effected 'Apply Visual Transform' & pythons obj.matrix_world = mat
2011-02-02 01:01:01 +00:00
95df65f1b5 - some parts of the code to remove rotation were not removing axis/angle rotation (only functional change of this commit).
- use BLI_math functions for removing rotations from objects and pose channels.
- add unit_axis_angle() to avoid setting the Y axis inline anywhere rotation needs removing.
2011-02-02 00:40:55 +00:00
bc36e39c23 fix issue #2 raised by report: [#25894] Problems with properties across files 2011-02-01 21:24:59 +00:00
329e2d8037 Todo issue: sculpting on deformed mesh
Used a crazyspace approach (like in edit mode), but only modifiers with
deformMatricies are allowed atm (currently shapekeys and armature modifiers only).
All the rest modifiers had an warning message that they aren't applied because
of sculpt mode. Deformation of multires is also unsupported.

With all this restictions users will always see the actual "layer" (or maybe
mesh state would be more correct word) they are sculpting on.

Internal changes:
- All modifiers could have deformMatricies callback (the same as deformMatriciesEM but
  for non-edit mode usage)
- Added function to build crazyspace for sculpting (sculpt_get_deform_matrices), but it
  could be generalized for usage in other painting modes (particle edit mode, i.e)

Todo:
- Implement crazyspace correction to support all kinds of deformation modifiers
- Maybe deformation of multires isn't so difficult?
- And maybe we could avoid extra bad-level-stub for ED_sculpt_modifiers_changed
  without code duplicating?
2011-01-31 20:02:51 +00:00
a68a44817a More logical ordering of Empty draw types. Made Plain Axes default for
new empties
2011-01-27 21:05:01 +00:00
18aece4424 Bugfix [#25823] When objects are parented to the same objects that
they have some rotation-affecting constraint (i.e. Track To and Copy
Rotation) targetting, transforming the objects (directly, using GKEY
-> grab) becomes unreliable.

This was caused by a typo in some code checking for some
OB_NO_CONSTRAINTS under "flag" instead of "transflag"
2011-01-27 01:29:40 +00:00
083be90232 Fix for "[#25700] 2.56: Rotation Mode: Quaternion shows wrong orientation of the object".
There was a small typing error that made object and armatures rotate twice the magnitude when in quaternion rotation mode.
2011-01-18 15:02:58 +00:00
00b8c9e7ea rename BKE_assert() --> BLI_assert(). 2011-01-09 15:12:08 +00:00
89c9aaaa25 remove references to BKE_utildefines where its not needed.
- move GS() define into DNA_ID.h
- add BLI_utildefines as an automatic include with makesrna generated files.
2011-01-07 19:18:31 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
221187bcbd comment assert and ensure meshes are always calculated with CD_MASK_BAREMESH, scene->customdata_mask should be corrected in background mode but for now this is ok. 2011-01-04 12:31:42 +00:00
c046ae14be Fix for multiple modifier stack calculations per frame.
Since 2.5x blender has been using CD_MASK_BAREMESH for updating objects since object_handle_update() no longer has access to G.curscreen to calculate the mask from viewports.

The problem with this is after an initial calculation, CD_MASK_MTFACE may be required on draw, so it would recalculate the modifier stack multiple times per frame.
One case which caused this is armature animated mesh with texface in a dupligroup.

Fix this by having customdata_mask member in the scene, this isn't great design but at least fixes the bug and only changes a few files.
2010-12-23 04:16:31 +00:00
f90a2123ee no functional change: only check against OB_RECALC_ALL but don't use for assignment.
Makes adding new flags give ambiguous results and also makes it less easy to tell whats intended.
In some places it looks like OB_RECALC_TIME should be left out too.
2010-12-17 15:51:42 +00:00
071b61259b increase grease pencil user count when copying objects. 2010-12-08 14:40:14 +00:00
48614fbc2a Added an assert() check for normalized quats which exposed a number of bugs where normalized quat was incorrectly assumed.
This would have made bug #25003 very simple to find.

- Objects had their quats normalized when calculating their matrix, this is inconstant with pose bones and isn't useful for animation.
  Also it wasn't normalizing the delta rotation so these would give bad rotations.

- Converting between rotation modes BKE_rotMode_change_values() assumed normal length quat. changing quat to euler rotation for eg could change the bone.

- Clear rotation and transform were not normalizing the quat when 4d loc was disabled on quat rotation, corrected and also made it so the quat scale is restored after conversion so animations curves dont jump.

There is 1 case in mat3_to_quat_is_ok() where quat_to_mat3 on an unnormalized quat is needed, for this I had to add an ugly static function quat_to_mat3_no_assert(), but overall its worthwhile IMHO to be able to find incorrect use of rotation conversion.
2010-12-07 01:56:32 +00:00
263830f000 Enabled GCC -Wwrite-strings warning for CMake and replaced many 'char's for 'const char's,.
Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
2010-12-03 17:05:21 +00:00
ab72823917 edit on last commit, for calculating drivers on obdata just check for animdata rather then the object type.
also use switch rather then if checks.
2010-11-19 07:40:17 +00:00
39de1914ab bugfix [#24796] Drivers are ineffective on Text & Curve obj. geometry parameters
also added note that adjusting bone radius changes the parent bone for connected child bones, and fix typo on failing to read startup.blend (both pointed out by MikeS on IRC)
2010-11-19 07:31:24 +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
ee7bf4dab5 take delta's into account when applying the objects matrix (dloc, drot, dsize).
Now object_apply_mat4() can be used as the reverse of object_to_mat4().

Noticeable result is fly mode and 'Apply Visual Transform' dont jump when deltas are used, also means setting matrix from python works as expected.
2010-11-12 11:16:04 +00:00