Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-18doxygen: blenkernel under core as module.Nathan Letwory
2011-02-14made most variables which are only used in a single file and not defined in ↵Campbell Barton
header static for blenlib, blenkernel and editors.
2011-02-13enforce string limits (reported by pedantic checking tools & some developers).Campbell Barton
mostly replace strcpy with BLI_strncpy and multiple strcat's with a BLI_snprintf(). also fix possible crash if CWD isnt available.
2010-11-17use 'const char *' by default with RNA functions except when the value is ↵Campbell Barton
flagged as PROP_THICK_WRAP. Also use const char in many other parts of blenders code. Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
2010-11-03fix [#24499] Consistency Issue with LassoSelect/ExtendOptionCampbell Barton
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-10-26move matrix decomposition out of object.c into BLI_math_matrix function: ↵Campbell Barton
mat4_to_loc_rot_size(), use this now for pchan_apply_mat4() to support negative scale, visual keying now uses compatible eulers. also added access to this in python's mathutils.Matrix() loc, quat, scale = matrix.decompose()
2010-10-22Bugfix #20708: segmented bones don't work well with spline IKJoshua Leung
There was a slight discreptancy between the tail values calculated on the spline before the head was displaced for the "chain offset" option and after this operation. However, only the original version got set. This small difference resulted in B-Bones thinking that the endpoints of the bones were in places that they were not in, hence causing the curly patterns observed in the report.
2010-07-303 duplicate functions: bone_flip_name() object_flip_name() flip_side_name()Campbell Barton
removed object_flip_name() & bone_flip_name(), use flip_side_name()
2010-04-18possible fix for [#22057] Autoname L/R in bones names center bones as .RCampbell Barton
Bone would get a '.' added even when there was no extension. (center limit would still be useful) - name flipping function used sizeof() incorrectly. - ED_lorem should be extern.
2010-03-01Bugfix #21384: Bone Driven Shapekeys Child Evaluation ProblemJoshua Leung
Transform channel drivers for bones in 'localspace' was using the wrong matrix when getting the transforms. I had been assuming that pchan->chan_mat always contained only the matrix-ised transform values stored in the pchan (which is true while constraints are being evaluated, but not afterwards). Changes: - Added a new function to calculate this matrix instead of directly writing it on the pchan->chan_matrix field. - Also, made the normalisation of the quaternion values during this process be done on a temp var instead of on the stored value. This was a constant source of confusion in the past, so let's see if we can do without it now :) Unrelated to this commit, I've also fixed a compiler warning with previous commit that I missed (missing include).
2010-02-19apply visual transform to poseCampbell Barton
So constrainted bones can have their transform applied to their loc/scale/rot, then remove the constraints
2010-02-12correct fsf addressCampbell Barton
2009-11-01Rigging Goodies: Spline IK ConstraintJoshua Leung
At last, this commit introduces the Spline IK Constraint to Blender. Spline IK is a constraint that makes n bones follow the shape of a specified curve. Simply add a chain of bones, add a curve, add a Spline IK Constraint to the tip bone and set the number of bones in the chain to make it work. Or, try the following test file: http://download.blender.org/ftp/incoming/250_splineik_spine01.blend Screenshots of this in action (as proof): http://download.blender.org/ftp/incoming/b250_splineik_001_before.png http://download.blender.org/ftp/incoming/b250_splineik_001_after.png I've implemented this in a similar way to how standard IK solvers are done. However, this code is currently not an IK plugin, since I imagine that it would be useful to be able to combine the 2 types of IK. This can be easily changed though :) Finally, a few notes on what to expect still: * Constraint blending currently doesn't affect this. Getting that to work correctly will take a bit more work still. * Options for not affecting the root joint (to make it easier to attach the chain to a stump or whatever), and non-uniform scaling options have yet to be added. I've marked the places where they can be added though * Control over the twisting of the chain still needs investigation. Have fun!
2009-10-28Added support for custom RNA properties on Bones, only worked forBrecht Van Lommel
PoseChannel previously.
2009-10-08Rotation Modes Bugfix:Joshua Leung
Animating rotations using different rotation modes should now work more often than before. Previously, quaternion and axis-angle values were stored in the same variable in DNA, but that was causing problems with other animation curves overwriting the values and causing the rotations to not work as expected. There are still some issues, but I'll track those down later tonight
2009-09-28Durian Feature Request: Rotation Modes for ObjectsJoshua Leung
This (biggish) commit generalises the rotation modes functionality added for Bones, allowing Objects to use the various Euler Rotation orders, Axis-Angle, and Quaternion rotation representations. I've also cleaned up the nomenclature of the rotation-related settings so that the naming styles are more consistent with each other. Unfortunately, this will break all files involving object or bone rotation animation made in 2.5 versions (2.4x will still get correctly converted). General Notes: * By default, Objects still default to using Eulers, while Bones will use Quaternions by default still. * I've fixed all areas that I'm currently aware of to work with these changes. However, there are probably a few places where I've missed a few changes (i.e. auto-keyframing will need attention later). * Removed the old "IPO-Keys" stuff from Transform code. I'm unlikely to restore this in the near future, and trying to fix that to include support for this commit would have been too much work.
2009-09-25Merge of itasc branch. Project files, scons and cmake should be working. ↵Benoit Bolsee
Makefile updated but not tested. Comes with Eigen2 2.0.6 C++ matrix library.
2009-09-052.5Brecht Van Lommel
Make local and make single user are back for ID template. Internally these calls got unified, id_make_local and id_copy are now used to do these operations for all types that support it. Also reveals that for some ID types the implementation is still missing. Further, some small changes: * unlink_text is now in blenkernel. * copy_group was implemented. * ID template now has an open operator again. * fix preview to not change material reference count, even if temporary it shows up with threaded preview. * id_unlink unifies unlink for text, object and group.
2009-01-102.5Ton Roosendaal
Instead of many commits, here 1! - Constraint edit code back - Removed XXX stubs for constraints (make parent follow path works) - Removed XXX stubs for armature (make parent deform, do center, etc works) - Found a bad uninitialized global Scene * in code, especially in kernel it wreaked havoc. - added missing include in blenkernel/brush.c - fixed Nicholas' fix for editmode subsurf crash (It needed to check for editmode)
2009-01-052.5Ton Roosendaal
Put back Armature/Pose code, including 'heat weight'. I've added reeb.h to get things compile, but Martin will cleanup files and put back? Now where to put all vertexgroup code.... I guess mesh? Note for msvc: yep, another new dir to add! :)
2009-01-042.5Ton Roosendaal
Think global, act local! The old favorite G.scene gone! Man... that took almost 2 days. Also removed G.curscreen and G.edbo. Not everything could get solved; here's some notes. - modifiers now store current scene in ModifierData. This is not meant for permanent, but it can probably stick there until we cleaned the anim system and depsgraph to cope better with timing issues. - Game engine G.scene should become an argument for staring it. Didn't solve this yet. - Texture nodes should get scene cfra, but the current implementation is too tightly wrapped to do it easily.
2008-04-17Patch from GSR that a) fixes a whole bunch of GPL/BL licenseChris Want
blocks that were previously missed; and b) greatly increase my ohloh stats!
2008-01-28== Automatic Bone Extension Adder ==Joshua Leung
Added three new tools to the WKEY menu for Armatures in EditMode/PoseMode. These add .* extensions to the names of selected bones based on their position in 3d-space on the axis considered by that tool. The current naming schemes are based upon the extensions I normally apply. Some people may have slightly different preferences though. There is one for: * Left-Right names (along x-axis) * Front-Back names (along y-axis) * Top-Bottom names (along z-axis)
2007-10-22== Action Constraint ==Joshua Leung
Now the Action Constraint can be applied to Objects as well as Bones!
2007-10-10Make B-Bones not deform in rest position by default.Brecht Van Lommel
B-Bones already deformed the mesh in the armature rest position, which is unconvenient. For backwards compatibility existing .blend files still have a button for the old behavior enabled. (peach feature request)
2007-03-11made all data adding functions accept a name such as add_mesh or add_curve, ↵Campbell Barton
previously only some datatypes adding functions accepted a name. also updated the Bpy.py epydocs
2007-02-05Bugfix #5833:Joshua Leung
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-01-17(Hopefully this commit is ok for current bcon status)Joshua Leung
Moved function used for 'Visual' keyframing, to live with the rest of the API calls I added for Pose-Mode bone snapping. Now, it is in a more 'releasable' state.
2006-12-22== Snap Bones To Location in PoseMode ==Joshua Leung
Now the Snap To Location (Shift S) tools for bones in pose-mode work correctly. Previously, only one of these tools was implemented, but it only worked in some cases. This fixes item #4874 in Todo Tracker. Was patch #5012.
2006-11-07Added an option in the IK constraint to disable stretching, usefulBrecht Van Lommel
in rigs with layered IK constraints. Also removed the tolerance setting, this value wasn't used in the solver anymore.
2005-11-29Cleanup & preparation commit for getting Armatures/Poses/Actions workingTon Roosendaal
in the game engine again. All files in source/gameengine/ I've committed below have a comment like /* XXX note .... */ where something needs to be done. This is pretty straightforward for Erwin, who has been notified in person too about this. :)
2005-09-01- Changed xz limit drawing to use same formulas as the limiting in the IKBrecht Van Lommel
module -- the previous method could be off pretty far. - Added drawing of transparent surface for it, instead of just the border. - Added "stretch IK", allowing bones not only to rotate, but also scale. The "Stretch" value below the DoF buttons is used to enabled this. - Some code tweaking: slightly simplified computation of transform for IK, renamed chain to tree, removed unused pchan->ik_mat, .. Internal IK module work: - Do damping per DoF also based on stiffness, hopefully makes it converge faster with very stiff joints. - Instead of having two joints types (translational and rotational), now all 6 DoF's can be enabled for one joint. - Added limits for translational joints.
2005-08-27IK work-in-progress commit;Ton Roosendaal
- Removed old convention that only allowed one "IK" connection for Bones in a joint. Was highly frustrating for editing trees or branches. In a next commit, there will be a different method to define IK target and IK root, so this option actually will become "Connect Bone" or so. - the IK group name is gone, now is just an option "Tree IK". When IK chains share a root they'll form a tree. Todo is preventing conflicts here (will be for editor to define IK Root) - Adding new IK constraint with CTRL+I activates Constraint
2005-08-27Third and last commit for Brecht's IK work.Ton Roosendaal
Full logs for changes will be added later. Worth to note now; - support for 'tree IK' added - DOF and stiffness per IK bone (in pose only) - Orientation IK support (target rotates -> chain follows) This is still WIP. Buttons might change, button ranges will change, and the way 'IK groups' are working will change. You can play with this, but don't expect saved files to work still by end of this day! :)
2005-08-21At last! B-bones now deform. :)Ton Roosendaal
This works pretty nice for better control over the curvature of any bone deform. No need to give Bones (vgroups) large influence, just add a coupleof B-bone segments. Two notes; - The Bone property "Segments" defines if a deform happens as a 'B-bone'. The drawtype B-bone is just for display in 3d window. - A B-bone also deforms (bends) in Rest-position, if there's a joint that creates a curved Bone. Therefore, best results you get by creating a rest-position with straight joints. Or, if you prefer a slightly bended restposition (for a spine or so), make sure the Mesh model is *not* curved, the B-bone will do this for you. Also added: proper events on changing buttons for Bones, like "Segm" or "Dist" etc.
2005-08-19Armature "Envelope" editing.Ton Roosendaal
For defining the deformation distances of Bones, three values are being used now. The bone tip and root radius define the bone-shape itself and the "dist" defines the soft area around it. A full (user) doc is in CMS here; http://www.blender3d.org/cms/Armature_Envelopes.647.0.html Note: todo still is allowing both Vertex Deform Groups and these Envelopes together (and or per Bone). Also part of this commit is: - New: Hiding bones in EditMode. This is a separate 'hide flag', so you can keep the PoseMode hidden Bones separate from EditMode. (In the future we should do some kind of bone-grouping or so) - While transform(), the hotkeys G,R,S only switch mode when the previous mode was compatible. Caused conflicts with Crease/BoneDist/etc. - Deleting the last VertexGroup now also deletes the entire Mesh 'dvert' data. Sounds logical, but remember that VertexGroups are partial on a Mesh, partial on Object. Weird design decision though... Anyhoo, at this moment the only way to have Bone Envelopes deform, is by deleting all VertexGroups! - In PoseMode, the hotkey ALT+S now does both B-Bone size or Envelope, depending draw type. - In EditMode, Extrude now also works when only Root points were selected. - Weight editing is also symmetrical btw, with the "X-axis Mirror" option set.
2005-08-17- New feature: shift+ctrl+t in Mesh editmode splits quads in exact oppositeTon Roosendaal
way. Requested for low-poly modeling. - fix: on exit editmode, the code always created a mesh->dvert block... silly, this made other code confused which decided whether to use dverts (vertex groups) or not. - removed obsolete call from armature.c. Also fixed name of function there, preparation work for nicer support in Blender for "deform envelopes"
2005-08-15EditMode armature: mirrored editing feature.Ton Roosendaal
- Option is in EditButtons, Armature panel. - Currently only local X-axis mirror (seems to be default anyway) - Transform then applies changes to the mirrored-name bone as well. - Extrude: also does the counterpart Bone - New: SHIFT+E extrude: extrudes 2 mirrored Bones out of a normal Bone. (creating names by appening _L and _R) Or in short: you can now model a full rig without any manual naming! Of course the names are not too nice... a couple of ideas to explore; - rename a mirrored bone renames counterpart too - allow in weightpaint mode to select Bones - and of course mirrored edit in PoseMode (if that's useful...) Important note: I tweaked the naming convention a bit; names like Bone_L.005 and Bone_R.005 are considered counterparts. However, if you use the "Flip names" option, the number extension is still truncated. BTW: Commits in Zr's code are fixes for gcc warnings. :)
2005-08-13New; Wkey in Armature Editmode. Has option for flipping names too.Ton Roosendaal
(And moved flip_name to armature kernel)
2005-07-23Killed silly modal PoseMode mode! :)Ton Roosendaal
- PoseMode now is a state Armature Objects can be in. So, while in PoseMode for an Armature, you can just select another Object or Armature. - The old PoseMode options (transform, insert keys etc) are accessible with making the Armature Object 'active' (and have object in PoseMode). - At this moment no multiple Poses can be transformed/edited at the same time. - The old hotkey CTRL+TAB, and view3d header menu, still work to set an Object's PoseMode It was quite a lot recode, so tests & reports are welcome. Oh, as a bonus I added Lasso Select for Bones in PoseMode! It selects using only the line between root and tip of the Bone.
2005-07-16More armature goodies;Ton Roosendaal
The B-Bones! (where the B can be read as 'block' or 'bezier' or 'b-spline') - set option on/off in edit buttons, armature panel - scaling of B-bones only works in editmode, use ALT+S to make bones fatter or thinner. Also works for constrainted transform - In pose mode, you now have a buttons panel with per-bone settings too Here you can find the "segments" button, which allows bones to interpolate between previous/next bones, including roll. - Buttons to control interpolation ("In" and "Out" are disabled, doesn't work satisfying yet NOTE: this doesn't give deform yet! Main purpose for now is to test if this drawing method serves to animate/pose armatures well. Still need to review proper interpolation methods... maybe bezier is too limited.
2005-07-03Result of 2 weeks of quiet coding work in Greece :)Ton Roosendaal
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-
2003-04-24Support for auto-skinning when parenting a mesh to an armature.Chris Want
Applies to bones that do not have a boneclass of unskinnable (set per bone in editmode in the button window).
2002-12-27Removed the config.h thing from the .h's in the source dir.Kent Mein
So we should be all set now :) Kent -- mein@cs.umn.edu
2002-11-25Did all of the .h's in sourceKent Mein
(adding) #ifdef HAVE_CONFIG_H #include <config.h> #endif also the Makefile.in's were from previous patch adding the system depend stuff to configure.ac Kent -- mein@cs.umn.edu
2002-10-30fixed spacing in the headers to get rid of some warnings and some otherKent Mein
little minor spacing issues.
2002-10-12Initial revisionv2.25Hans Lambermont