Commit Graph

23 Commits

Author SHA1 Message Date
5b24b2d31e Two little bugs showing up in workshop;
- update_for_new_frame() (on frame advance, alt+a) crashed when no 3d view
  was opened ever (NULL pointer)
- using proportional mode on Curve editing wrote beyond end of a malloced
  block. Just a minus one needed here...
2005-07-08 06:55:10 +00:00
6a2cf42b7d Well, it's better if the spelling is corrected everywhere the variable is used... (why must I make that kind of error?!) 2005-07-06 08:14:13 +00:00
167110c3aa After much debate on IRC, it was decided to spell "cancelled" properly... 2005-07-06 08:09:51 +00:00
f0ae48dfe5 Pressing ESC on armature posemode now restores position correctly again. 2005-07-06 07:31:43 +00:00
a4e959b369 Merging error... rotating bones in pose-mode, with an action inserted
accidentally flushed recalc of Pose. So it popped back to the action state,
preventing editing new keypositions.
2005-07-04 17:41:58 +00:00
71f3e88293 Fixing pose mode transform.
With new system, very easy to do in the end (figuring it out was less so).
	No need to go down parent chains or anything of the sort, just apply parent pose and we're all set.


Ton's commit reverted back before my include files cleanup in transform, recleaning.

Also, as mentionned by bjornmose, declaration after instruction choked MSVC. Fixed.
2005-07-04 05:16:54 +00:00
28a1e8277b Result of 2 weeks of quiet coding work in Greece :)
Aim was to get a total refresh of the animation system. This
is needed because;
- we need to upgrade it with 21st century features
- current code is spaghetti/hack combo, and hides good design
- it should become lag-free with using dependency graphs

A full log, with complete code API/structure/design explanation
will follow, that's a load of work... so here below the list with
hot changes;

- The entire object update system (matrices, geometry) is now
  centralized. Calls to where_is_object and makeDispList are
  forbidden, instead we tag objects 'changed' and let the
  depgraph code sort it out
- Removed all old "Ika" code
- Depgraph is aware of all relationships, including meta balls,
  constraints, bevelcurve, and so on.
- Made depgraph aware of relation types and layers, to do smart
  flushing of 'changed' events. Nothing gets calculated too often!
- Transform uses depgraph to detect changes
- On frame-advance, depgraph flushes animated changes

Armatures;

Almost all armature related code has been fully built from scratch.
It now reveils the original design much better, with a very clean
implementation, lag free without even calculating each Bone more than
once. Result is quite a speedup yes!

Important to note is;

1) Armature is data containing the 'rest position'
2) Pose is the changes of rest position, and always on object level.
   That way more Objects can use same Pose. Also constraints are in Pose
3) Actions only contain the Ipos to change values in Poses.

- Bones draw unrotated now
- Drawing bones speedup enormously (10-20 times)
- Bone selecting in EditMode, selection state is saved for PoseMode,
  and vice-versa
- Undo in editmode
- Bone renaming does vertexgroups, constraints, posechannels, actions,
  for all users of Armature in entire file
- Added Bone renaming in NKey panel
- Nkey PoseMode shows eulers now
- EditMode and PoseMode now have 'active' bone too (last clicked)
- Parenting in EditMode' CTRL+P, ALT+P, with nice options!
- Pose is added in Outliner now, with showing that constraints are in
  the Pose, not Armature
- Disconnected IK solving from constraints. It's a separate phase now,
  on top of the full Pose calculations
- Pose itself has a dependency graph too, so evaluation order is lag free.

TODO NOW;

- Rotating in Posemode has incorrect inverse transform (Martin will fix)
- Python Bone/Armature/Pose API disabled... needs full recode too
  (wait for my doc!)
- Game engine will need upgrade too
- Depgraph code needs revision, cleanup, can be much faster!
  (But, compliments for Jean-Luc, it works like a charm!)
- IK changed, it now doesnt use previous position to advance to next
  position anymore. That system looks nice (no flips) but is not well
  suited for NLA and background render.

TODO LATER;

We now can do loadsa new nifty features as well; like:

- Kill PoseMode (can be option for armatures itself)
- Make B-Bones (Bezier, Bspline, like for spines)
- Move all silly button level edit to 3d window (like CTRL+I = add
  IK)
- Much better & informative drawing
- Fix action/nla editors
- Put all ipos in Actions (object, mesh key, lamp color)
- Add hooks
- Null bones
- Much more advanced constraints...


Bugfixes;

- OGL render (view3d header) had wrong first frame on anim render
- Ipo 'recording' mode had wrong playback speed
- Vertex-key mode now sticks to show 'active key', until frame change

