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
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-05== Constraints - Code Cleanups ==Joshua Leung
* Tidied up coding style of code in editconstraint.c - removed blank lines, made whitespace-use more consistent * Shuffled code in editconstraint.c and BIF_editconstraint.h so that it was in a more orderly fashion * Reduced code redundancy in test_constraints - tests which can apply to general constraints (target existance, and clashes with the owner) are not copied out for each constraint that needs it - ChildOf constraint now gets validated too (before it was missing such checks) * Recoded the way PyConstraints build the menu for displaying scripts available for use. It now uses dynstr instead of guessing how much memory to allocate for each entry
2007-10-22== Constraints Bugfixes ==Joshua Leung
* Removed the old get_con_subtarget_name function and fixed the places that used it. This was only suitable for single-target constraints. * PyConstraints interface drawing should now no longer draw multiple-target fields on top of each other * Removed double call to BPY_pyconstraint_update when the Update button was clicked. I found this while debugging why PyConstraints didn't seem to be working yet...
2007-10-22== Constraints System - Recode 2 ==Joshua Leung
Once again, I've recoded the constraints system. This time, the goals were: * To make it more future-proof by 'modernising' the coding style. The long functions filled with switch statements, have given way to function-pointers with smaller functions for specific purposes. * To make it support constraints which use multiple targets more readily that it did. In the past, it was assumed that constraints could only have at most one target. As a result, a lot of code has been shuffled around, and modified. Also, the subversion number has been bumped up. Known issues: * PyConstraints, which were the main motivation for supporting multiple-targets, are currently broken. There are some bimport() error that keeps causing problems. I've also temporarily removed the doDriver support, although it may return in another form soon. * Constraints BPy-API is currently has a few features which currently don't work yet * Outliner currently only displays the names of the constraints instead of the fancy subtarget/target/constraint-name display it used to do. What gets displayed here needs further investigation, as the old way was certainly not that great (and is not compatible with the new system too)
2007-07-29More Constraints Bugfixes:Joshua Leung
* Transform Constraint should now work in more cases. Somehow the old code (for location case) wasn't working correctly. * ChildOf Constraint applied on objects, should now get the right 'inverse'/'offset' matrix set. It now uses the same code that is used by Blender's parenting method to do so.
2007-06-18== PyConstraints ==Joshua Leung
At last! The ability to code constraints in Python. This opens up many interesting rigging possibilities, as well as making prototyping constraints easier. * A PyConstraint script must begin with the line #BPYCONSTRAINT * It must also define a doConstraint function, which performs the core actions of the constraint. * PyConstraints use IDProperties to store custom properties for each PyConstraint instance. The scripter can choose which of these ID-Properties to expose to a user to control the behaviour of the constraint. This must be done using the Draw.PupBlock method. Credits to Joe Eager (joeedh) for coding the original patch on which this is based. I've made heavy revisions to large parts of the patch. For more detailed information, and some demo scripts, see the following page: http://aligorith.googlepages.com/pyconstraints2
2006-11-02Bugfix #5022Ton Roosendaal
If you rename a Constraint, the used Constraint Channels (Ipo curves) were not renamed as well, making animations not work anymore. Now renaming works up to this level: - own object constraints - own object Action constraints This is identical to Bone renaming. Note that other actions (like in NLA) are not corrected for renaming. Have to look at ways to provide that once.
2005-12-18* Updates for missing menu itemsMatt Ebb
2005-10-23New: Hotkey/menu access in 3D window to add constraints. Works in PoseModeTon Roosendaal
as well as for Objects. Hotkey: CTRL+ALT+C (bit clumsy I know, but I like to use the Ckey). Constraints are added to the active Object or Bone. Based on selection context, the menu has three versions: Pose Mode: - if another bone is selected, bone becomes target - else if another Object is selected, Object becomes target - else it adds a new Empty as target Object Mode - if another Object is selected: Object becomes target - else it adds a new Empty as target Same works this way now for CTRL+I, "Add IK". To be solved: ALT+C in PoseMode is "Clear Constraints", but in Object Mode it does "Convert" still...
2005-10-10Stupid me! Committed in wrong console with wrong dir... here's the rest ofTon Roosendaal
all files for the Ipo/Action/NLA makeover...
2005-08-25Huge commit, but not much features... had to shuffle a lot of code around.Ton Roosendaal
Main target was cleanup of editconstraint.c and removal of the ugly ob->activecon (active constraint channel), which was set by the "Show" button in the Constraint Panel. Better is to introduce an 'Active Constraint' itself, which stores in the Constraint itself. By using this setting, and by checking the active Bone, the UI can update reliably now. This only shows now in IpoWindow btw (for constraint ipos). The active Constraint is drawn in the Buttons with a slightly brighter backdrop. Any action in that Panel selects a constraint now (even click in backdrop). So now we have pose channels & constraint channels nicely behaving. Now the darn Action channels... :) Further in this commit: - interface.c: Button ROUNDBOX now does button callback too. Button NUMSLI didn't do the callback on a click only - Cleaned up include files in yafray, got annoyed it compiled over all the time. - removed unused variables from Constraint struct
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-
2004-08-16Renamed get_constraint_target in constraint kernel file to ↵Martin Poirier
get_constraint_target_matrix since that's what it really does Moved get_con_target from editconstraint to constraint kernel file and renamed to get_constraint_target Make scene.c use constraint functions from kernel instead of doing the switch itself (regrouping specific constraint code in one file). Add LockTrack as an option in the Make Track menu (Ctrl-T) Adding fun for vortex forces in 3D window, the representation now match the orientation and direction of the force (this is code will need optimisation). I'll probably be slapped for mixing two things in one commit but some function calls needed to be fixed for the new spelling and since this is really isolated code I didn't feel like wasting time getting a fresh copy, doing the changes and then readded this after commiting. Fixed some warning regarding implicit casts and constants (this last one is a MSVCism where you need to explicitely tell the compiler to use floats with an f. AFAIK, it doesn't affect/bother other compilers). Removed a useless commented piece of code in readfile (there was an uncommented copy a couple of lines before)
2004-01-03Armature speed ups, Part IIIChris Want
---------------------------- Another (major) armature speed up for bones with many constraints. When tranform()-ing, figure out which bones need to be recalculated beforehand and only update those bones.
2004-01-03Armature speed ups, Part IChris Want
-------------------------- Major speed up for armatures during times when you aren't posing a figure. Background: the calculation of poses generated by actions and the calculation of displists were getting somewhat out of sync. This was being remedied by 'clearing the constraint done flag' of the pose channels and recalculating the displists every time the 3d view was redrawn, making life slow and unpleasant. Commenting out the code that was doing this, then reinserting the 'clearing the constraint done flag' at the right times made things a bit more perky.
2003-10-23Small constraint loop detection and calculation fix that now allows two ↵Martin Poirier
objects to track each other (normal track or LockTrack). This is done by disabling the object position refresh call when calculating these constraints. From the tests I did, this doesn't cause any problem at all. The main point of this is to create pistons and the like. For coders: the detect_constraint_loop function now takes an additional parameter that determines the constraint type of the object it's looping from.
2003-10-21Constraint stuff from tuhopuu including (but probably not limited too):Martin Poirier
Axis options for TrackTo LockTrack FollowPath Auto creation of TrackTo constraint from Ctrl-T (old track still an option) Auto creation of FollowPath when parenting to path (Normal parent still an option) Backward compatibility stuff to convert the per object axis settings to per constraint when a Track constraint is present. Function to convert old track to constraint (commented out) Revamped the constraints interface with Matt's work from tuhopuu and the stuff we were discussing earlier. -------------------- For coders: unique_constraint_name and *new_constraint_data moved to the kernel (constraint.c) new Projf function in arithb gives the projection of a vector on another vector add_new_constraint now takes a constraint type (int) parameter add_constraint_to_object(bConstraint *con, Object *ob) to link a constraint to an object add_constraint_to_client(bConstraint *con) to link constraint to current client (object or bone) add_influence_key_to_constraint (bConstraint *con) to (eventually) add a keyframe to the influence IPO of a constraint
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-12Initial revisionv2.25Hans Lambermont