Rigid Body Joint Constraint:

* RNA fix for my last commit, we want the last 3 items of the array, not the first 3, added get/set functions.
This commit is contained in:
2010-11-26 17:11:16 +00:00
parent fb42188c18
commit d6a90a6bff

View File

@@ -324,6 +324,47 @@ static void rna_SplineIKConstraint_joint_bindings_set(PointerRNA *ptr, const flo
memcpy(ikData->points, values, ikData->numpoints * sizeof(float));
}
/* Array Get/Set Functions for RigidBodyJointConstraint Min/Max Cone Limits */
void rna_RigidBodyJointConstraint_limit_cone_min_get(PointerRNA *ptr, float values[3])
{
bRigidBodyJointConstraint *data= (bRigidBodyJointConstraint*)(((bConstraint*)ptr->data)->data);
float *limit = data->minLimit;
values[0]= limit[3];
values[1]= limit[4];
values[2]= limit[5];
}
static void rna_RigidBodyJointConstraint_limit_cone_min_set(PointerRNA *ptr, const float values[3])
{
bRigidBodyJointConstraint *data= (bRigidBodyJointConstraint*)(((bConstraint*)ptr->data)->data);
float *limit = data->minLimit;
limit[3]= values[0];
limit[4]= values[1];
limit[5]= values[2];
}
void rna_RigidBodyJointConstraint_limit_cone_max_get(PointerRNA *ptr, float values[3])
{
bRigidBodyJointConstraint *data= (bRigidBodyJointConstraint*)(((bConstraint*)ptr->data)->data);
float *limit = data->maxLimit;
values[0]= limit[3];
values[1]= limit[4];
values[2]= limit[5];
}
static void rna_RigidBodyJointConstraint_limit_cone_max_set(PointerRNA *ptr, const float values[3])
{
bRigidBodyJointConstraint *data= (bRigidBodyJointConstraint*)(((bConstraint*)ptr->data)->data);
float *limit = data->maxLimit;
limit[3]= values[0];
limit[4]= values[1];
limit[5]= values[2];
}
#else
EnumPropertyItem constraint_distance_items[] = {
@@ -1269,11 +1310,13 @@ static void rna_def_constraint_rigid_body_joint(BlenderRNA *brna)
/* Limit Min/Max for Cone Twist */
prop= RNA_def_property(srna, "limit_cone_min", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "minLimit");
RNA_def_property_float_funcs(prop, "rna_RigidBodyJointConstraint_limit_cone_min_get", "rna_RigidBodyJointConstraint_limit_cone_min_set", NULL);
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Minimum Limit", "");
prop= RNA_def_property(srna, "limit_cone_max", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "maxLimit");
RNA_def_property_float_funcs(prop, "rna_RigidBodyJointConstraint_limit_cone_max_get", "rna_RigidBodyJointConstraint_limit_cone_max_set", NULL);
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Maximum Limit", "");