Commit Graph

4560 Commits

Author SHA1 Message Date
74791c9ed5 Bugfix #3355
calling "Apply deform" from toolbox, with no active object, crashed.
2005-11-05 15:45:26 +00:00
629d954ef3 Fix for #3316: do not convert slashes in the relname in BLI_make_file_string
Also fixed signature to const char* to indicate which parameters can be changed
to make it a bit safer, because constant strings are passed into this function
and changing them caused a crash.
2005-11-05 13:09:43 +00:00
1d1fd7cd70 - small optimalisation of Matt's code, Markers are copied in one loop,
Matt, admire function BLI_addhead() ;-)
2005-11-04 21:45:44 +00:00
Ken Hughes
a602dcfe5f - JMS's patch which adds GetParticlesLoc() method. I've modified the code
so that it resides in the Effects module instead, with the intent of
  soon merging Effect.c and Particle.c into a single file (and somedat
  removing references to the Effects.Particle submodule)
2005-11-04 20:34:38 +00:00
4b598feab2 Combined bugreport, bugfix and patch from Vidar Madsen.
He noted that static particles don't work with force fields yet, and
added a fix for it. This however didn't work for the depgraph yet, and
didn't correct the static particle's local space to world coordinates for
the fields. Nevertheless, while reviewing this small patch I thought it
would be fun to add now.

So: static particles now update realtime on forcefield relations. Warning
for potential slowdowns! Also note that work on the real particle patch
still has to be done... something I really will do, but in time. To get
particles correctly integrated in the animation system, quite some new
development has to be done still.
2005-11-04 12:38:46 +00:00
1f2a7efd70 Small thing, just filling a gap that we really need here -
Added duplication of markers in the timeline with Shift D
(in the frame menu too)
2005-11-04 11:23:22 +00:00
8a0befc3fd Bug #3338
While using automatic IK, a pending redraw event could draw the buttons
window again, reveiling the temporal IK buttons. Using them, after grab,
caused a crash.

Also: noticed that the undo push for transform is called too early, so it
saves the state before 'special_after_trans' was called.
Also: in editmode armature, changed shift+A "Bones" in "Bone".
2005-11-03 21:13:20 +00:00
2439c1df7c Bug #3298
Unified render does not return a zbuffer, but when gauss render was used
in combination with motion-blur, a buffer was accidentally created, one
pixel to small even!
2005-11-03 20:35:49 +00:00
3f8f0f7aac Silly error string correction 2005-11-03 20:22:29 +00:00
93b2c85284 Bugfix #3288
If a Mesh was "Auto Smooth", it was drawing as smooth in editmode, and
not as smooth in Object mode. Should be consistant.
Better even would be draw autosmooth info, but that's derivedmesh magic now!
2005-11-03 18:58:35 +00:00
39453ccd90 Bugfix #3304
Actually nice feature too: when using Scene "Set" option, that scene draws
its transparent and x-ray stuff independent of the 'foreground' scene.
That means that x-ray in a set will be always over the set objects, but
stays behind the current scene.

For transparent it works the same though... meaning that solid objects from
the foreground scene will always draw over transparent from the "Set".

Note; this only is true for the 3d window, or the OpenGL render, not for
actual rendering of course.
2005-11-03 18:43:05 +00:00
1dc42b596c Fix #3330
Bone constraint to a path (follow) did not work yet...
2005-11-03 17:08:57 +00:00
ef19dfbbb2 Fixed two small glitches in Mesh ripping (Vkey):
- loose edges got accidentally removed
- when a rip results in loose vertices, they now get removed too.
2005-11-03 15:57:31 +00:00
6c9840f372 Sticks bones, in solid view mode, didn't draw selected not in posemode...
caused by code shuffling for new IK options and ghosting draw.
2005-11-03 14:51:23 +00:00
b5f212ae53 - arrow used for visualisation of joining of screen areas is drawn on the
other side now, I tried to fix bug submited by Nathan, can you test it?
2005-11-03 10:11:46 +00:00
Ken Hughes
eafdcdd4ac -- Bugfix #3335: mesh.remDouble() accidentally performed a mesh fill also
(missing break statement): thanks, Cam!
2005-11-03 00:58:41 +00:00
Ken Hughes
e01e5a4cbf -- Bugfix 3333: BPy method ob.getEuler() was returning PyObject which wrapped
stack-allocated data (thanks, pontus).
2005-11-02 23:28:36 +00:00
3c5b54ba6b disabled my previous fix, because of a reported crash when constant strings are passed so testbuilds can go on. Will provide propper fix later 2005-11-02 07:16:00 +00:00
48dbe3a5fc #3308
Autokey didn't work for Object actions yet.
2005-11-01 22:48:07 +00:00
893cf26e93 #3315
CTRL+click in weightpaint on subsurf crashed.
Subsurf weightpaint is not finished yet... commit now only code to prevent
crashing.
2005-11-01 22:15:54 +00:00
3fd4f74f30 Fix #3266
Needed better DAG flush for 'do center', when linked duplis involved.
2005-11-01 21:37:25 +00:00
d8f5257001 * made 'innervert' the default subdivide type, for ui backwards
compatibility (knife tool functioning the same way etc.)
2005-11-01 21:28:53 +00:00
0883f12a6b The "Pose unlock" flag accidentally could get saved in file, causing
grabbing bones not to work. Only happened sofar in 1 file... but still
annoying!
2005-11-01 20:58:37 +00:00
14e24d1f75 * Alpha 2 splash, by basse and andy! 2005-11-01 20:55:44 +00:00
6eb47e98c3 Fix for item #3316 : make sure that BLI_make_file_string converts all
slashes in the filenames to the system preferred direction.
Leaving unix slashes caused the error in the Python module
blender.Get('filename')
2005-11-01 20:25:23 +00:00
68ae6aa776 Bugfix to allow Grabbing of bones with a parent, but not connected
(was broken after targetless IK commit).
2005-11-01 19:32:54 +00:00
0b739ab8e8 Fix: the 'draw name in camera view' now draws the view's active
camera's name rather than the scene's, so it's not misleading
when you have unlocked 3D views. (#3324)
2005-11-01 18:39:54 +00:00
8906e4ec98 Three new features:
1) Stride Bone

