Commit Graph

169 Commits

Author SHA1 Message Date
19ec73c908 Bugfix:
Time-Slide transform tool in the Action Editor now works as well as it did before the Action-Keys transform refactor. However, numeric input is now broken as a side-effect of this.
2008-03-08 11:08:24 +00:00
b1fcb254c4 * Clicking on constraint-buttons should now result in updates in the 3d-view without needing to move the mouse into the 3d-view first
* Added missing include
2008-03-08 03:02:36 +00:00
ff2cf42621 bugfix for [#8433] Retopo doesn't work with AutoMerge Editing.
Disable retopo while snapping, then run after. This means automerge happens first which is more useful.
2008-03-07 22:01:52 +00:00
fe3e521e44 Bugfix: auto IK + autokeyframe didn't work correct with the don't
inherit scale option yet, scale of the bone would slowly change.
Now it's still not 100% accurate, but that's unavoidable, at least
the effect is much reduced.
2008-03-04 13:33:19 +00:00
3023458aa7 Purge of compiler warnings (number 2):
* initial values I added in radialcontrol.c might need to be reviewed if they cause problems(I used 200, as it seems many tools were setting that)
* #pragma warnings are the only warnings I still get, so that means we have a clean slate again
2008-02-25 04:38:48 +00:00
0fb922ba94 -> Bevel tools and Bmesh kernel
more missed files!
2008-02-23 22:46:55 +00:00
dafd23e5c6 == Action Editor Drawing - Optimisation Attempt ==
Another attempt at further optimising Action Editor drawing without doing any drastic changes.
2008-02-17 06:00:18 +00:00
bb7690c729 == Action Editor - Bugfixes ==
* With "AfterTrans Delete Duplicates" and NLA-scaling on, IPO-curve handles were not updated after the operation.

* Sliders drew in the wrong places. Now they are drawn using the Action-Editor api stuff, so they should appear in the right places. I've also tweaked this so that sliders are now shown for ANY selected action channel's ipo-channels and constraint-channels, provided that the channel is in view.
2008-02-06 23:27:03 +00:00
2da3bd32dd Bugfix:
AfterTrans Delete Duplicates feature for Action Editor now doesn't remove duplicates if you cancelled the transform.
2008-02-04 01:30:44 +00:00
77685023ca Initial commit of cloth modifier from branch rev 13453 2008-01-29 21:01:12 +00:00
b9842ec247 == Action Editor - Overlapping Keyframes Bugfix ==
Now when moving keyframes in the Action Editor, any existing keyframes on the frames where a selected keyframe lands (after the transform) will be removed. This is to prevent stacks of keyframes which cause blips and headaches for animators (especially stressed animators with a looming deadline).

I've added an option to the Action Editor's View menu to turn this behaviour on/off (by default, it's on). This shouldn't need to be used too much, and may be removed in due course. If it stays, it'll need a better name...
2008-01-28 11:38:12 +00:00
8c59520060 == Action Editor Drawing - Optimisations (Part 2 out of ?) ==
Keyframes are now checked for whether they are visible or not before they are prepared for drawing. This should provide some improvements for large data-sets... 

In general there don't appear to be any major issues, although in a few situations, long-keyframes may end up appearing/disappearing.
2008-01-27 03:21:24 +00:00
a90c84c58e Bugfix for crazyspace correction of childof constraint on bones. 2008-01-22 20:59:45 +00:00
3d7271f059 === Transform Snap ===
Snapping Mode: Active

With this mode, the active element (at this time, object or vertice) is used as snapping target. If there is no active element in the selection, it reverts back to median mode.


Edit Mode snapping, other meshes no longer have to be selected to act as snapping point.


Fix a potential bug with snapping point from other meshes.
2008-01-20 22:43:48 +00:00
e4e66c9aa4 === Transform Snap ===
Snapping for object mode

Changes:
- Transform snap now working in object mode and not just mesh edit mode
- Shift-Tab can be used to toggle snap on/off inside transform too (no more Esc,toggle,restart)
- Object mode snap: Closest uses the bounding box corners of all selected objects, Median uses object center and Center uses transform center (same as edit mode).
- Object mode snap: all visible meshes can be used to get the snapping point (unlike edit mode snap which is limited to selected mesh: this might be adjusted to make edit mode snap use all visible too).

To Do:
- Add "Active" snap target method: use active object (or mesh element) as snap target
- Add snapping capabilities to Scale
- (Maybe) Add "Near pointer" snap target method: use selected element that is closest to mouse pointer as snap target. Active could probably accomplish that already in a less confusing manner, so I might skip this.
2008-01-13 22:20:18 +00:00
4830f12680 == AutoKeying - Tidy Up ==
This commit restores the "big red button". When Auto-Keying is enabled (record button toggled on), a menu appears beside it to choose which behaviour for auto-keying should be used. This should be more efficient for quickly turning Auto-Keying on/off.

I've also added the relevant version-patches to fix up old files so that sensible default options are in use.
2008-01-12 11:06:51 +00:00
38a33eb7da == Auto-Keyframing Refactor (Peach Request) ==
Refactored Auto-Keyframing to make it easier to add more options. There are now three "states" for auto-keying: off, add/replace keys, replace keys.

Description of modes:
1) No auto-keying is done
2) Add new keyframes or replace existing ones if possible (old behaviour)
3) Only modify existing keys, but not insert new ones. 

