42 "Copy the location of a target (with an optional offset), so that they move together"},
47 "Copy the rotation of a target (with an optional offset), so that they rotate together"},
52 "Copy the scale factors of a target (with an optional offset), so that they are scaled by "
58 "Copy all the transformations of a target, so that they move together"},
63 "Restrict movements to within a certain distance of a target (at the time of constraint "
69 "Restrict movement along each axis within given ranges"},
74 "Restrict rotation along each axis within given ranges"},
79 "Restrict scaling along each axis with given ranges"},
84 "Compensate for scaling one axis by applying suitable scaling to the other two axes"},
89 "Use one transform property from target to control another (or same) property on owner"},
92 ICON_CON_TRANSFORM_CACHE,
94 "Look up the transformation matrix from an external file"},
101 "Restrict movements to lie along a curve by remapping location along curve's longest axis"},
106 "Point towards a target by performing the smallest rotation necessary"},
110 "Inverse Kinematics",
111 "Control a chain of bones by specifying the endpoint target (Bones only)"},
116 "Rotate around the specified ('locked') axis to point towards a target"},
121 "Align chain of bones along a curve (Bones only)"},
126 "Stretch along Y-Axis to point towards a target"},
131 "Legacy tracking constraint prone to twisting artifacts"},
138 "Use transform property of target to look up pose for owner from an Action"},
143 "Apply weight-blended transformation from multiple bones like the Armature modifier"},
148 "Make target the 'detachable' parent of owner"},
153 "Use position (and optionally rotation) of target to define a 'wall' or 'floor' that the "
154 "owner can not cross"},
159 "Use to animate an object/bone following a path"},
164 "Change pivot point for transforms (buggy)"},
166 {CONSTRAINT_TYPE_RIGIDBODYJOINT,
168 ICON_CONSTRAINT_DATA,
170 "Use to define a Rigid Body Constraint (for Game Engine use only)"},
173 ICON_CONSTRAINT_DATA,
175 "Custom constraint(s) written in Python (Not yet implemented)"},
181 "Restrict movements to surface of target mesh"},
190 "The transformation of the target is evaluated relative to the world "
191 "coordinate system"},
196 "The transformation of the target is evaluated relative to a custom object/bone/vertex "
203 "The transformation of the target is only evaluated in the Pose Space, "
204 "the target armature object transformation is ignored"},
209 "The transformation of the target bone is evaluated relative to its rest pose "
210 "local coordinate system, thus including the parent-induced transformation"},
215 "The transformation of the target is evaluated relative to its local "
216 "coordinate system"},
218 "LOCAL_OWNER_ORIENT",
220 "Local Space (Owner Orientation)",
221 "The transformation of the target bone is evaluated relative to its local coordinate "
222 "system, followed by a correction for the difference in target and owner rest pose "
223 "orientations. When applied as local transform to the owner produces the same global "
224 "motion as the target if the parents are still in rest pose"},
233 "The constraint is applied relative to the world coordinate system"},
238 "The constraint is applied in local space of a custom object/bone/vertex group"},
244 "The constraint is applied in Pose Space, the object transformation is ignored"},
249 "The constraint is applied relative to the rest pose local coordinate system "
250 "of the bone, thus including the parent-induced transformation"},
255 "The constraint is applied relative to the local coordinate system of the object"},
260 {
TRACK_X,
"TRACK_X", 0,
"X",
""},
261 {
TRACK_Y,
"TRACK_Y", 0,
"Y",
""},
262 {
TRACK_Z,
"TRACK_Z", 0,
"Z",
""},
263 {
TRACK_nX,
"TRACK_NEGATIVE_X", 0,
"-X",
""},
264 {
TRACK_nY,
"TRACK_NEGATIVE_Y", 0,
"-Y",
""},
265 {
TRACK_nZ,
"TRACK_NEGATIVE_Z", 0,
"-Z",
""},
287 "The transformation of the target is evaluated relative to the world coordinate system"},
292 "The transformation of the target is evaluated relative to a custom object/bone/vertex "
298 "The transformation of the target is evaluated relative to its local coordinate system"},
319 return &RNA_ChildOfConstraint;
321 return &RNA_TrackToConstraint;
323 return &RNA_KinematicConstraint;
325 return &RNA_FollowPathConstraint;
327 return &RNA_CopyRotationConstraint;
329 return &RNA_CopyLocationConstraint;
331 return &RNA_CopyScaleConstraint;
333 return &RNA_MaintainVolumeConstraint;
335 return &RNA_PythonConstraint;
337 return &RNA_ArmatureConstraint;
339 return &RNA_ActionConstraint;
341 return &RNA_LockedTrackConstraint;
343 return &RNA_StretchToConstraint;
345 return &RNA_FloorConstraint;
347 return &RNA_ClampToConstraint;
349 return &RNA_TransformConstraint;
351 return &RNA_LimitRotationConstraint;
353 return &RNA_LimitLocationConstraint;
355 return &RNA_LimitScaleConstraint;
357 return &RNA_LimitDistanceConstraint;
359 return &RNA_ShrinkwrapConstraint;
361 return &RNA_DampedTrackConstraint;
363 return &RNA_SplineIKConstraint;
365 return &RNA_CopyTransformsConstraint;
367 return &RNA_PivotConstraint;
369 return &RNA_FollowTrackConstraint;
371 return &RNA_CameraSolverConstraint;
373 return &RNA_ObjectSolverConstraint;
375 return &RNA_TransformCacheConstraint;
377 return &RNA_UnknownType;
381 static void rna_ConstraintTargetBone_target_set(
PointerRNA *
ptr,
394 static void rna_Constraint_name_set(
PointerRNA *
ptr,
const char *value)
397 char oldname[
sizeof(con->
name)];
426 printf(
"%s: internal error, constraint '%s' not found in object '%s'\n",
433 char name_esc_pchan[
sizeof(pchan->
name) * 2];
434 char name_esc_const[
sizeof(con->
name) * 2];
437 return BLI_sprintfN(
"pose.bones[\"%s\"].constraints[\"%s\"]", name_esc_pchan, name_esc_const);
440 char name_esc_const[
sizeof(con->
name) * 2];
442 return BLI_sprintfN(
"constraints[\"%s\"]", name_esc_const);
451 return rna_Constraint_do_compute_path(ob, con);
462 static char *rna_ConstraintTarget_path(
const PointerRNA *
ptr)
481 char *con_path = rna_Constraint_do_compute_path(ob, con);
488 printf(
"%s: internal error, constraint '%s' of object '%s' does not contain the target\n",
512 static void rna_ConstraintTarget_dependency_update(
Main *bmain,
528 rna_Constraint_update(bmain,
scene,
ptr);
532 static void rna_Constraint_childof_inverse_matrix_update(
Main *bmain,
539 rna_Constraint_update(bmain,
scene,
ptr);
542 static void rna_Constraint_ik_type_set(
struct PointerRNA *
ptr,
int value)
547 if (ikdata->
type != value) {
556 ikdata->
type = value;
561 static bool rna_Constraint_RotLike_use_offset_get(
struct PointerRNA *
ptr)
568 static void rna_Constraint_RotLike_use_offset_set(
struct PointerRNA *
ptr,
bool value)
573 if (curval != value) {
591 return space_object_items;
605 for (ct = targets.first; ct; ct = ct->
next) {
618 return space_object_items;
633 static void rna_ArmatureConstraint_target_remove(
649 static void rna_ArmatureConstraint_target_clear(
ID *
id,
bConstraint *con,
Main *bmain)
658 static void rna_ActionConstraint_mix_mode_set(
PointerRNA *
ptr,
int value)
663 acon->mix_mode = value;
675 static void rna_ActionConstraint_minmax_range(
682 if (
ELEM(acon->type, 0, 1, 2)) {
692 static int rna_SplineIKConstraint_joint_bindings_get_length(
const PointerRNA *
ptr,
699 length[0] = ikData->numpoints;
708 static void rna_SplineIKConstraint_joint_bindings_get(
PointerRNA *
ptr,
float *values)
713 memcpy(values, ikData->points, ikData->numpoints *
sizeof(
float));
716 static void rna_SplineIKConstraint_joint_bindings_set(
PointerRNA *
ptr,
const float *values)
721 memcpy(ikData->points, values, ikData->numpoints *
sizeof(
float));
724 static int rna_ShrinkwrapConstraint_face_cull_get(
PointerRNA *
ptr)
731 static void rna_ShrinkwrapConstraint_face_cull_set(
struct PointerRNA *
ptr,
int value)
751 static void rna_Constraint_followTrack_camera_set(
PointerRNA *
ptr,
770 static void rna_Constraint_followTrack_depthObject_set(
PointerRNA *
ptr,
802 static void rna_Constraint_objectSolver_camera_set(
PointerRNA *
ptr,
828 "The object is constrained inside a virtual sphere around the target object, "
829 "with a radius defined by the limit distance"},
834 "The object is constrained outside a virtual sphere around the target object, "
835 "with a radius defined by the limit distance"},
837 "LIMITDIST_ONSURFACE",
840 "The object is constrained on the surface of a virtual sphere around the target object, "
841 "with a radius defined by the limit distance"},
860 "Follow shape of B-Bone segments when calculating Head/Tail position");
923 srna,
"Constraint Target Bone",
"Target bone for multi-target constraints");
933 prop,
NULL,
"rna_ConstraintTargetBone_target_set",
NULL,
"rna_Armature_object_poll");
960 srna,
"Child Of Constraint",
"Create constraint-based parent-child relationship");
1016 prop,
"Set Inverse Pending",
"Set to true to request recalculation of the inverse matrix");
1059 prop,
"Use Targets",
"Use the targets indicated in the constraint panel");
1080 srna,
"Armature Deform Constraint Targets",
"Collection of target bones and weights");
1086 parm =
RNA_def_pointer(func,
"target",
"ConstraintTargetBone",
"",
"New target bone");
1089 func =
RNA_def_function(srna,
"remove",
"rna_ArmatureConstraint_target_remove");
1092 parm =
RNA_def_pointer(func,
"target",
"ConstraintTargetBone",
"",
"Target to remove");
1096 func =
RNA_def_function(srna,
"clear",
"rna_ArmatureConstraint_target_clear");
1108 srna,
"Armature Constraint",
"Applies transformations done by the Armature modifier");
1123 prop,
"Preserve Volume",
"Deform rotation interpolation with quaternions");
1131 "Multiply weights by envelope for all bones, instead of acting like Vertex Group based "
1133 "The specified weights are still used, and only the listed bones are considered");
1139 "Use Current Location",
1140 "Use the current bone location for envelopes and choosing B-Bone "
1141 "segments instead of rest position");
1153 {0,
"BONE", 0,
"Bone",
""},
1164 srna =
RNA_def_struct(brna,
"KinematicConstraint",
"Constraint");
1199 prop,
"Weight",
"For Tree-IK: Weight of position control for this target");
1205 prop,
"Orientation Weight",
"For Tree-IK: Weight of orientation control for this target");
1215 prop,
"Chain Length",
"How many bones are included in the IK effect - 0 uses all bones");
1227 prop,
"Axis Reference",
"Constraint axis Lock options relative to Bone or Target reference");
1286 prop,
"Limit Mode",
"Distances in relation to sphere of influence to allow");
1304 {
TRACK_X,
"UP_X", 0,
"X",
""},
1305 {
TRACK_Y,
"UP_Y", 0,
"Y",
""},
1306 {
TRACK_Z,
"UP_Z", 0,
"Z",
""},
1312 srna,
"Track To Constraint",
"Aim the constrained object toward the target");
1339 prop,
"Target Z",
"Target's Z axis, not World Z axis, will constraint the Up direction");
1350 srna =
RNA_def_struct(brna,
"CopyLocationConstraint",
"Constraint");
1406 {
ROTLIKE_MIX_REPLACE,
"REPLACE", 0,
"Replace",
"Replace the original rotation with copied"},
1407 {
ROTLIKE_MIX_ADD,
"ADD", 0,
"Add",
"Add euler component values together"},
1412 "Apply copied rotation before original, as if the constraint target is a parent"},
1417 "Apply copied rotation after original, as if the constraint target is a child"},
1422 "Combine rotations like the original Offset checkbox. Does not work well for "
1423 "multiple axis rotations"},
1427 srna =
RNA_def_struct(brna,
"CopyRotationConstraint",
"Constraint");
1476 prop,
"Mix Mode",
"Specify how the copied and existing rotations are combined");
1482 prop,
"rna_Constraint_RotLike_use_offset_get",
"rna_Constraint_RotLike_use_offset_set");
1484 prop,
"Offset",
"DEPRECATED: Add original rotation into copied rotation");
1495 srna =
RNA_def_struct(brna,
"CopyScaleConstraint",
"Constraint");
1530 "Redistribute the copied change in volume equally "
1531 "between the three axes of the owner");
1544 "Use addition instead of multiplication to combine scale (2.7 compatibility)");
1567 "Volume is strictly preserved, overriding the scaling of non-free axes"},
1572 "Volume is preserved when the object is scaled uniformly. "
1573 "Deviations from uniform scale on non-free axes are passed through"},
1578 "Volume is preserved when the object is scaled only on the free axis. "
1579 "Non-free axis scaling is passed through"},
1583 srna =
RNA_def_struct(brna,
"MaintainVolumeConstraint",
"Constraint");
1585 "Maintain Volume Constraint",
1586 "Maintain a constant volume along a single scaling axis");
1602 prop,
"Mode",
"The way the constraint treats original non-free axis scaling");
1623 "Replace the original transformation with copied"},
1628 "Before Original (Full)",
1629 "Apply copied transformation before original, using simple matrix multiplication as if "
1630 "the constraint target is a parent in Full Inherit Scale mode. "
1631 "Will create shear when combining rotation and non-uniform scale"},
1635 "Before Original (Aligned)",
1636 "Apply copied transformation before original, as if the constraint target is a parent in "
1637 "Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels "
1638 "for rotation and scale"},
1642 "Before Original (Split Channels)",
1643 "Apply copied transformation before original, handling location, rotation and scale "
1644 "separately, similar to a sequence of three Copy constraints"},
1649 "After Original (Full)",
1650 "Apply copied transformation after original, using simple matrix multiplication as if "
1651 "the constraint target is a child in Full Inherit Scale mode. "
1652 "Will create shear when combining rotation and non-uniform scale"},
1656 "After Original (Aligned)",
1657 "Apply copied transformation after original, as if the constraint target is a child in "
1658 "Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels "
1659 "for rotation and scale"},
1663 "After Original (Split Channels)",
1664 "Apply copied transformation after original, handling location, rotation and scale "
1665 "separately, similar to a sequence of three Copy constraints"},
1669 srna =
RNA_def_struct(brna,
"CopyTransformsConstraint",
"Constraint");
1671 srna,
"Copy Transforms Constraint",
"Copy all the transforms of the target");
1686 prop,
"Remove Target Shear",
"Remove shear from the target transformation before combining");
1693 prop,
"Mix Mode",
"Specify how the copied and existing transformations are combined");
1705 {
TRACK_X,
"FLOOR_X", 0,
"X",
""},
1706 {
TRACK_Y,
"FLOOR_Y", 0,
"Y",
""},
1707 {
TRACK_Z,
"FLOOR_Z", 0,
"Z",
""},
1708 {
TRACK_nX,
"FLOOR_NEGATIVE_X", 0,
"-X",
""},
1709 {
TRACK_nY,
"FLOOR_NEGATIVE_Y", 0,
"-Y",
""},
1710 {
TRACK_nZ,
"FLOOR_NEGATIVE_Z", 0,
"-Z",
""},
1716 srna,
"Floor Constraint",
"Use the target object for location limitation");
1728 prop,
"Floor Location",
"Location of target that object will not pass through");
1750 {20,
"LOCATION_X", 0,
"X Location",
""},
1751 {21,
"LOCATION_Y", 0,
"Y Location",
""},
1752 {22,
"LOCATION_Z", 0,
"Z Location",
""},
1753 {00,
"ROTATION_X", 0,
"X Rotation",
""},
1754 {01,
"ROTATION_Y", 0,
"Y Rotation",
""},
1755 {02,
"ROTATION_Z", 0,
"Z Rotation",
""},
1756 {10,
"SCALE_X", 0,
"X Scale",
""},
1757 {11,
"SCALE_Y", 0,
"Y Scale",
""},
1758 {12,
"SCALE_Z", 0,
"Z Scale",
""},
1766 "Before Original (Full)",
1767 "Apply the action channels before the original transformation, as if applied to an "
1768 "imaginary parent in Full Inherit Scale mode. Will create shear when combining rotation "
1769 "and non-uniform scale"},
1773 "Before Original (Aligned)",
1774 "Apply the action channels before the original transformation, as if applied to an "
1775 "imaginary parent in Aligned Inherit Scale mode. This effectively uses Full for location "
1776 "and Split Channels for rotation and scale"},
1780 "Before Original (Split Channels)",
1781 "Apply the action channels before the original transformation, handling location, rotation "
1782 "and scale separately"},
1787 "After Original (Full)",
1788 "Apply the action channels after the original transformation, as if applied to an "
1789 "imaginary child in Full Inherit Scale mode. Will create shear when combining rotation "
1790 "and non-uniform scale"},
1794 "After Original (Aligned)",
1795 "Apply the action channels after the original transformation, as if applied to an "
1796 "imaginary child in Aligned Inherit Scale mode. This effectively uses Full for location "
1797 "and Split Channels for rotation and scale"},
1801 "After Original (Split Channels)",
1802 "Apply the action channels after the original transformation, handling location, rotation "
1803 "and scale separately"},
1809 srna,
"Action Constraint",
"Map an action to the transform axes of a bone");
1824 "Specify how existing transformations and the action channels are combined");
1832 "Transform Channel",
1833 "Transformation channel from the target that is used to key the Action");
1847 "Bones only: apply the object's transformation channels of the action "
1848 "to the constrained bone, instead of bone's channels");
1881 prop,
"Evaluation Time",
"Interpolates between Action Start and End frames");
1887 "Use Evaluation Time",
1888 "Interpolate between Action Start and End frames, with the Evaluation "
1889 "Time slider instead of the Target object/bone");
1901 {
TRACK_X,
"LOCK_X", 0,
"X",
""},
1902 {
TRACK_Y,
"LOCK_Y", 0,
"Y",
""},
1903 {
TRACK_Z,
"LOCK_Z", 0,
"Z",
""},
1907 srna =
RNA_def_struct(brna,
"LockedTrackConstraint",
"Constraint");
1910 "Locked Track Constraint",
1911 "Point toward the target along the track axis, while locking the other axis");
1943 {
TRACK_X,
"FORWARD_X", 0,
"X",
""},
1944 {
TRACK_Y,
"FORWARD_Y", 0,
"Y",
""},
1945 {
TRACK_Z,
"FORWARD_Z", 0,
"Z",
""},
1946 {
TRACK_nX,
"TRACK_NEGATIVE_X", 0,
"-X",
""},
1947 {
TRACK_nY,
"TRACK_NEGATIVE_Y", 0,
"-Y",
""},
1948 {
TRACK_nZ,
"TRACK_NEGATIVE_Z", 0,
"-Z",
""},
1953 {
TRACK_X,
"UP_X", 0,
"X",
""},
1954 {
TRACK_Y,
"UP_Y", 0,
"Y",
""},
1955 {
TRACK_Z,
"UP_Z", 0,
"Z",
""},
1959 srna =
RNA_def_struct(brna,
"FollowPathConstraint",
"Constraint");
1976 prop,
"Offset",
"Offset from the position corresponding to the time frame");
1984 prop,
"Offset Factor",
"Percentage value defining target position along length of curve");
2002 prop,
"Follow Curve",
"Object will follow the heading and banking of the curve");
2010 "Object will stay locked to a single point somewhere along the length of the curve "
2011 "regardless of time");
2029 {
VOLUME_X,
"VOLUME_X", 0,
"X",
""},
2030 {
VOLUME_Z,
"VOLUME_Z", 0,
"Z",
""},
2031 {
NO_VOLUME,
"NO_VOLUME", 0,
"None",
""},
2036 {
PLANE_X,
"PLANE_X", 0,
"XZ",
"Rotate around local X, then Z"},
2037 {
PLANE_Z,
"PLANE_Z", 0,
"ZX",
"Rotate around local Z, then X"},
2042 "Use the smallest single axis rotation, similar to Damped Track"},
2046 srna =
RNA_def_struct(brna,
"StretchToConstraint",
"Constraint");
2062 prop,
"Maintain Volume",
"Maintain the object's volume as it stretches");
2081 prop,
"Volume Variation",
"Factor between volume variation and stretching");
2087 prop,
"Use Volume Variation Minimum",
"Use lower limit for volume variation");
2093 prop,
"Use Volume Variation Maximum",
"Use upper limit for volume variation");
2109 prop,
"Volume Variation Smoothness",
"Strength of volume stretching clamping");
2131 "Clamp To Constraint",
2132 "Constrain an object's location to the nearest point along the target path");
2154 prop,
"Cyclic",
"Treat curve as cyclic curve (no clamping to curve bounding box)");
2185 "Apply new rotation before original, as if it was on a parent"},
2190 "Apply new rotation after original, as if it was on a child"},
2200 srna =
RNA_def_struct(brna,
"TransformConstraint",
"Constraint");
2202 srna,
"Transformation Constraint",
"Map transformations of the target to the object");
2220 prop,
"Map To",
"The transformation type to affect of the constrained object");
2227 prop,
"Map To X From",
"The source axis constrained object's X axis uses");
2234 prop,
"Map To Y From",
"The source axis constrained object's Y axis uses");
2241 prop,
"Map To Z From",
"The source axis constrained object's Z axis uses");
2338 prop,
"Location Mix Mode",
"Specify how to combine the new location with original");
2418 prop,
"Rotation Mix Mode",
"Specify how to combine the new rotation with original");
2498 prop,
"Scale Mix Mode",
"Specify how to combine the new scale with original");
2509 srna =
RNA_def_struct(brna,
"LimitLocationConstraint",
"Constraint");
2511 srna,
"Limit Location Constraint",
"Limit the location of the constrained object");
2586 prop,
"Affect Transform",
"Transform tools are affected by this constraint as well");
2597 srna =
RNA_def_struct(brna,
"LimitRotationConstraint",
"Constraint");
2599 srna,
"Limit Rotation Constraint",
"Limit the rotation of the constrained object");
2665 prop,
"Affect Transform",
"Transform tools are affected by this constraint as well");
2676 srna =
RNA_def_struct(brna,
"LimitScaleConstraint",
"Constraint");
2678 srna,
"Limit Size Constraint",
"Limit the scaling of the constrained object");
2753 prop,
"Affect Transform",
"Transform tools are affected by this constraint as well");
2764 srna =
RNA_def_struct(brna,
"LimitDistanceConstraint",
"Constraint");
2766 srna,
"Limit Distance Constraint",
"Limit the distance from target object");
2787 prop,
"Limit Mode",
"Distances in relation to sphere of influence to allow");
2793 prop,
"Affect Transform",
"Transforms are affected by this constraint as well");
2808 "Nearest Surface Point",
2809 "Shrink the location to the nearest target surface"},
2814 "Shrink the location to the nearest target surface along a given axis"},
2819 "Shrink the location to the nearest target vertex"},
2823 "Target Normal Project",
2824 "Shrink the location to the nearest target surface "
2825 "along the interpolated vertex normals of the target"},
2830 {0,
"OFF", 0,
"Off",
"No culling"},
2835 "No projection when in front of the face"},
2840 "No projection when behind the face"},
2844 srna =
RNA_def_struct(brna,
"ShrinkwrapConstraint",
"Constraint");
2846 srna,
"Shrinkwrap Constraint",
"Create constraint-based shrinkwrap relationship");
2863 prop,
"Shrinkwrap Type",
"Select type of shrinkwrap algorithm for target position");
2870 prop,
"Snap Mode",
"Select how to constrain the object to the target surface");
2897 prop,
"Project Distance",
"Limit the distance used for projection (zero disables)");
2903 prop,
"Project Opposite",
"Project in both specified and opposite directions");
2910 "rna_ShrinkwrapConstraint_face_cull_get",
2911 "rna_ShrinkwrapConstraint_face_cull_set",
2916 "Stop vertices from projecting to a face on the target when facing towards/away");
2922 prop,
"Invert Cull",
"When projecting in the opposite direction invert the face cull mode");
2928 prop,
"Align Axis To Normal",
"Align the specified axis to the surface normal");
2945 srna =
RNA_def_struct(brna,
"DampedTrackConstraint",
"Constraint");
2947 srna,
"Damped Track Constraint",
"Point toward target by taking the shortest rotation path");
2978 "Use the original scaling of the bones"},
2983 "Scale of the X and Z axes is the inverse of the Y-Scale"},
2987 "Volume Preservation",
2988 "Scale of the X and Z axes are adjusted to preserve the volume of the bones"},
2998 "Scale the bones to fit the entire length of the curve"},
3003 "Use the original Y scale of the bone"},
3040 "rna_SplineIKConstraint_joint_bindings_get",
3041 "rna_SplineIKConstraint_joint_bindings_set",
3046 "(EXPERIENCED USERS ONLY) The relative positions of the joints along the chain, "
3054 prop,
"Chain Offset",
"Offset the entire chain relative to the root joint");
3061 "Ignore the relative lengths of the bones when fitting to the curve");
3069 "Average radius of the endpoints is used to tweak the X and Z Scaling of the bones, "
3070 "on top of XZ Scale mode");
3080 "Method used for determining the scaling of the X and Z axes of the bones");
3089 "Method used for determining the scaling of the Y axis of the bones, "
3090 "on top of the shape and scaling of the curve itself");
3097 prop,
"Use Original Scale",
"Apply volume preservation over the original scaling");
3104 prop,
"Volume Variation",
"Factor between volume variation and stretching");
3110 prop,
"Use Volume Variation Minimum",
"Use lower limit for volume variation");
3116 prop,
"Use Volume Variation Maximum",
"Use upper limit for volume variation");
3132 prop,
"Volume Variation Smoothness",
"Strength of volume stretching clamping");
3144 {
PIVOTCON_AXIS_NONE,
"ALWAYS_ACTIVE", 0,
"Always",
"Use the pivot point in every rotation"},
3149 "Use the pivot point in the negative rotation range around the X-axis"},
3154 "Use the pivot point in the negative rotation range around the Y-axis"},
3159 "Use the pivot point in the negative rotation range around the Z-axis"},
3164 "Use the pivot point in the positive rotation range around the X-axis"},
3169 "Use the pivot point in the positive rotation range around the Y-axis"},
3174 "Use the pivot point in the positive rotation range around the Z-axis"},
3193 prop,
"Target",
"Target Object, defining the position of the pivot when defined");
3207 "Use Relative Offset",
3208 "Offset will be an absolute point in space instead of relative to the target");
3215 "Offset of pivot from target (when set), or from owner's location "
3216 "(when Fixed Position is off), or the absolute pivot point");
3224 prop,
"Enabled Rotation Range",
"Rotation range on which pivoting should occur");
3242 srna =
RNA_def_struct(brna,
"FollowTrackConstraint",
"Constraint");
3244 srna,
"Follow Track Constraint",
"Lock motion to the target motion track");
3279 prop,
"Object",
"Movie tracking object to follow (if empty, camera object is used)");
3286 prop,
"Camera",
"Camera to which motion is parented (if empty active scene camera is used)");
3291 "rna_Constraint_followTrack_camera_set",
3293 "rna_Constraint_cameraObject_poll");
3301 "Object used to define depth in camera space by projecting onto surface of this object");
3306 "rna_Constraint_followTrack_depthObject_set",
3308 "rna_Constraint_followTrack_depthObject_poll");
3331 srna =
RNA_def_struct(brna,
"CameraSolverConstraint",
"Constraint");
3333 srna,
"Camera Solver Constraint",
"Lock motion to the reconstructed camera movement");
3360 srna =
RNA_def_struct(brna,
"ObjectSolverConstraint",
"Constraint");
3362 srna,
"Object Solver Constraint",
"Lock motion to the reconstructed object movement");
3384 prop,
"Set Inverse Pending",
"Set to true to request recalculation of the inverse matrix");
3397 prop,
"Camera",
"Camera to which motion is parented (if empty active scene camera is used)");
3402 "rna_Constraint_objectSolver_camera_set",
3404 "rna_Constraint_cameraObject_poll");
3414 srna =
RNA_def_struct(brna,
"TransformCacheConstraint",
"Constraint");
3416 srna,
"Transform Cache Constraint",
"Look up transformation from an external file");
3433 "Path to the object in the Alembic archive used to lookup the transform matrix");
3449 srna,
"Constraint",
"Constraint modifying the transformation of objects and bones");
3472 "Override Constraint",
3473 "In a local override object, whether this constraint comes from the "
3474 "linked reference object, or is local to the override");
3542 prop,
"Influence",
"Amount of influence constraint will have on the final solution");
3552 "Amount of residual error in Blender space unit for constraints that work on position");
3560 "Amount of residual error in radians for constraints that work on orientation");
Blender kernel action and pose functionality.
void BKE_animdata_fix_paths_rename_all(struct ID *ref_id, const char *prefix, const char *oldName, const char *newName)
void BKE_constraint_targets_flush(struct bConstraint *con, struct ListBase *targets, bool no_copy)
int BKE_constraint_targets_get(struct bConstraint *con, struct ListBase *r_targets)
struct bConstraint * BKE_constraint_find_from_target(struct Object *ob, struct bConstraintTarget *tgt, struct bPoseChannel **r_pchan)
void BKE_constraint_unique_name(struct bConstraint *con, struct ListBase *list)
void id_lib_extern(struct ID *id)
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
@ CONSTRAINT_OVERRIDE_LIBRARY_LOCAL
@ CONSTRAINT_IK_TARGETAXIS
@ CONSTRAINT_TAR_CUSTOM_SPACE
@ CONSTRAINT_TYPE_TRACKTO
@ CONSTRAINT_TYPE_CHILDOF
@ CONSTRAINT_TYPE_TRANSFORM
@ CONSTRAINT_TYPE_FOLLOWTRACK
@ CONSTRAINT_TYPE_OBJECTSOLVER
@ CONSTRAINT_TYPE_ARMATURE
@ CONSTRAINT_TYPE_LOCLIKE
@ CONSTRAINT_TYPE_SHRINKWRAP
@ CONSTRAINT_TYPE_ROTLIMIT
@ CONSTRAINT_TYPE_CAMERASOLVER
@ CONSTRAINT_TYPE_ROTLIKE
@ CONSTRAINT_TYPE_SPLINEIK
@ CONSTRAINT_TYPE_KINEMATIC
@ CONSTRAINT_TYPE_DISTLIMIT
@ CONSTRAINT_TYPE_TRANSLIKE
@ CONSTRAINT_TYPE_LOCLIMIT
@ CONSTRAINT_TYPE_CLAMPTO
@ CONSTRAINT_TYPE_LOCKTRACK
@ CONSTRAINT_TYPE_SIZELIMIT
@ CONSTRAINT_TYPE_FOLLOWPATH
@ CONSTRAINT_TYPE_STRETCHTO
@ CONSTRAINT_TYPE_SIZELIKE
@ CONSTRAINT_TYPE_SAMEVOL
@ CONSTRAINT_TYPE_DAMPTRACK
@ CONSTRAINT_TYPE_TRANSFORM_CACHE
@ CONSTRAINT_ARMATURE_QUATERNION
@ CONSTRAINT_ARMATURE_ENVELOPE
@ CONSTRAINT_ARMATURE_CUR_LOCATION
@ CAMERASOLVER_ACTIVECLIP
@ FOLLOWTRACK_USE_UNDISTORTION
@ FOLLOWTRACK_USE_3D_POSITION
@ ACTCON_BONE_USE_OBJECT_ACTION
#define CON_SHRINKWRAP_PROJECT_CULL_MASK
@ TRANS_MIXSCALE_MULTIPLY
@ CONSTRAINT_SPLINEIK_YS_NONE
@ CONSTRAINT_SPLINEIK_YS_FIT_CURVE
@ CONSTRAINT_SPLINEIK_YS_ORIGINAL
@ CONSTRAINT_SPACE_CUSTOM
@ CONSTRAINT_SPACE_OWNLOCAL
@ CONSTRAINT_SPACE_PARLOCAL
@ ACTCON_MIX_BEFORE_SPLIT
@ CONSTRAINT_SPLINEIK_EVENSPLITS
@ CONSTRAINT_SPLINEIK_USE_BULGE_MAX
@ CONSTRAINT_SPLINEIK_USE_ORIGINAL_SCALE
@ CONSTRAINT_SPLINEIK_USE_BULGE_MIN
@ CONSTRAINT_SPLINEIK_NO_CURVERAD
@ CONSTRAINT_SPLINEIK_NO_ROOT
@ TRANSLIKE_MIX_AFTER_FULL
@ TRANSLIKE_MIX_BEFORE_SPLIT
@ TRANSLIKE_MIX_BEFORE_FULL
@ TRANSLIKE_MIX_AFTER_SPLIT
@ OBJECTSOLVER_SET_INVERSE
@ CON_SHRINKWRAP_PROJECT_INVERT_CULL
@ CON_SHRINKWRAP_PROJECT_OPPOSITE
@ CON_SHRINKWRAP_PROJECT_CULL_FRONTFACE
@ CON_SHRINKWRAP_PROJECT_CULL_BACKFACE
@ CON_SHRINKWRAP_TRACK_NORMAL
@ PIVOTCON_FLAG_OFFSET_ABS
@ TRANSLIKE_REMOVE_TARGET_SHEAR
@ STRETCHTOCON_USE_BULGE_MAX
@ STRETCHTOCON_USE_BULGE_MIN
@ CONSTRAINT_SPLINEIK_XZS_VOLUMETRIC
@ CONSTRAINT_SPLINEIK_XZS_ORIGINAL
@ CONSTRAINT_SPLINEIK_XZS_NONE
@ CONSTRAINT_SPLINEIK_XZS_INVERSE
@ FOLLOWTRACK_FRAME_STRETCH
@ MOD_SHRINKWRAP_TARGET_PROJECT
@ MOD_SHRINKWRAP_NEAREST_VERTEX
@ MOD_SHRINKWRAP_NEAREST_SURFACE
Object is a sort of wrapper for general info.
struct ListBase * ED_object_constraint_list_from_constraint(struct Object *ob, struct bConstraint *con, struct bPoseChannel **r_pchan)
void ED_object_constraint_tag_update(struct Main *bmain, struct Object *ob, struct bConstraint *con)
void ED_object_constraint_dependency_tag_update(struct Main *bmain, struct Object *ob, struct bConstraint *con)
Read Guarded memory(de)allocation.
#define RNA_MAX_ARRAY_DIMENSION
#define RNA_ENUM_ITEM_SEPR
#define RNA_TRANSLATION_PREC_DEFAULT
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
#define RNA_ENUM_ITEM_HEADING(name, description)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
T length(const vec_base< T, Size > &a)
static const EnumPropertyItem mode_items[]
static void rna_def_constraint_rotate_like(BlenderRNA *brna)
static void rna_def_constraint_same_volume(BlenderRNA *brna)
static const EnumPropertyItem constraint_distance_items[]
static void rna_def_constraint_location_limit(BlenderRNA *brna)
static const EnumPropertyItem owner_space_pchan_items[]
static void rna_def_constraint_stretch_to(BlenderRNA *brna)
static void rna_def_constraint_follow_track(BlenderRNA *brna)
static void rna_def_constraint_size_limit(BlenderRNA *brna)
static void rna_def_constraint_python(BlenderRNA *brna)
static void rna_def_constraint_object_solver(BlenderRNA *brna)
static void rna_def_constraint_track_to(BlenderRNA *brna)
static void rna_def_constraint_transform(BlenderRNA *brna)
static void rna_def_constraint_locate_like(BlenderRNA *brna)
static void rna_def_constraint_rotation_limit(BlenderRNA *brna)
static void rna_def_constraint_headtail_common(StructRNA *srna)
static void rna_def_constrainttarget(BlenderRNA *brna)
static void rna_def_constraint_distance_limit(BlenderRNA *brna)
static void rna_def_constraint_transform_like(BlenderRNA *brna)
static void rna_def_constraint_kinematic(BlenderRNA *brna)
static const EnumPropertyItem target_space_pchan_items[]
static void rna_def_constraint_shrinkwrap(BlenderRNA *brna)
static void rna_def_constraint_target_common(StructRNA *srna)
static void rna_def_constraint_follow_path(BlenderRNA *brna)
static void rna_def_constraint_action(BlenderRNA *brna)
static void rna_def_constraint_childof(BlenderRNA *brna)
static void rna_def_constraint_locked_track(BlenderRNA *brna)
static void rna_def_constraint_damped_track(BlenderRNA *brna)
static void rna_def_constraint_minmax(BlenderRNA *brna)
static void rna_def_constraint_size_like(BlenderRNA *brna)
static void rna_def_constraint_spline_ik(BlenderRNA *brna)
static void rna_def_constrainttarget_bone(BlenderRNA *brna)
static void rna_def_constraint_armature_deform_targets(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_def_constraint(BlenderRNA *brna)
static void rna_def_constraint_clamp_to(BlenderRNA *brna)
static const EnumPropertyItem euler_order_items[]
static void rna_def_constraint_pivot(BlenderRNA *brna)
static const EnumPropertyItem track_axis_items[]
static void rna_def_constraint_armature_deform(BlenderRNA *brna)
static void rna_def_constraint_camera_solver(BlenderRNA *brna)
const EnumPropertyItem rna_enum_constraint_type_items[]
static void rna_def_constraint_transform_cache(BlenderRNA *brna)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_define_lib_overridable(const bool make_overridable)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname, const char *propname)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
const int rna_matrix_dimsize_4x4[]
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
const EnumPropertyItem rna_enum_driver_target_rotation_mode_items[]
const EnumPropertyItem rna_enum_axis_xyz_items[]
const EnumPropertyItem rna_enum_modifier_shrinkwrap_mode_items[]
const EnumPropertyItem rna_enum_object_axis_items[]
struct bConstraintTarget * next