For walkcycles, you could already set an NLA strip to cycle over a path
based on a preset distance value. This cycling happens based on a linear
interpolation, with constant speed.
Not all cycles have a constant speed however, like hopping or jumping.
To ensure a perfect slipping-less foot contact, you now can set a Bone
in an Armature to define the stride. This "Stride Bone" then becomes a
sort-of ruler, a conveyor belt, on which the character walks. When using
the NLA "Use Path" option, it then tries to keep the Stride Bone entirely
motionless on the path, by cancelling out its motion (for the entire
Armature). This means that the animation keys for a Stride Bone have to be
exactly negative of the desired path. Only, at choice, the X,Y or Z Ipo
curve is used for this stride.

Examples:

http://www.blender.org/bf/0001_0040.avi
The top armature shows the actual Action, the bottom armature has been
parented to a Path, using the Stride Bone feature.

http://www.blender.org/bf/0001_0080.avi
Here the Stride Bone has a number of children, creating a ruler to be
used as reference while animating.

Test .blend:
http://www.blender.org/bf/motionblender1.blend

Notes:
- Note that action keys for Bones work local, based on the Bone's
  orientation as set in EditMode. Therefore, an Y translation always
  goes in the Bone's direction.
- To be able to get a "solvable" stride, the animation curve has
  to be inverse evaluated, using a Newton Raphson root solver. That
  means you can only create stride curves that keep moving forward, and
  cannot return halfway.
- Set the Stride Bone in the Editing Buttons, Bone Panel. You can set
  change the name or set the axis in the NLA Window, Strip Properties Panel.
- Files in this commit will move to the blender.org release section.

2) Armature Ghosting

In EditButtons, Armature Panel, you can set an armature to draw ghosts.
The number value denotes the amount of frames that have to be drawn extra
(for the active action!) around the current frame.
Ghosts only evaluate its own Pose, executing it's Actions, Constraints and
IK. No external dependencies are re-evaluated for it.

3) NLA/Action time control

If you click in the NLA window on the action (linked to Object), it makes
sure the Timing as drawn in the Action editor is not corrected for NLA.
If you also set the Object to "Action", this timing will be executed on the
Object as well (not NLA time).
(It's a bit confusing... will make a good doc & maybe review UI!)
2005-11-01 12:44:30 +00:00
Alexander Ewering
ca85fc5c8a Found a potential crash where NULL could be passed to vfont_get_data(),
here's the fix. Maybe it fixes Andy's file :)
2005-10-31 16:46:22 +00:00
Alexander Ewering
4bf37a3ba5 Comment out debug printf 2005-10-31 16:27:47 +00:00
15707394d1 Adding Key.ipo as access to ipo data both get and set 2005-10-31 15:53:21 +00:00
Ken Hughes
54659d4a7d -- further clean-up of mesh error handling for update and PutRaw(); add
specific messages for different types of exception errors
2005-10-31 15:08:01 +00:00
b6b387b6b8 Yet another IK offset fix, pointed out by Ton. Offset should be passed
in local bone space.
2005-10-31 15:01:37 +00:00
Ken Hughes
7040e6c157 -- patch submitted by Johnny Matthews which lets a user get an Ipo curve by
its adrcode in addition to its string name (shape keys don't have fixed
   or unique string names, and they are stored in the key, not the Ipo).
   This will make it easier to later use constants from dictionaries to
   access a curve.
2005-10-31 14:05:47 +00:00
f2ff00b97f * Gave the Obdata to Center / Center New / Center Cursor
tools a nice little home in the 3D View header/toolbox
 transform menu. Death to button-only actions!
