Commit Graph

178 Commits

Author SHA1 Message Date
088c3083a3 Bugfix:
When transforming on one axis in a 2d-editor, it no longer mentions 'global' in the header print.

Un-related note: the mmb constraint selection in 2d-editors is currently quite wonky, as the current code for this only suits the 3d-view.
2007-10-09 07:49:54 +00:00
f9535b4eb5 Bugfix #7482:
Trackball transform did not work correctly for "individual centers" pivot mode in face-select mode. It was missing a case that would allow this happen.
2007-10-09 06:21:26 +00:00
3a6494c4b8 Bugfix #7489:
Warp Tool (Shift-W) suffered from 'division-by-zero' (TM) problems when there was only one element (selected object or selected vertex) to transform.
2007-10-09 05:54:31 +00:00
d6c4abb56f Removed a variable that wasn't really needed
(Note: gcc doesn't give any more compile warnings about the new code here, but other compilers may)
2007-10-07 09:21:28 +00:00
c60cc6ac85 == Anim Editor Transform ==
Restoring the 'force redraw' functionality, which is only active when the 'lock' icon on the header of the respective editor is turned on.
2007-10-07 08:44:14 +00:00
d5fe701370 == Bone Size Transform Tool ==
Fixed a few bugs with the Alt-S transform tool when the armature drawtype is set to B-Bone:

* Transform constraints seem to have been turned off for this sometime in the past few weeks. Re-enabled this.
* Numeric input for this tool was not working correctly. You could only set the value of the x-axis width only. Also, giblish was being displayed for the other channels
* The char array used in the BoneSize function was smaller than the one used in the headerBoneSize (new function added for this transform mode instead of reusing some old one).

Also, I've added some menu entries for both Alt-S tools in editmode, which did not exist in the past. How were the users supposed to figure this out???
2007-10-02 10:45:22 +00:00
27b239f89c Bone/Envelope Size Bugfix:
When in envelope draw-mode for an armature, it would not be possible to change the envelope distance of a bone using Alt-S if the distance was 0.
2007-10-02 06:30:33 +00:00
387d05aaef IPO Editor Transform - More bugfixes:
* Rotation/Scaling now use the correct center-point. The helpline is now drawn correctly too for this 

* For Rotation in UV/IPO editors, constraints are now disabled as they didn't make sense
2007-10-01 08:10:08 +00:00
6833fa4148 == IPO Editor Transform Refactor ==
As with the Action and NLA editors, I've refactored the transform code for the IPO editor to get rid of the special (and clunky) transform loop that had been created. The approach this time is closer to the one taken for the UV/Image editor.

What's New/Will-be-possible-in-the-future:
* Numeric input now works for the IPO editor
* Proportional Edit support for the IPO editor will eventually be added. 
* Rotation (hopefully), once some hotkeys have been remapped

Known Problems:
* If a keyframe moves past neighbouring keyframes and the transform gets cancelled, it doesn't get restored correctly. This problem is quite icky to resolve (I've got a large hack for this, but that currently segfaults randomly).
* When scaling, the dashed-line (helpline) is drawn from the wrong starting co-ordinates. This does not affect the actual scaling though
* Trying to scale BezTriples with autohandles still doesn't work if either of the handles haven't been transformed yet. This behaviour was already present prior to this commit.
2007-09-30 11:43:16 +00:00
1ea472a903 Bugfix:
For transform in UV/Image editor (and soon, the IPO editor), transformations on 'local' axes (i.e. GXX, or GYY) won't work. Therefore, I've disabled this for those cases.

Note: A small part of the IPO editor transform-code port is in this commit too.
2007-09-29 03:52:25 +00:00
e2c82e15b6 This commit might fix some compile errors reported by jms on MSVC 8.0.
error C2036 : http://msdn2.microsoft.com/en-us/library/1kay26wa(vs.71).aspx
2007-09-25 00:05:53 +00:00
d888a6e0da fix typo that broke compilation 2007-09-24 12:25:13 +00:00
4809597775 == NLA Editor ==
Added some features to the NLA Editor that had previously only been added for the Action Editor.

* It is now possible to choose whether timing is displayed in Frames or Seconds like in many of the other Animation Editors. Use Ctrl-T or the View menu to change this.

* Autosnap behaviour from Action Editor is now also available for the NLA Editor. It was partially done in the previous commit (for transform). Use the new combo-box on the NLA Editor header (like the one on the Action Editor header) to set this.


