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
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2007-11-28 15:11:06 +0300
committerTon Roosendaal <ton@blender.org>2007-11-28 15:11:06 +0300
commit36f7da70466603643ec28b47e4ec0b082fa5226a (patch)
treea93b182bc592a579fa53ee494ded494449aee1a1 /source/blender/makesdna/DNA_constraint_types.h
parentbb77ea8df5f016399e50bce5ef8b67d2cac89a28 (diff)
Tiny feature, but loadsa code, and big impact for the Blender riggers:
-> Constraint Influence Ipo now can be local, linked to constraint itself You enable this in the IpoWindow header, with the Action icon to the left of the Ipo Type menu. The button tooltips give the clue as well. Tech note: the Ipo now can get directly linked to a constraint, and is being called during regular pose constraint solving. Actions (and drivers in actions) are being calculated *before* pose constraint solving. Result of actions then is written in bones, which then solves the entire pose. This means you can have a driver on both the constraint, as on the action channel for the constraint! Not that I'm going to debug that easily :) Additional fix: Joshua added a copy/paste IpoCurve feature, but he broke the functionality to be able to paste in an empty ipo channel. That now works again
Diffstat (limited to 'source/blender/makesdna/DNA_constraint_types.h')
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index bf512c3faf8..72506b0eb57 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -41,6 +41,7 @@
struct Action;
struct Text;
+struct Ipo;
/* channels reside in Object or Action (ListBase) constraintChannels */
typedef struct bConstraintChannel {
@@ -66,6 +67,7 @@ typedef struct bConstraint {
float enforce; /* Amount of influence exherted by constraint (0.0-1.0) */
float headtail; /* Point along subtarget bone where the actual target is. 0=head (default for all), 1=tail*/
int pad;
+ struct Ipo *ipo; /* local influence ipo or driver */
} bConstraint;
@@ -347,7 +349,9 @@ typedef enum B_CONSTRAINT_FLAG {
/* to indicate which Ipo should be shown, maybe for 3d access later too */
CONSTRAINT_ACTIVE = (1<<4),
/* to indicate that the owner's space should only be changed into ownspace, but not out of it */
- CONSTRAINT_SPACEONCE = (1<<6)
+ CONSTRAINT_SPACEONCE = (1<<6),
+ /* influence ipo is on constraint itself, not in action channel */
+ CONSTRAINT_OWN_IPO = (1<<7)
} B_CONSTRAINT_FLAG;
/* bConstraint->ownspace/tarspace */