Commit Graph

544 Commits

Author SHA1 Message Date
Ton Roosendaal
e836d2a169 Bugfix, irc report
After using loop-cut with multiple edges, transform widget
disappeared. Reason was a variable being set in function
not being called on cancelled operators. Now it's in Posttrans()
2010-12-16 17:19:24 +00:00
Campbell Barton
ee09aeb498 dont transform hidden handles in the graph editor. 2010-12-15 16:07:49 +00:00
Campbell Barton
2ed82275b5 transforming pose bones while the animation was playing would crash. 2010-12-10 00:10:43 +00:00
Campbell Barton
afacd18498 use lowercase for cmake builtin names and macros, remove contents in else() and endif() which is no longer needed. 2010-12-08 08:43:06 +00:00
Campbell Barton
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
Brecht Van Lommel
b110c7c8f2 Dependency graph: changed DAG_id_flush_update to DAG_id_tag_update. Now it
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.

This should help performance in python and animation editors, by making 
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
2010-12-05 18:59:23 +00:00
Campbell Barton
fa4bbbb249 Maintenance,
- remove some redundant declarations
- changed VertexTangent and Path structs to avoid compiler alignment padding.
2010-12-04 13:00:28 +00:00
Campbell Barton
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
Campbell Barton
cd97253502 - added GCC warning -Wstrict-prototypes
- fixed bug in paste material, exposed by stricter warnings.
- removed/renamed various shadowed vars.
- removed BGE lamp.colour, only allow lamp.color attribute.
2010-12-03 12:30:59 +00:00
Campbell Barton
79d9023f55 bugfix [#24974] "select all" in weight paint -> face selection mode selects all bones instead of all faces
face mask mode overrides pose mode keys. also removed function call from transform code.
2010-11-30 05:15:58 +00:00
Campbell Barton
e8397e6193 include headers in cmake source, added a script to check for consistency, reporting missing headers & C files.
this is important so IDE's using CMake integration always get blender headers. - QtCreator & MSVC for eg, probably others too.
2010-11-29 04:35:56 +00:00
Campbell Barton
34ea1cf0b2 minor changes to the python api.
- pep8 script was giving an error on non utf8 scons source files.
- use PyList_SET_ITEM macro when list type is ensured.
- all mathutils types use subtypes to create new types when available.
- use defines MAT3_UNITY, MAT4_UNITY to initialize unit matrices.
2010-11-28 06:03:30 +00:00
Martin Poirier
1e579c780c [#24935] Proportional translation size stuck to none
Adjust hard and soft limits on proportional size operator property.

Prevent zero in old files with reset if under hard limit (in tools settings).
2010-11-27 19:18:13 +00:00
Campbell Barton
95d8cfc25d bugfix [#24907] bone roll z up broken and python script showing correct method to roll bones
from Josh Wedlake (joshwedlake), who provided a reference script used to apply changes in ED_rollBoneToVector().

- Obvious bug fixed where Z-Up didnt work right.
- More align axis options to Recalculate Roll operator: X/Y/Z/View Axis & Negate.
- Axis Only option, ignore the axis direction, use shortest rotation to align bones.


ED_rollBoneToVector() changes:
- would give bad roll when the axis wasn't normalized or perpendicular to the bone.
  some callers accounted for this but not all.
- option to align to the axis but not the direction.
2010-11-25 19:49:07 +00:00
Campbell Barton
2c70b1785c bugfix [#24887] Crash on snapping verts on other object
now the derived mesh and the editmesh will always have matching faces.
2010-11-24 18:02:35 +00:00
Campbell Barton
4a20c386fd bugfix [#20768] Project Snap Broken 2010-11-22 14:16:11 +00:00
Martin Poirier
01c6b6f1e9 [#22854] Objects lag behind mouse pointer when transformed (translated)
[#24652] Project vertices button showing in object mode and leads to wrong behavior.

Removing soft redraw (code is still there in case we need it eventually) on mouse move, now that events are compressed.
2010-11-21 18:31:00 +00:00
Martin Poirier
ac2e77cac5 [#24827] Crash when auto-keyframing while playing animation
Reported by André Oliveira

Need to pass valid context to autokeying callback function.
2010-11-20 21:43:16 +00:00
Martin Poirier
6eaf0ac8be Cancel edge slide on invalid selection.
Patch by Shane Ambler
2010-11-20 18:46:36 +00:00
Campbell Barton
96952b83fa patch from Shane Ambler, free memory when failing to create slide verts. 2010-11-19 17:29:51 +00:00
Campbell Barton
223e70467e bugfix [#24777] Scale both markers and keyframes at the same time?
sync marker option worked for translate and extend but not for scale in the dope sheet.
2010-11-18 05:05:06 +00:00
Joshua Leung
f713761039 Keyframing Operators: Improved Error Messages
* Keyframing operators now use the reports system for displaying all its error messages. 
- The benefit of this is that users no longer need to check the console for error messages if keyframing fails.
- Unfortunately, reports are not currently viewable in any space/view in Blender, so...

* Added a temporary operator (UI_OT_reports_to_textblock), which can be accessed in the UI from the button which appears in place of the icon when more than one report exists. This dumps the current list of reports to a textblock "Recent Reports", from which they can be viewed. 

This isn't really nice, but at least we now have a way to view these again, which makes debugging some things a pain.

* Bugfix #24606 - when trying to add keyframes to F-Curves with F-Modifiers already which alter the curve significantly enough that the keyframes will have no effect, there are now warnings which aim to alleviate any confusion.
2010-11-17 12:02:36 +00:00
Campbell Barton
b1b02b7a5e bugfix [#24509] UV/Image Editor: selected elements move not as specified 2010-11-16 17:37:26 +00:00
Martin Poirier
43e6ccd57b Move rotOrder to proper transform data structure 2010-11-14 19:19:58 +00:00
Martin Poirier
7f0877f0dc bugfix [#24697]
Proper fix: change the poll function to reflect actual operator requirements.
2010-11-14 18:27:25 +00:00
Martin Poirier
bc7903c858 [#24639] Snap to Face (retopo) doesn't work when clipping is enabled in mirror modifier.
Apply project snap at the very end.
2010-11-14 16:31:06 +00:00
Campbell Barton
c66731b634 bugfix [#24697] Trying to run bpy.ops.transform.create_orientation crashes Blender 2010-11-14 08:26:44 +00:00
Campbell Barton
30ac7799c8 bugfix [#24702] 3Dmanipulator does not display if view's layers are not synchronize to scene's layers. 2010-11-14 07:49:07 +00:00
Joshua Leung
98e98bf5d2 Bugfix #24621: NLA strips move insensitively across tracks
This was a 2-part bug:
1) "Track index" (i.e. "index of NLA track within NLA Stack") was calculated incorrectly when the transform data is created. A typo meant that this was actually "index of strip within original track" 

2) Strips were flying around madly vertically (especially for downward movements, and with extreme difficulty for upwards) as the track index was being updated incorrectly. I suspect at the time I was misreading it as trackIndex = ... vs trackIndex += ..., though it obviously looked wrong looking at it now!
2010-11-11 10:27:24 +00:00
Campbell Barton
91c1b80a5f bugfix [#23710] 'repeat last' button doesnt' work with extrude along axes other than Z 2010-11-10 07:10:23 +00:00
Campbell Barton
854b6cd327 fix for the crash reported in [#24625] Duplifaces not generated using spacebar to activate 2010-11-10 05:46:17 +00:00
Campbell Barton
20b16e4074 de-duplicate unique naming logic, was used in 7 different places, convert into a function call. 2010-11-07 08:49:07 +00:00
Campbell Barton
7569a25a4f centralize function for calculating pixel size. (no functional changes) 2010-11-05 05:26:34 +00:00
Campbell Barton
e32a81cba2 workaround/fix [#24451] Motion path not automatic recalculating + locking obj moving
Comment from source...
			/* re-calculating the frame positions means we loose our original transform if its not auto-keyed [#24451]
			 * this hack re-applies it, which is annoying, only alternatives are...
			 * - dont recalc paths.
			 * - have an object_handle_update() which gives is the new transform without touching the objects.
			 * - only recalc paths on auto-keying.
			 * - ED_objects_recalculate_paths could backup/restore transforms.
			 * - re-apply the transform which is simplest in this case. (2 lines below)
			 */

Martin, if you think this workaround is unacceptable, then automatic recalculating of paths after transform should probably be disabled since it looses data on non transform un-keyed values.
2010-11-03 23:49:56 +00:00
Campbell Barton
81fe9d2d04 workaround [#24392] 2d Image paint editor: no clone/smear/soften tools etc
the brush system matches the brush mode with the object mode, but this doesn't work for 2D image view paint.
since the poll() function doesnt have access to the context, for now just check if no paint modes are active, default to texture paint.
2010-11-03 21:23:02 +00:00
Campbell Barton
de8e066a1c bugfix [#24505] Python command bpy.ops.transform.rotate(...) does not follow axis=(...) attribute
the axis was being constantly re-initialized from the view.
2010-11-03 04:38:07 +00:00
Campbell Barton
6b767b8018 fix [#24499] Consistency Issue with LassoSelect/ExtendOption
Added extend option to lasso. 

also...
- selecting bones wasn't checking their layer of if they were hidden in a number of places.
- fixed memory leak.

small unrealed changes
- added PBONE_VISIBLE macro
- renamed functions used for paint selectoin from *_tface to paintface_*. sine they no longer have anything todo with tface's.
- removed scanfill include from BLI_blenlib.h, this is only used in very few places and quite specific.


Noticed lasso select is broken for metaballs and face mask mode but this has been the case for a while, will look into it next.
2010-11-03 01:56:02 +00:00
Campbell Barton
369a5cc29e fix for compiling with the c90 standard, support for non-static variable initializers is a c99 feature. 2010-11-02 13:12:30 +00:00
Thomas Dinges
ca3ade6ac4 Patch [#24497] Fix for [#24484] Right Ctrl for snapping by Alexander Kuznetsov. Thank you!
This fixes [#24484] Right Hand Ctrl key none functional for snapping?
2010-11-02 09:04:57 +00:00
Campbell Barton
e40b4d80c6 improvement to axis/angle gimble conversion added last commit. fixed flipping problems and enabled for pose bones. 2010-11-01 11:50:15 +00:00
Campbell Barton
08fbe28464 bugfix [#24480] Axis Angle + manipulators: bad behaviour 2010-11-01 10:29:05 +00:00
Campbell Barton
daa4feaaea bugfix [#24477] Can easily create bones with duplicate names
- fixed this error 7 different functions (deform groups, uv layers & similar).
- support for numbers over 999.
- renamed splitIDname() to BLI_split_name_num(), moved to BLI_path_utils
2010-11-01 07:19:41 +00:00
Campbell Barton
3367ef8b65 initialize structs to zero rather then using memset(). 2010-10-31 15:39:37 +00:00
Campbell Barton
1424a171a4 bugfix [#21097] Rotating multiple bones with non-local location behaves incorrectly.
- rotation and bone scaling with Durian feature 'Local Location' would fail to correctly translate the bone
because a different matrix is needed for translation and rotation.
2010-10-24 06:16:44 +00:00
Campbell Barton
c6976e7351 use explicit file paths for CMake rather then globing, This is recommended by cmake devs.
globbing vs explicit is discussed here.
http://www.cmake.org/pipermail/cmake/2008-December/025694.html

Practical implications are:
- developers need to keep CMakeLists.txt files up to date.
- Users wont get strange linking errors if they build after a file is added, since CMake detects CMakeLists.txt is modified and automatically reconfigure.
2010-10-23 04:05:55 +00:00
Campbell Barton
59d1740671 bugfix [#24331] EdgeSlide not as flawless as 2.49's
ensure minimum mouse distance for sliding edge verts else it becomes unusable.
2010-10-21 13:33:51 +00:00
Campbell Barton
26249043e6 bugfix [#24324] Wrong center for scaling Bezier Curve's handles
slight change to how transform calculates the center of each bezier handle selection.
- selecting both handles but not the knot now uses the mid point between the 2, before it used the handle.
- selecting 1 handle of a curve was still setting td->center to be the knot, now use the handles location only if its selected.
2010-10-19 14:11:46 +00:00
Campbell Barton
03d4121a55 Cancelling rotation on axis/angle object rotation didnt restore the original rotation.
also commented drotAxis/Angle since its not used yet.
2010-10-19 11:15:08 +00:00
Campbell Barton
5738f3b0b4 bugfix [#24322] Rotating objects with Axis+Angle mode fails. 2010-10-19 10:32:02 +00:00
Janne Karhu
9650667b3d [#21475] Moving a Transform strip upwards moves its animation sidewards
* F-Curve translation is now calculated from the difference of the strips original & resulting start time, instead of using the transform data directly.
2010-10-18 10:52:57 +00:00