Roland Hess' Floor Constraint patch: https://projects.blender.org/tracker/?func=detail&aid=2993&group_id=9&atid=127
Minor modifications to simplify the code in evaluate_constraint. The "Stick" feature will need more work as it gives bad results when skipping frames, jumping around on the timeline and when going backward in time. Suggestion: Would be nice if it could use the local space too, not just global space planes.
This commit is contained in:
@@ -260,6 +260,12 @@ char *get_con_subtarget_name(bConstraint *con, Object *target)
|
||||
if (data->tar==target) return data->subtarget;
|
||||
}
|
||||
break;
|
||||
case CONSTRAINT_TYPE_MINMAX:
|
||||
{
|
||||
bMinMaxConstraint *data = con->data;
|
||||
if (data->tar==target) return data->subtarget;
|
||||
}
|
||||
break;
|
||||
case CONSTRAINT_TYPE_LOCKTRACK:
|
||||
{
|
||||
bLockTrackConstraint *data = con->data;
|
||||
@@ -368,6 +374,24 @@ static void test_constraints (Object *owner, const char* substring)
|
||||
break;
|
||||
}
|
||||
|
||||
if ( (data->tar == owner) &&
|
||||
(!get_named_bone(get_armature(owner),
|
||||
data->subtarget))) {
|
||||
curcon->flag |= CONSTRAINT_DISABLE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CONSTRAINT_TYPE_MINMAX:
|
||||
{
|
||||
bMinMaxConstraint *data = curcon->data;
|
||||
|
||||
if (!exist_object(data->tar)){
|
||||
data->tar = NULL;
|
||||
curcon->flag |= CONSTRAINT_DISABLE;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( (data->tar == owner) &&
|
||||
(!get_named_bone(get_armature(owner),
|
||||
data->subtarget))) {
|
||||
|
||||
Reference in New Issue
Block a user