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
2012-02-01Previous fix for [#29484] wasn't working right (did work in report file though).Campbell Barton
this now shares code with RNA's 'pchan.matrix = matrix' tested with parent scale/rot/translation
2012-01-22use inline BLI_math functions for dot product and length calculation.Campbell Barton
2012-01-17New pchan to pose matrices computes. Fixes [#27898] Bone snap to cursor ↵Bastien Montagne
fails and [#29461] Selection-to-Cursor works strange with bones with TrackTo constraint. Also fixes some inconsistant behavior of no Inherit Rotation/Scale options. WARNING: This commits modifies how translated unconnected child bones with *no Inherit Rotation option* are positionned. This means that if you open a posed/animated armature using such (corner-case) setup, you'll have to adjust manually the locations of such bones: now, disabling Inherit Rotation/Scale will no more move the bone, only affecting its rotation/scale. Many thanks to Bassam Kurdali (slikdigit) for his advices and tests of the patch! ----- Dev notes : the pchan_to_pose_mat() func was added to BKE_armature.h, which computes two matrices to get the pose transformations (pchan) of the bone directly in pose (i.e. armature object) space. The first matrix is the rotation/scaling parts, the second one is for location. That new function is used by (hence deduplicating and simplifying their code): * The pose evaluation code (where_is_pose_bone()). * The interactive transformation code (add_pose_transdata(), in transform_conversion.c). * The snap to cursor/grid code (through armature_loc_pose_to_bone()/armature_mat_pose_to_bone()).
2012-01-11Longer names support for all ID and other object namesSergey Sharybin
This commit extends limit of ID and objects to 64 (it means 63 meaning characters and 1 for zero-terminator). CustomData layers names are also extended. Changed DNA structures and all places where length constants were hardcoded. All names which are "generating" from ID block should be limited by MAX_ID_NAME-2, all non-id names now has got own define called MAX_NAME which should be used all over for non-id names to make further name migration stuff easier. All name fields in DNA now have comment with constant which corresponds to hardcoded numeric value which should make it easier to further update this limits or even switch to non-hardcoded values in DNA. Special thanks to Campbell who helped figuring out some issues and helped a lot in finding all cases where hardcoded valued were still used in code. Both of forwards and backwards compatibility is stored with blender versions newer than January 5, 2011. Older versions had issue with placing null-terminator to DNA strings on file load which will lead to some unpredictable behavior or even crashes.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-10-10fix bad svn ID tagsCampbell Barton
2011-10-10header cleanup (no functional changes)Campbell Barton
2011-09-14remove count_selected_defgroups() function and make get_selected_defgroups() ↵Campbell Barton
return the total selected items. also some variable renameing, no functional changes.
2011-09-14initial cleanup for weight paint branchCampbell Barton
- move get_selected_defgroups & count_selected_defgroups into blenkernel - split calc_weightpaint_vert_color() logic so its more obvious whats default and multipaint behavior
2011-08-12Bye bye vile relics of extinct version control systems,Joshua Leung
Causing a flurry of refresh file prompts post-commit, Confusing local diffs and causing merge conflicts, Stating the obvious; redundant and useless... We shall not miss thou, blasted expand $keywords$
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.