* editaction.c: silenced a compiler warning from the previous commit related to a function which is no longer needed.
2007-09-24 12:14:36 +00:00
c4860afba3 == Action and NLA Editor Transform ==
I've refactored the Action and NLA Editor Transform tools to use the Transform System instead of setting up their own transform loops. This should have happened ages ago, but no-one got around to doing so. 

* There are still a few bugs left to iron out of a few features, but on the whole it should work as well as it used to. These are: the values which get displayed when working with NLA-scaled actions may not all be correct yet; and the Time-Slide tool in the Action Editor is currently kindof broken.

* One of the main benefits of this work, is that it is now possible to use Numeric Input during Transforms.

* Also, a bug that meant that it was not possible to negatively scale keyframes in the Action Editor has been resolved.
2007-09-24 11:29:25 +00:00
672a66905b Patch/Bugfix #7334 by 'gsr b3d:
Some more compiler warning fixes. Some of these seem to be specific to GCC 4.1
2007-09-17 06:11:06 +00:00
4e2143f639 This commit fixes up a bunch of svn properties to hopefully make things a little nicer for everyone.
Patch provied by gsrb3d

bug tracker #7061

Kent
2007-08-28 10:07:08 +00:00
9e32291a75 Small Transform code cleanup and addins for future features.
- Removing evil InitTransModeFlags (I would always forget to update that when adding new stuff). It's properly done in the per transform init now.
- Add toggleable mode for Shear (with MMB) for horizontal or vertical shear. Toggle shear mode also changes the input mode from vertical to horizontal and vice versa (it's intuitiver that way). (This was suggested in a really old patch but never implemented because I disliked adding transform specific handling in the main event switch).
- Add custom event handlers per transform (currently only used for Shear)
- Add custom data pointer and freeing flag (only (a)bused by Shear).

NOTE to Levi Schooley: Some stuff in there might be useful for you.
2007-08-09 01:07:27 +00:00
174a914b47 Partial fix for #6875 Normal aligned transform-constraining not working for bone scaling in pose mode
Bone matrix wasn't being applied properly.

There's still a bug left with the translation part of the resize but that is a less frequent situation, so I'll commit this while I figure out a fix.
2007-07-23 01:34:07 +00:00
afdd54fa37 moved source and text to american spelling
* colour -> color
* centre -> center
* normalise -> normalize
* modelling -> modeling
2007-04-04 13:18:41 +00:00
d193ce012a Followup to Bugfix #6435 by Ton.
Added sensible way in calculateTransformCenter to report an error (including empty selection).
2007-03-24 13:38:50 +00:00
5297123de1 === View Orbit Around Active ===
Changed to Orbit around Selection, using transform code to calculate the selection center (using Median center method).
2007-03-18 18:21:24 +00:00
7bf2f72be4 === Transform ===
[ #5833 ] 2.43 RC2: Incorrect Bone rotation when 3D cursor set as Pivot

There's really ugly stuff going on with pose mode rotation in transform which I'll have to fix later, in the mean time, this commit fixes the problem (which happens when you rotate bones in post mode around an arbitrary point) and includes some juicy comments to further document the actual architectural problem.
2007-02-07 23:28:33 +00:00
e5d96c2c22 === Transform ===
Align mode (rotation that only translates the target) didn't work for elements using quats (Pose). Fixed.
2007-02-05 18:02:57 +00:00
4754e37539 === Transform ===
Reverting Aligorith's fix for bug Bugfix #5833 (the fix was incorrect, see bug report for details).

That means the translation part when rotating "free" bones in pose mode is still broken.
2007-02-05 18:00:03 +00:00
4d5bd6872b Bugfix #5833:
When rotating bones around the 3d-cursor in posemode with a rotated
armature, rotation was around strange points other than the cursor.

This bug has been around for quite a few releases now. Somehow, the
maths used to convert the world/global space locations to local locations
only worked on things in editmode, but not bones.
2007-02-05 01:28:14 +00:00
5ab2f9f51d === Transform ===
Make manipulator compatible with snapping. At first, I thought this would have been a bad idea, but after talking to some people, it seem more confusing than not to have it act differently, so I'm bringing it in line.
2007-01-23 15:39:35 +00:00
797565916d === Transform Bug Fix ===
[ #5458 ] Some transforms are not accurate while pressing shift key

Shrink/Fatten & Push/Pull: Shift slowed the transformation but didn't add precision. (integer division. fixed by applying the same solution used in Grab)

Warp: Shift was ignored. Fixed by changing warp to use the same input method has To Sphere. That is, the 3D view acts like a big horizontal slider: Left -> No effect, Right -> Full effect. This is somewhat of a "big" change from how warp used to work but this is more predictable and is not limited by the original position of the mouse pointer. (of course, this works with Shift correctly too).
2007-01-16 18:55:15 +00:00
c063e01f06 === Bug Fix ===
Fix for bug [ #5522 ] inaccurate rotation

Entering very high/low values using numeric input in a rotation (+/- 360000 and more/less) resulted in incorrect rotations. Fixed by clamping the actual rotation between -180 and 180 before converting to radians (just to be clear, the clamping already happened and is inevitable, now, it just happens earlier).
2006-12-28 03:11:21 +00:00
1ad1522d10 === Transform Snap ===
==== Rotation Snap ====

Snap is no longer limited to Translation, it works in Rotation too.

There's some bugs left with rotation snap when using constraints, I'll be ironing that next.

==== Bug Fixes ====

* Fix manipulators to always use Grid.
* Fix initialization bug (took two transform call to do a correct snap init when changing between Grid and Snap)
2006-12-23 00:52:34 +00:00
88ef092876 === Transform Snap ===
(Implementing Matt's idea)

Grid and Snap are now exclusively controlled by the Control key (pun intented).

You can switch to Snap by selecting the snap option in the Transform menu (this option is only available in edit mode on a mesh. this option is per 3D view) (NOTE: There is currently no hotkey for that, anyone should feel free to add one).

When Snap is selected, holding down Ctrl during translations (grab) snaps to vertex.

All other situations which have no snapping code yet defaults to Grid.
2006-12-20 19:47:12 +00:00
f4a03182fb === Transform Snap ===
Draw a circle around the snapping point for visual aid.

Different snapping target method, switchable in the 3d view header menu in the Transform menu.

* Closest: Snaps the closest vertex to the point
* Median: Snaps the median of the selection to the point
* Center: Snaps the transform center to the point (this is different from median because you can use Cursor/Boundbox as center)

Fix a bug with constraints/snap handling.
2006-12-19 22:25:07 +00:00
f72a56bdfc === Transform ===
Modified version of patch #5281 by Joshua Leung.

It's a two part patch:

	Add a Roll button in the transform properties floating panel with bones selected in edit mode

	Add a Roll transform (Ctrl-R) that can be used to modify the roll of selected bones in edit mode

The transformation modifies the roll of all selected bones incrementally (like a rotation does to the bones' rotation) [that is the part that differs from the patch. The patch would set the same roll value to all bones]


Also, this commit includes some shuffling around of the functions, to keep the previously logical order. :)
2006-12-03 19:54:27 +00:00
953cd28b67 Klocwork pointer sanity checks in transform. 2006-12-03 18:30:34 +00:00
3bbf7624ec Plumiferos bugreport:
After using Manipulator on poses, the undopush was called too early,
resulting in a LOCK flag to be saved in Armature.
Effect was that after undo, the pose didn't show actions.
2006-11-27 19:54:16 +00:00
f0dcd2db75 == Transform ==
Embryon functionnality for snapping.

- Only snaps to grid on translations (grab)
- Transform constraints are supported but header display is wrong.
- Can be turned on/off in the Object/Mesh header menu under Transform Properties (tentative spot, will have to integrate better and in other object type menus too)
- Can be turned on/off during transform with ` (Back Quote, also tentative)

This is, of course, very much Work in Progress.

This implements part of the structural ideas for the transform cleanup I've been juggling around with.
2006-10-25 23:57:00 +00:00
bdb12f23cf Bugfix #4843 revisited
This is a new incarnation of compatible_eul(), a function called:

void Mat3ToCompatibleEul(float mat[][3], float *eul, float *oldrot)

It uses the two euler extraction methods as added by Brecht a while ago,
and checks for compatibility each, and then picks the best of the two
based on minimal difference with 'oldrot'.

Gives for rotation key inserting a much higher hitrate for OK eulers.
2006-08-13 10:03:07 +00:00
d3028ec70d * Shrink/Fatten for bevelled curves
This is a much faster and easier way to give a bevelled curve a taper, without
using taper curves. Each point on a curve now has a 'radius' value that you can
shrink and fatten using Alt S, which will influence the taper when the curve is
bevelled (either with a bevob, or with front/back turned off and a bevel dept
set). Alt S shrinks and fattens the selected points in an interactive transform,
and you can set an absolute radius for selected points with 'Set Radius' in the
curve specials menu.

See demo: http://mke3.net/blender/etc/curve_shrinkfatten-h264.mov

This can be a quick way to create revolved surfaces (eg.
http://mke3.net/blender/etc/wineglass-h264.mov ) and it would be very
interesting to use this radius value in other tools, such as a 'freehand curve'
tool that would let you draw a curve freehand, with the radius affected by pen
pressure, or even using the radius at each point to control curve guides for
particles more precisely, rather than the continous maxdist.
2006-08-13 07:37:51 +00:00
c2edcd4879 Siggraph show commit!
- pending commit for OSX intel systems, with intel graphics. These now call
  an extra swapbuffers after glFlush(). Code is ifdeffed, and doesnt affect
  other systems.

- show-off commit: option to have transparent nodes over the composite
  result. Only draws Image for active Viewer Node now, and image doesnt
  translate nor zoom (which isnt bad though).
  Set in themes the alpha color of "node backdrop" to make nodes
  transparent.
2006-07-31 19:23:42 +00:00
Ken Hughes
cf266ea2af Bugfix #4627: headerResize() was overflowing a string parameter and
destroying part of the transform matrix.  Also remove a debigging printf.
2006-07-08 14:24:57 +00:00
Ken Hughes
bdafdaa171 Bugfix #4590: typing in large translation values caused string buffer overflow. 2006-07-04 16:53:11 +00:00
Chris Want
ed00ef33c4 Changed some references to 'size' to now refer to 'scale'. If anybody
sees a reference to size, as it pertains to a 3D object, please let
me know.
2006-06-15 04:13:26 +00:00
b58998729b Last minute patch from Chris Want
Nkey "Properties Panel" now has Dimension ("Dim") buttons too.
This reads from the actual bounding box value to see the size. Note that
dimensions for animated & deformed objects will change per frame.

(Cleaned up buttons layout for patch, and added support for Curve, Text and
Surface objects)
2006-06-12 20:01:18 +00:00
2c7712dd84 Fix #4245
Old annoyance in Blender; zooming in very far makes scaling/rotate
around invisible pivot going bezerk. The easy fix was just enforcing
floats in integer math.
2006-05-29 13:01:51 +00:00
ee2baaf3e3 === Transform ===
Bug #3657

Texture Space transform
* grab/size: did not support local constraints properly
* size: constraint support did not respect object orientation
2006-05-14 17:02:56 +00:00
07b88496e0 === Transform Display ===
Based on a patch by Matthias Derer, this adds the distance moved to a translation (grab) transform
(both 3D and 2D, although the 2D transform displays the normalised distance only).
2006-03-26 22:35:03 +00:00
2db9b8fe7f Quick feature: "Around Individual Centers" now works in editmode mesh, but
only in Face-Select mode. It then uses for rotate and scaling the face
center itself as reference.

Code uses a loop-in-loop to find the face that belongs to the vertex...
means it will be slow with operations on 10k or more faces. Acceptable
for now, will make it nicer later. :)
2006-03-08 11:07:49 +00:00
94332c522e Bug #2839: Shift key not working in Shear, Push-Pull and shrink-Fatten
- I changed the input method for shear quite a bit. It used to be constant
  regardless of zooming, so it was quite limiting in the amount of shear you
  could do. However, I'm not sure if the current method is quite well
  adjusted, if you think it works too fast, please drop me a line.
  It's basicly the same method as Shrink-Fatten / Push-Pull except on an
  horizontal basis. (since shear is an horizontal motion and the two others
  are more like pulling towards/pushing away from you in regards to the center)
- Factored out the input methods in preparation for later code <evil>.
2006-02-12 21:09:18 +00:00
a96bf9283a Move bug fix hack so it acts only when it needs too.
It was showing "global axis" even when using MMB to access user defined orientation (with Ctrl).
2005-12-19 16:32:18 +00:00
5884082ef6 #3581
Using the MMB constraint chooser in Transform, accidentally printed the
setting from the orientation menu (Local, View, Normal).
Martin: not sure if this a solid fix... the print now looks fine, but the
code isn't nicer this way. :) (just a one liner change though!).
2005-12-19 10:49:37 +00:00
ddba16a752 Bugfix #3422
When using 'protection flags' for XYZ rotations, inserting keys in
Poses resulted in wrong interpolations (doing -270 degrees instead of
+90 for example). This caused by converting quaternion to euler and
back...
Solved it by correcting the quaternion in the end for the rotation
sign of the original quaternion.

NOTE: Pose animators should be aware that inserting rotations keys of
180 degrees or larger will still make the key rotate along the shortest
path.
2005-11-21 10:45:58 +00:00