-Ton-
2005-07-03 17:35:38 +00:00
Nathan Letwory
c91355f3b6 Rollback of http://projects.blender.org/pipermail/bf-blender-cvs/2005-June/003769.html (which I in my commithappyness did before properly checking) 2005-06-11 16:30:36 +00:00
ac30fd8b3e Fixed crash on transform_conversion with PET and hidden CV in a curve.
It now deals correctly with hidden CVs in Connected mode (creates a "segment" on each side of the hidden CV).
2005-06-11 02:01:26 +00:00
Nathan Letwory
07fb86d355 * fix for bug #2733 2005-06-10 13:55:09 +00:00
bb4710d2c9 Fixing bug #2707 : Local Axis constraints in transform working incorrectly on objects that have object constraints.
http://projects.blender.org/tracker/index.php?func=detail&aid=2707&group_id=9&atid=125

Problem was as suspected (axismtx defined after clearing constraints), so very easy to fix.
2005-06-06 12:23:47 +00:00
1d7a8cf86f Two more fixes in Transform:
- Ipokeys didnt have 'selected' flag, so were not included in center
  calculus
- Multiple keys transform didn't apply this center even...

ALso took extra work time to add credits in splash. Frédéric Van der Essen!
2005-05-29 23:21:56 +00:00
f26e4ca150 While making TransData, with mixed selection of objects and ipokeys, the
transdata pointers were increased wrong, creating empty gaps (NULL)
2005-05-29 22:39:49 +00:00
b1bd69c6f1 Changed 2 mallocs for object transdata to calloc. TransData->flag was
undefined... and somewhere else in code it thought there was a quaternion.

No idea why these mallocs... just asking for troubles!
2005-05-29 22:12:12 +00:00
505ab0bf78 Bug fix #2617
Using ipokeys with rotate crashed... caused by bugfix in ESC on ipokeys I
did before. Got confused by non-initialized (malloc) transdata...
2005-05-24 10:03:53 +00:00
8077caa96e Bug fix #2528
Transform on "ipo keys" gave crash on ESC, due to non initialized pointer.
(Martin; that idea to not calloc new data... grumble!)
Note; that's another Margarita for Randall, at the Figueroa pool. :)
2005-05-08 20:44:59 +00:00
b33536cdaa Two little issues for Timeline window;
- Using Arrowkeys to change frames didn't give proper redraw
- Option "Record" now tied to the User-preset "Auto key insert". It is
  no user preset anymore even, I thought to leave a button in the User-
  presets for the time being though...
2005-05-05 18:31:39 +00:00
3b2c30dae4 Another big cleanup, thanks to transform recode. Could do this stage
because Martin recoded the Mirror().

- removed old globals like 'tottrans' or 'centre' or 'centroid' as used
  by old transform
- removed a lot of code from editobject.c
- moved all transform related code to transform_conversions.c
  (Note for Martin; sorry that's a mess... it now has all the weird
   functions for finding posemode dependencies... thats for the depgraph
   phase to remove)
2005-05-04 12:53:35 +00:00
c1a7b8b7a1 Local axis constraints for pose mode. Added
Camera rotation fix (was off centered because it used persinv instead of viewinv. Now rotation center is always center screen in camera mode. (Still need to fix the helpline not showing)
Numinput constraint function was no good, didn't check if a constraint was even on... Fixed.
Rotation was missing constraint text in header print. Fixed.
2005-04-22 01:14:15 +00:00
425f295604 Patch submitted by Jorge Bernal (lordloki) and Jonathan Merritt.
This will add Minneart diffuse and WardIso specular to our shader menu.
Minneart gives nice control over darkness/brightness areas, the wardIso
over 'plastic' style sharp or fuzzy specular.

Webpage is being made with nice samples. Will be in release log.

Jorge: one change is in the do_versions, you inserted it on wrong location.
2005-04-17 17:43:07 +00:00
78939c0cc0 - It is possible to scale radius of MetaElem again.
- It is possible to change dx, dy and dz params in 3Dview with manipulators
    or with some shortcuts (S-X, S-Y, S-Z).
 - User can scale stiffness when green circle is selected.
 - MetaElem is selected with RMB click at green or red circle, then user can
    grab or rotate with MetaElem as usual.

 - Screenshot:
    http://e-learning.vslib.cz/~hnidek/pics/scale_stiffness.jpg

 - Captured video:
    http://e-learning.vslib.cz/~hnidek/captured-videos/scale_stiffness.avi
2005-04-11 19:31:05 +00:00
bb9548fd16 Silly pointer set on wrong place in code, caused Bones transform in
PoseMode not to work on branched armatures with multiple selected.

Thanks Richie for the test file!
2005-04-11 15:14:07 +00:00
4ea8947ea7 Merged all the internal transform includes into transform.h and moves it to /src to /include.
Split the conversion fonctions and sorting functions from transform.c into transform_conversions.c
Update MSVC 6.0 projectiles and SConscript accordingly.
Editview still included transform.h, replaced that for BIF_transform.h, the external include.
2005-04-10 18:33:19 +00:00