2005-10-31 13:39:05 +00:00
42e05d0977 Fix: Scaling in Action Window didn't correct for NLA mapped time 2005-10-31 10:53:47 +00:00
6455388885 Fix: Using Hinge Bones in a chain with "Target-less IK" didn't apply the
correct rotations.
2005-10-31 10:10:01 +00:00
53052c9924 iNew: TimeSlide in Action Window
Usage: press Tkey, and you can proportionally squeeze or stretch the
selected keys, with current mouse position as reference. Only works with
more than 3 keys selected horizontally.

I've remapped the old Tkey (ipo type) to SHIFT+T... might be temporal, I
have an idea for a cool 2D manipulator system that makes it much friendlier
to grab/scale/slide keys all in once.

Also: fix for HOME key in action editor (didn't do Pin), and removed gcc
warnings from jiri's commit in editmesh_add.c
2005-10-31 09:41:24 +00:00
Ken Hughes
3150b5a7a7 -- one step closer to fixing booleans: one-line change to use new object
instead of original object when building new mesh and mesh material list
2005-10-31 04:17:29 +00:00
4181b6ec74 Removed key.getChannelIpo() doc. 2005-10-31 02:52:17 +00:00
43ec1ee71a Removed key.getChannelIpo() since it is not proper implementation anymore. 2005-10-31 02:52:14 +00:00
e964954679 Fix for HOME key in Action Window. Didn't check for mapped NLA time yet. 2005-10-30 21:48:25 +00:00
41c5328dd4 Two half working commits!
- Python Drivers
  In Ipo Window "transform properties" Panel, added the buttons, and the
  initial handling (now only printing text). Willian makes it work!

- Better Matrix to Eul, code submitted by Brecht. No time yet to do it
  really nice (like a Mat3ToEulCompat(mat, eul, eulc))
2005-10-30 20:56:19 +00:00
Ken Hughes
99753a423f -- fix (I think) for "normal booleans interface (for Wkey 123 entries)";
second selected object's mesh was being overwritten by new object's
   mesh, so new object had no empty mesh
2005-10-30 20:10:05 +00:00
0fda3609a6 - bug fix: normal of new added face is calculated without mistakes now
- direction of face normal doesn't depend on user's view to scene anymore,
   it is influenced only by direction of face normals in nieghborhood
2005-10-30 18:42:50 +00:00
1f51932259 Previous change to enable Shape Actions, didn't support Drivers yet. 2005-10-30 18:29:40 +00:00
Ken Hughes
227e6b08b2 -- testing a patch which lets Python initialize the site path for Blender
(old code is just "#ifdef"-ed out for now.)

Please give this a try on all platforms and give us feedback on what you
see for your sys.path setting in Blender (run these two lines in text window)

	import sys
	print sys.path
2005-10-30 18:27:24 +00:00
b483454bd3 Mirror clipping bug; Martin used abs() which is for int! should be fabs(). 2005-10-30 17:32:17 +00:00
Ken Hughes
4d2de0293e -- fix compiler warning about return "from incompatible pointer type" when
returning Python exceptions.  EXPP_ReturnPyObjError() always returns a
   NULL because Python expects error conditions to return a NULL pointer
   instead of an object.  Since the pointer is cast to a PyObject *, it's
   ugly to use for propagating the errors back in this case, so this fix just
   uses PyErr_SetString() to set the error and return NULL (see the body
   of EXPP_ReturnPyObjError() ).
2005-10-30 14:34:48 +00:00
ea8b08c2cc Two new IK features.
1) Target-less IK

If you add an IK constraint without a target set (no object or bone target),
it now can be grabbed and moved with IK, using its own Bone tip or root as
target itself. This way you can use IK for posing, without having the IK
executed while it animates or while a Pose is being solved for real IK.

After grabbing "Target-less IK", it applies the resulted motion in the
pose-channels, which then can be used to insert keypositions.

The Target-less IK bone can still be rotated without IK, also its chain
can be edited as usual.

UI: The CTRL+I menu gives this as an option too. In the 3D window it is
drawn with orangish color.

Note that IK is not resistant to non-uniform scaling yet.

2) Auto-IK

When the option "Automatic IK" is set, in Edit Buttons Armature Panel,
it creates automatic temporal Target-less IK for the Bone you grab or
translate.

The rules are:

- it only works when a single Bone is selected
- if the Bone is a root bone (no parent), it adds IK to the end of the
  chain(s)
- otherwise it adds the IK to the active Bone
- the temporal IK chain only consists of connected Bones.

This method is still a bit experimental. Maybe it should become a special
grabbing option (like SHIFT+G in Pose Mode). It also only works OK for rigs
that fit for it well... when a rig already is fully setup with IK it can't
do much good. :)
2005-10-30 13:50:42 +00:00