Internally, I've moved the auto-keying settings out of G.flag and U.uiflag and moved them into their own variables in Userdef, and provided some macros to access those easily. As a result, old auto-keying settings are currently lost.

Also, removed the manual calls to insertkey done in pose-relax. The reason auto-keying didn't work before was because the bones didn't have the BONE_TRANSFORM flag applied. Now, these are set temporarily.


Todo(s):
* Make icons for the TimeLine header menu (currently just a text menu)
* Add version-patches for old files
* Double-check code for all places that use auto-keying (i.e. PoseLib)
2008-01-10 01:36:22 +00:00
fb10ee3c29 == Auto-IK Improvement (Peach Request) ==
Auto-IK can now operate on more then 1 selected bone at once, (as long as they are not a part of the same chain).
2008-01-06 07:40:37 +00:00
1a475f0dfc == Transform feature test ==
Related to bug [#7792] ("Around Selection" user preference doesn't work for linked objects), this commit makes Linked objects be considered in Transform.

This has a couple of effects:
Linked objects are used to calculate the center of transformation and such but are skipped during the actual transformation.
Linked objects can be used as orbiting targets (see previously mentionned bug).

The offshot is that selecting a linked object and hitting G doesn't cancel immediately as it did before (this could eventually be worked around, but I don't think it's that much of a problem. Disagreeing people should express themselves).
2007-12-21 01:53:55 +00:00
42f80b3037 Bugfix for hinge bone transform for multiple selected bones: now
only transforms the children too if they are connected, otherwise
they get transformed twice.
2007-12-19 12:12:38 +00:00
84b58f8653 Particles
=========

- The render and realtime button for the particle system modifier
  and the enabled button for particles now work seperate again,
  made a bad design decision to tie them together. Now with only
  the render button and not realtime enabled it renders.
- Fix for bug #7948: particle mode crash while constraining axis.
- Fix for bug #7945: crash loading effector groups from an old file.
- Fix for bug #7942: crash for reactor particles emitting from particles.
2007-12-18 16:55:09 +00:00
1fe2c51966 == AutoIK - Fixes for MouseScroll Setting ==
* Added display of current chain-length setting to the header, when transforming with Auto-IK on

* Removed debug print accidentally left in 

* Fixed compiler warning in buttons_object.c
2007-12-16 00:59:06 +00:00
faf638238d == Auto-IK ==
-- Peach request (from wiki feature request list) --

When translating a bone using Auto-IK, you can now use the ScrollWheel on the Mouse or the Page Up/Down keys to adjust the chain length. 

Notes:
* Up decreases the length, while Down increases it.
* The previously used chain-length is stored per scene
* Currently, it might be too sensitive. Also, it would help to have some kind of indication of the current chain-length somewhere...
* The chain length specified this way determines the MAXIMUM chain length possible for all chains (if 0, then the default chain-length is used). Chains are clamped to have a chain length which does not exceed the default chain length. This restriction may be removed following further feedback...
2007-12-15 07:35:16 +00:00
114ce86167 display real fps in 3d view option
replace 1 with SELECT
edited DVar texture tooltip
2007-12-11 14:19:05 +00:00
85ee6302dd Bone Transform
==============

When pressing the g key on a bone that can't be translated, rotation
is automatically activated. However, with multiple bone selected, it
did this even if some bones can be translated. Now it only switches
to rotation if no bones can translated.
2007-12-08 15:44:47 +00:00
5c13e82140 Two transform tweaks:
* [Peach Request] AutoIK now respects axis locking (rotation locks).
- Temporary DOF-Locks are turned on for those bones that are part of an AutoIK chain while transforming. These locks get cleared after transforming.
- This works for all bones except the root bone of the chain, which doesn't seem to be able to be locked.

* Limit Location constraint can now optionally affect Translations too (i.e. NKEY panel values won't change). 
- LimitRot,LimitScale support (for their respective transforms) will be done at a later date
- This only works if the constraint is using World/Local space (the other spaces are not supported yet).
- I've added a temporary button in the LimitLoc panel to enable this option (it is disabled by default). This button will be properly assigned a place in that panel sometime.
2007-12-05 11:19:36 +00:00
32a8b4f8e6 Particles
=========

- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
  Amount. The render amount particles are now only distributed and cached
  at render time, which should make editing with child particles faster.

- Two new options for diffuse strand shading:
	- Surface Diffuse: computes the strand normal taking the normal at
	  the surface into account.
	- Blending Distance: the distance in Blender units over which to
	  blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
  grass. This is a work in progress, and has a number of known issues,
  don't report bugs to me for this feature yet.

More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
2007-12-04 13:57:28 +00:00
cfa83dbb9b == Bone Paths - Auto-Recalc Improvements ==
Added a new function which specially caters for auto-recalculation of paths after updates (such as keyframing). 

Currently, all that differs between this and pose_calculate_path, is that it only recalculates for bones with paths. Also, it only updates what it needs to (minimum frame range affected).

Warning: WIP commit (hopefully it compiles ok)
2007-12-04 11:34:26 +00:00
89205964b3 curve proportional edit mode wasn't working with draw handles disabled (own error) 2007-12-03 23:26:45 +00:00
1e32ec2000 minor update, "Draw Handles" wasnt working when disabled everywhere and replaced some magic numbers 2007-12-01 23:25:00 +00:00
092e9dcdc3 == Bone Paths - More Tweaks (Cessen requests) ==
* "Around Current Frame" option now works differently. When this option is activated, the path range calculated remains the same (PSta -> PEnd), but only PPre and PPost amount of path-points on either side of the current frame get shown. This is less clumsy to use, and looks quite neat!

* "Clear Paths" now only clears the paths of the selected bones, not all bones. The old behaviour can still be obtained by selecting all bones, but previously there was no way to only clear paths of selected bones.

* Own fix: path colours are now drawn less saturated, as they were showing up TOO strongly.


TODO:
* Fix up interface for "Around current..." option. It's quite confusing atm.
* Selective recalculation of path on certain operations could also be investigated further...
2007-12-01 11:57:16 +00:00
7da56f4a9b Particles
=========

Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:

- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.

Point Cache
===========

The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.

See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint

Documentation
=============

These new features still need good docs for the release logs, help
for this is appreciated.
2007-11-26 22:09:57 +00:00
121dab1bcd Fixes for some long standing transform bugs.
- [#6112] is this an extrusion bug?

When extruding, x-mirror was giving weird behavior since the extruded vertice could match with their non-extruded counterpart on the other side.

The solution is to disable x-mirror (with a transform context flag, like disabling PET) in that case.

- External constraint setup calls (BIF_*) didn't setup some internal structs properly.

For the user, this resulted in some transform (extrude particularly) showing a full 3d vector in the header instead of a scalar along the constraint axis (this messed up num input a bit too, you could type values in unused axis).
2007-11-26 01:52:48 +00:00
a32287ebfb replace macro's with functions for UV editmode checks, this wasn't nice code and broke building on solaris 2007-11-25 13:43:14 +00:00
b276050a08 == Auto-Keyframing - 'Only Needed' Improvements ==
The 'Only Needed' option for Auto-Keyframing now works better with a few of the different transform options. 

Rotating/Scaling using a pivot point that is not the center of the Object/Bone (3d-cursor, active), also inserts location keyframes if the location also changes. If "Only Centers" option is activated, then only location keyframes are inserted.
2007-11-21 04:08:00 +00:00
c3bbd543c7 Small feature added to new "show bone paths around cfra":
- after a insert-key (autokey mode) it updates paths.
2007-11-14 16:50:51 +00:00
234bb41906 CopyRot Constraint and Transforms:
Now, when rotating along local axes of an object/bone with a copy-rot constraint that has offset on, the results are more predicatable. However, doing so with global axes is still in CrazySpace (TM).
2007-11-10 02:53:19 +00:00
45f72036a5 Patch #7722: no 'Auto IK' for solitary (unconnected) bone
'Auto IK' is a great feature, however when solitary unconnected bone (without connected child bones) is grabbed it can't be moved because of IK. This can be really annoying. Preventing 'Auto IK' for solitary bones would improve user-experience by making mixing of FK and IK  more convenient while using 'Auto IK'.

Patch by Teppo Kansala (teppoka).
2007-11-08 08:27:21 +00:00
9cd76a6609 == "Extend" Transform Mode for Action + NLA Editors ==
Peach Request:
Now the Action and NLA editors have the "Extend" transform mode first seen in the Sequence Editor. Just use the EKEY to start transforming.

It works like Grab, except it only moves the keyframes/side of NLA-strip that was on the same side of the current-frame marker as the mouse was when transform started.
2007-11-06 11:41:09 +00:00
0ca5c98f23 Hinge Bone Transform
====================

This changes the way hinge bones are transformed when their parent bones
are also selected. Before it just disabled transform for these, now they
are rotated and scaled as well, but without influencing the transform
center, which gives behaviour as if they were regular bones.
2007-11-01 12:55:47 +00:00
fd98d38672 fix for valgrind warning - strcpy was trying to copy to/from the same value (aparently this can corrupt the value in some cases)
Fixed problem where hidden curve handles could still be transformed.
2007-10-25 20:30:18 +00:00
5ea45a1385 Mesh edit option 'AutoMerge' - access from the mesh menu, basically runs remove doubles after transform. but only merges
unselected verts into selected verts, so it wont merge verts your not editing.
2007-10-18 21:47:55 +00:00
4b6b27ea70 markers in the sequencer
- added a new redraw type - REDRAWMARKER, at the moment this draws the same windows as REDRAWANIM, but this may not always be true, and it is more explicit whats 
happening, This replaced 5 or so draw calls in quite a few places.
2007-10-17 15:27:38 +00:00
919e5baba8 IPO-Transform Bugfix:
Peach/ideasman_42 report... 

After transforming sequence IPO's, there were occasional crashes.
2007-10-17 08:23:08 +00:00
d51fbd2bf2 Bugfix for Auto-Keying: (blenderartists.org report)
When auto-keyframing AND 'around selected' were both activated, extra keyframes were being added when the view was moved. 

This was because the transform code was being used for special center calculations (using TFM_DUMMY), so auto-keying is not skipped for that mode.
2007-10-10 10:22:43 +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
0345b3b221 Improve consistency in editmesh tmp unions.
EditVert had "float *fp" while the others had "float p".
changed to "float p" and made all code using the float pointer use the already existing tmp.p (void*) instead.
2007-09-27 17:45:53 +00:00
2d429e1d54 == Armature Animation Fixes ==
This commit fixes several bugs related to animating armatures. I've also tidied up the formatting in a few files along the way, and also commented the flags for this pose->flag.

What's new/fixed:
* Undo will no longer destroy entire un-keyframed poses. Now it behaves as expected, and only reverses the most recent change.
* On some files, POSE_DO_UNLOCK somehow got set on files and never cleared. The symptom of this was a file in which you suddenly could no longer pose an armature at all without using auto-keyframing. A check to prevent this from happening again has been added (it will also fix old files too)

Notes:
- Now, all PoseChannels get tagged with BONE_UNKEYED after they have been transformed. This flag prevents IPO data being flushed over these new values, even after undo. 
- These tags only get removed on frame-changes or inserting new keyframes.
2007-09-25 05:04:34 +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
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