40 "Copy the location of a target (with an optional offset), so that they move together"},
45 "Copy the rotation of a target (with an optional offset), so that they rotate together"},
50 "Copy the scale factors of a target (with an optional offset), so that they are scaled by "
56 "Copy all the transformations of a target, so that they move together"},
61 "Restrict movements to within a certain distance of a target (at the time of constraint "
67 "Restrict movement along each axis within given ranges"},
72 "Restrict rotation along each axis within given ranges"},
77 "Restrict scaling along each axis with given ranges"},
82 "Compensate for scaling one axis by applying suitable scaling to the other two axes"},
87 "Use one transform property from target to control another (or same) property on owner"},
90 ICON_CON_TRANSFORM_CACHE,
92 "Look up the transformation matrix from an external file"},
99 "Restrict movements to lie along a curve by remapping location along curve's longest axis"},
104 "Point towards a target by performing the smallest rotation necessary"},
108 "Inverse Kinematics",
109 "Control a chain of bones by specifying the endpoint target (Bones only)"},
114 "Rotate around the specified ('locked') axis to point towards a target"},
119 "Align chain of bones along a curve (Bones only)"},
124 "Stretch along Y-Axis to point towards a target"},
129 "Legacy tracking constraint prone to twisting artifacts"},
136 "Use transform property of target to look up pose for owner from an Action"},
141 "Apply weight-blended transformation from multiple bones like the Armature modifier"},
146 "Make target the 'detachable' parent of owner"},
151 "Use position (and optionally rotation) of target to define a 'wall' or 'floor' that the "
152 "owner cannot cross"},
157 "Use to animate an object/bone following a path"},
159 "GEOMETRY_ATTRIBUTE",
160 ICON_CON_GEOMETRYATTRIBUTE,
161 "Geometry Attribute",
162 "Retrieve transform from target geometry attribute data"},
167 "Change pivot point for transforms (buggy)"},
172 "Restrict movements to surface of target mesh"},
173 {0,
nullptr, 0,
nullptr,
nullptr},
181 "The transformation of the target is evaluated relative to the world "
182 "coordinate system"},
187 "The transformation of the target is evaluated relative to a custom object/bone/vertex "
194 "The transformation of the target is only evaluated in the Pose Space, "
195 "the target armature object transformation is ignored"},
200 "The transformation of the target bone is evaluated relative to its rest pose "
201 "local coordinate system, thus including the parent-induced transformation"},
206 "The transformation of the target is evaluated relative to its local "
207 "coordinate system"},
209 "LOCAL_OWNER_ORIENT",
211 "Local Space (Owner Orientation)",
212 "The transformation of the target bone is evaluated relative to its local coordinate "
213 "system, followed by a correction for the difference in target and owner rest pose "
214 "orientations. When applied as local transform to the owner produces the same global "
215 "motion as the target if the parents are still in rest pose."},
216 {0,
nullptr, 0,
nullptr,
nullptr},
224 "The constraint is applied relative to the world coordinate system"},
229 "The constraint is applied in local space of a custom object/bone/vertex group"},
235 "The constraint is applied in Pose Space, the object transformation is ignored"},
240 "The constraint is applied relative to the rest pose local coordinate system "
241 "of the bone, thus including the parent-induced transformation"},
246 "The constraint is applied relative to the local coordinate system of the object"},
247 {0,
nullptr, 0,
nullptr,
nullptr},
251 {
TRACK_X,
"TRACK_X", 0,
"X",
""},
252 {
TRACK_Y,
"TRACK_Y", 0,
"Y",
""},
253 {
TRACK_Z,
"TRACK_Z", 0,
"Z",
""},
254 {
TRACK_nX,
"TRACK_NEGATIVE_X", 0,
"-X",
""},
255 {
TRACK_nY,
"TRACK_NEGATIVE_Y", 0,
"-Y",
""},
256 {
TRACK_nZ,
"TRACK_NEGATIVE_Z", 0,
"-Z",
""},
257 {0,
nullptr, 0,
nullptr,
nullptr},
268 {0,
nullptr, 0,
nullptr,
nullptr},
278 "The constraint is applied relative to the world coordinate system"},
283 "The constraint is applied in local space of a custom object/bone/vertex group"},
288 "The constraint is applied relative to the local coordinate system of the object"},
289 {0,
nullptr, 0,
nullptr,
nullptr},
297 "The transformation of the target is evaluated relative to the world coordinate system"},
302 "The transformation of the target is evaluated relative to a custom object/bone/vertex "
308 "The transformation of the target is evaluated relative to its local coordinate system"},
309 {0,
nullptr, 0,
nullptr,
nullptr},
312# include <fmt/format.h>
334 return &RNA_ChildOfConstraint;
336 return &RNA_TrackToConstraint;
338 return &RNA_KinematicConstraint;
340 return &RNA_FollowPathConstraint;
342 return &RNA_CopyRotationConstraint;
344 return &RNA_CopyLocationConstraint;
346 return &RNA_CopyScaleConstraint;
348 return &RNA_MaintainVolumeConstraint;
350 return &RNA_ArmatureConstraint;
352 return &RNA_ActionConstraint;
354 return &RNA_LockedTrackConstraint;
356 return &RNA_StretchToConstraint;
358 return &RNA_FloorConstraint;
360 return &RNA_ClampToConstraint;
362 return &RNA_TransformConstraint;
364 return &RNA_LimitRotationConstraint;
366 return &RNA_LimitLocationConstraint;
368 return &RNA_LimitScaleConstraint;
370 return &RNA_LimitDistanceConstraint;
372 return &RNA_ShrinkwrapConstraint;
374 return &RNA_DampedTrackConstraint;
376 return &RNA_SplineIKConstraint;
378 return &RNA_CopyTransformsConstraint;
380 return &RNA_PivotConstraint;
382 return &RNA_FollowTrackConstraint;
384 return &RNA_CameraSolverConstraint;
386 return &RNA_ObjectSolverConstraint;
388 return &RNA_TransformCacheConstraint;
390 return &RNA_GeometryAttributeConstraint;
392 return &RNA_UnknownType;
396static void rna_ConstraintTargetBone_target_set(
PointerRNA *
ptr,
409static void rna_Constraint_name_set(
PointerRNA *
ptr,
const char *value)
412 char oldname[
sizeof(con->
name)];
435static std::optional<std::string> rna_Constraint_do_compute_path(
Object *ob,
bConstraint *con)
441 printf(
"%s: internal error, constraint '%s' not found in object '%s'\n",
448 char name_esc_pchan[
sizeof(pchan->
name) * 2];
449 char name_esc_const[
sizeof(con->
name) * 2];
452 return fmt::format(
"pose.bones[\"{}\"].constraints[\"{}\"]", name_esc_pchan, name_esc_const);
454 char name_esc_const[
sizeof(con->
name) * 2];
456 return fmt::format(
"constraints[\"{}\"]", name_esc_const);
459static std::optional<std::string> rna_Constraint_path(
const PointerRNA *
ptr)
464 return rna_Constraint_do_compute_path(ob, con);
475static std::optional<std::string> rna_ConstraintTarget_path(
const PointerRNA *
ptr)
482 if (con !=
nullptr) {
491 "{}.targets[{}]", rna_Constraint_do_compute_path(ob, con).value_or(
""), index);
493 printf(
"%s: internal error, constraint '%s' of object '%s' does not contain the target\n",
516 bmain, (
Object *)
ptr->owner_id, rna_constraint_from_target(
ptr));
522 bmain, (
Object *)
ptr->owner_id, rna_constraint_from_target(
ptr));
533 rna_Constraint_update(bmain, scene,
ptr);
537static void rna_Constraint_childof_inverse_matrix_update(
Main *bmain,
544 rna_Constraint_update(bmain, scene,
ptr);
547static void rna_Constraint_ik_type_set(
PointerRNA *
ptr,
int value)
552 if (ikdata->
type != value) {
561 ikdata->
type = value;
566static bool rna_Constraint_RotLike_use_offset_get(
PointerRNA *
ptr)
573static void rna_Constraint_RotLike_use_offset_set(
PointerRNA *
ptr,
bool value)
578 if (curval != value) {
596 return owner_space_object_items;
606 ListBase targets = {
nullptr,
nullptr};
623 return target_space_object_items;
638static void rna_ArmatureConstraint_target_remove(
654static void rna_ArmatureConstraint_target_clear(
ID *
id,
bConstraint *con,
Main *bmain)
663static void rna_ActionConstraint_mix_mode_set(
PointerRNA *
ptr,
int value)
668 acon->mix_mode = value;
680static void rna_ActionConstraint_minmax_range(
687 if (
ELEM(acon->type, 0, 1, 2)) {
703 ID &animated_id = *
ptr->owner_id;
712 BLI_assert_msg(ok,
"Un-assigning an Action from an Action Constraint should always work.");
722 "Could not assign action %s to Action Constraint %s",
762static void rna_ActionConstraint_action_slot_handle_set(
768 rna_generic_action_slot_handle_set(new_slot_handle,
780static void rna_ActionConstraint_action_slot_handle_override_diff(
789 rna_generic_action_slot_handle_override_diff(bmain, rnadiff_ctx, act_con_a->
act, act_con_b->
act);
800static void rna_ActionConstraint_action_slot_set(
PointerRNA *
ptr,
807 rna_generic_action_slot_set(value,
810 acon->action_slot_handle,
811 acon->last_slot_identifier,
815static void rna_iterator_ActionConstraint_action_suitable_slots_begin(
821 rna_iterator_generic_action_suitable_slots_begin(iter,
ptr, acon->act);
824static int rna_SplineIKConstraint_joint_bindings_get_length(
const PointerRNA *
ptr,
831 length[0] = ikData->numpoints;
840static void rna_SplineIKConstraint_joint_bindings_get(
PointerRNA *
ptr,
float *values)
845 memcpy(values, ikData->points, ikData->numpoints *
sizeof(
float));
848static void rna_SplineIKConstraint_joint_bindings_set(
PointerRNA *
ptr,
const float *values)
853 memcpy(ikData->points, values, ikData->numpoints *
sizeof(
float));
856static int rna_ShrinkwrapConstraint_face_cull_get(
PointerRNA *
ptr)
863static void rna_ShrinkwrapConstraint_face_cull_set(
PointerRNA *
ptr,
int value)
883static void rna_Constraint_followTrack_camera_set(
PointerRNA *
ptr,
898 data->camera =
nullptr;
902static void rna_Constraint_followTrack_depthObject_set(
PointerRNA *
ptr,
917 data->depth_ob =
nullptr;
934static void rna_Constraint_objectSolver_camera_set(
PointerRNA *
ptr,
949 data->camera =
nullptr;
960 "The object is constrained inside a virtual sphere around the target object, "
961 "with a radius defined by the limit distance"},
966 "The object is constrained outside a virtual sphere around the target object, "
967 "with a radius defined by the limit distance"},
969 "LIMITDIST_ONSURFACE",
972 "The object is constrained on the surface of a virtual sphere around the target object, "
973 "with a radius defined by the limit distance"},
974 {0,
nullptr, 0,
nullptr,
nullptr},
992 "Follow shape of B-Bone segments when calculating Head/Tail position");
1055 srna,
"Constraint Target Bone",
"Target bone for multi-target constraints");
1065 prop,
nullptr,
"rna_ConstraintTargetBone_target_set",
nullptr,
"rna_Armature_object_poll");
1092 srna,
"Child Of Constraint",
"Create constraint-based parent-child relationship");
1148 prop,
"Set Inverse Pending",
"Set to true to request recalculation of the inverse matrix");
1169 srna =
RNA_def_struct(brna,
"ArmatureConstraintTargets",
nullptr);
1172 srna,
"Armature Deform Constraint Targets",
"Collection of target bones and weights");
1178 parm =
RNA_def_pointer(func,
"target",
"ConstraintTargetBone",
"",
"New target bone");
1181 func =
RNA_def_function(srna,
"remove",
"rna_ArmatureConstraint_target_remove");
1184 parm =
RNA_def_pointer(func,
"target",
"ConstraintTargetBone",
"",
"Target to remove");
1188 func =
RNA_def_function(srna,
"clear",
"rna_ArmatureConstraint_target_clear");
1200 srna,
"Armature Constraint",
"Applies transformations done by the Armature modifier");
1215 prop,
"Preserve Volume",
"Deform rotation interpolation with quaternions");
1223 "Multiply weights by envelope for all bones, instead of acting like Vertex Group based "
1225 "The specified weights are still used, and only the listed bones are considered.");
1231 "Use Current Location",
1232 "Use the current bone location for envelopes and choosing B-Bone "
1233 "segments instead of rest position");
1245 {0,
"BONE", 0,
"Bone",
""},
1247 {0,
nullptr, 0,
nullptr,
nullptr},
1253 {0,
nullptr, 0,
nullptr,
nullptr},
1256 srna =
RNA_def_struct(brna,
"KinematicConstraint",
"Constraint");
1291 prop,
"Weight",
"For Tree-IK: Weight of position control for this target");
1297 prop,
"Orientation Weight",
"For Tree-IK: Weight of orientation control for this target");
1307 prop,
"Chain Length",
"How many bones are included in the IK effect - 0 uses all bones");
1319 prop,
"Axis Reference",
"Constraint axis Lock options relative to Bone or Target reference");
1378 prop,
"Limit Mode",
"Distances in relation to sphere of influence to allow");
1396 {
TRACK_X,
"UP_X", 0,
"X",
""},
1397 {
TRACK_Y,
"UP_Y", 0,
"Y",
""},
1398 {
TRACK_Z,
"UP_Z", 0,
"Z",
""},
1399 {0,
nullptr, 0,
nullptr,
nullptr},
1404 srna,
"Track To Constraint",
"Aim the constrained object toward the target");
1431 prop,
"Target Z",
"Target's Z axis, not World Z axis, will constrain the Up direction");
1442 srna =
RNA_def_struct(brna,
"CopyLocationConstraint",
"Constraint");
1498 {
ROTLIKE_MIX_REPLACE,
"REPLACE", 0,
"Replace",
"Replace the original rotation with copied"},
1499 {
ROTLIKE_MIX_ADD,
"ADD", 0,
"Add",
"Add euler component values together"},
1504 "Apply copied rotation before original, as if the constraint target is a parent"},
1509 "Apply copied rotation after original, as if the constraint target is a child"},
1514 "Combine rotations like the original Offset checkbox. Does not work well for "
1515 "multiple axis rotations."},
1516 {0,
nullptr, 0,
nullptr,
nullptr},
1519 srna =
RNA_def_struct(brna,
"CopyRotationConstraint",
"Constraint");
1568 prop,
"Mix Mode",
"Specify how the copied and existing rotations are combined");
1574 prop,
"rna_Constraint_RotLike_use_offset_get",
"rna_Constraint_RotLike_use_offset_set");
1576 prop,
"Offset",
"DEPRECATED: Add original rotation into copied rotation");
1587 srna =
RNA_def_struct(brna,
"CopyScaleConstraint",
"Constraint");
1623 "Redistribute the copied change in volume equally "
1624 "between the three axes of the owner");
1637 "Use addition instead of multiplication to combine scale (2.7 compatibility)");
1653 {0,
nullptr, 0,
nullptr,
nullptr},
1661 "Volume is strictly preserved, overriding the scaling of non-free axes"},
1666 "Volume is preserved when the object is scaled uniformly. "
1667 "Deviations from uniform scale on non-free axes are passed through."},
1672 "Volume is preserved when the object is scaled only on the free axis. "
1673 "Non-free axis scaling is passed through."},
1674 {0,
nullptr, 0,
nullptr,
nullptr},
1677 srna =
RNA_def_struct(brna,
"MaintainVolumeConstraint",
"Constraint");
1679 "Maintain Volume Constraint",
1680 "Maintain a constant volume along a single scaling axis");
1696 prop,
"Mode",
"The way the constraint treats original non-free axis scaling");
1718 "Replace the original transformation with copied"},
1723 "Before Original (Full)",
1724 "Apply copied transformation before original, using simple matrix multiplication as if "
1725 "the constraint target is a parent in Full Inherit Scale mode. "
1726 "Will create shear when combining rotation and non-uniform scale."},
1730 "Before Original (Aligned)",
1731 "Apply copied transformation before original, as if the constraint target is a parent in "
1732 "Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels "
1733 "for rotation and scale."},
1737 "Before Original (Split Channels)",
1738 "Apply copied transformation before original, handling location, rotation and scale "
1739 "separately, similar to a sequence of three Copy constraints"},
1744 "After Original (Full)",
1745 "Apply copied transformation after original, using simple matrix multiplication as if "
1746 "the constraint target is a child in Full Inherit Scale mode. "
1747 "Will create shear when combining rotation and non-uniform scale."},
1751 "After Original (Aligned)",
1752 "Apply copied transformation after original, as if the constraint target is a child in "
1753 "Aligned Inherit Scale mode. This effectively uses Full for location and Split Channels "
1754 "for rotation and scale."},
1758 "After Original (Split Channels)",
1759 "Apply copied transformation after original, handling location, rotation and scale "
1760 "separately, similar to a sequence of three Copy constraints"},
1761 {0,
nullptr, 0,
nullptr,
nullptr},
1764 srna =
RNA_def_struct(brna,
"CopyTransformsConstraint",
"Constraint");
1766 srna,
"Copy Transforms Constraint",
"Copy all the transforms of the target");
1781 prop,
"Remove Target Shear",
"Remove shear from the target transformation before combining");
1788 prop,
"Mix Mode",
"Specify how the copied and existing transformations are combined");
1800 {
TRACK_X,
"FLOOR_X", 0,
"X",
""},
1801 {
TRACK_Y,
"FLOOR_Y", 0,
"Y",
""},
1802 {
TRACK_Z,
"FLOOR_Z", 0,
"Z",
""},
1803 {
TRACK_nX,
"FLOOR_NEGATIVE_X", 0,
"-X",
""},
1804 {
TRACK_nY,
"FLOOR_NEGATIVE_Y", 0,
"-Y",
""},
1805 {
TRACK_nZ,
"FLOOR_NEGATIVE_Z", 0,
"-Z",
""},
1806 {0,
nullptr, 0,
nullptr,
nullptr},
1811 srna,
"Floor Constraint",
"Use the target object for location limitation");
1823 prop,
"Floor Location",
"Location of target that object will not pass through");
1845 {20,
"LOCATION_X", 0,
"X Location",
""},
1846 {21,
"LOCATION_Y", 0,
"Y Location",
""},
1847 {22,
"LOCATION_Z", 0,
"Z Location",
""},
1848 {00,
"ROTATION_X", 0,
"X Rotation",
""},
1849 {01,
"ROTATION_Y", 0,
"Y Rotation",
""},
1850 {02,
"ROTATION_Z", 0,
"Z Rotation",
""},
1851 {10,
"SCALE_X", 0,
"X Scale",
""},
1852 {11,
"SCALE_Y", 0,
"Y Scale",
""},
1853 {12,
"SCALE_Z", 0,
"Z Scale",
""},
1854 {0,
nullptr, 0,
nullptr,
nullptr},
1862 "Replace the original transformation with the action channels"},
1867 "Before Original (Full)",
1868 "Apply the action channels before the original transformation, as if applied to an "
1869 "imaginary parent in Full Inherit Scale mode. Will create shear when combining rotation "
1870 "and non-uniform scale."},
1874 "Before Original (Aligned)",
1875 "Apply the action channels before the original transformation, as if applied to an "
1876 "imaginary parent in Aligned Inherit Scale mode. This effectively uses Full for location "
1877 "and Split Channels for rotation and scale."},
1881 "Before Original (Split Channels)",
1882 "Apply the action channels before the original transformation, handling location, rotation "
1883 "and scale separately"},
1888 "After Original (Full)",
1889 "Apply the action channels after the original transformation, as if applied to an "
1890 "imaginary child in Full Inherit Scale mode. Will create shear when combining rotation "
1891 "and non-uniform scale."},
1895 "After Original (Aligned)",
1896 "Apply the action channels after the original transformation, as if applied to an "
1897 "imaginary child in Aligned Inherit Scale mode. This effectively uses Full for location "
1898 "and Split Channels for rotation and scale."},
1902 "After Original (Split Channels)",
1903 "Apply the action channels after the original transformation, handling location, rotation "
1904 "and scale separately"},
1905 {0,
nullptr, 0,
nullptr,
nullptr},
1910 srna,
"Action Constraint",
"Map an action to the transform axes of a bone");
1925 "Specify how existing transformations and the action channels are combined");
1933 "Transform Channel",
1934 "Transformation channel from the target that is used to key the Action");
1940 prop,
nullptr,
"rna_ActionConstraint_action_set",
nullptr,
"rna_Action_id_poll");
1951 prop,
nullptr,
"rna_ActionConstraint_action_slot_handle_set",
nullptr);
1953 "Action Slot Handle",
1954 "A number that identifies which sub-set of the Action is considered "
1955 "to be for this Action Constraint");
1958 prop,
"rna_ActionConstraint_action_slot_handle_override_diff",
nullptr,
nullptr);
1965 "Last Action Slot Identifier",
1966 "The identifier of the most recently assigned action slot. The slot identifies which "
1967 "sub-set of the Action is considered to be for this constraint, and its identifier is used "
1968 "to find the right slot when assigning an Action.");
1977 "The slot identifies which sub-set of the Action is considered to be for this "
1978 "strip, and its name is used to find the right slot when assigning another Action");
1980 "rna_ActionConstraint_action_slot_get",
1981 "rna_ActionConstraint_action_slot_set",
1999 "rna_iterator_ActionConstraint_action_suitable_slots_begin",
2000 "rna_iterator_array_next",
2001 "rna_iterator_array_end",
2002 "rna_iterator_array_dereference_get",
2008 prop,
"Action Slots",
"The list of action slots suitable for this NLA strip");
2014 "Bones only: apply the object's transformation channels of the action "
2015 "to the constrained bone, instead of bone's channels");
2048 prop,
"Evaluation Time",
"Interpolates between Action Start and End frames");
2054 "Use Evaluation Time",
2055 "Interpolate between Action Start and End frames, with the Evaluation "
2056 "Time slider instead of the Target object/bone");
2068 {
TRACK_X,
"LOCK_X", 0,
"X",
""},
2069 {
TRACK_Y,
"LOCK_Y", 0,
"Y",
""},
2070 {
TRACK_Z,
"LOCK_Z", 0,
"Z",
""},
2071 {0,
nullptr, 0,
nullptr,
nullptr},
2074 srna =
RNA_def_struct(brna,
"LockedTrackConstraint",
"Constraint");
2077 "Locked Track Constraint",
2078 "Point toward the target along the track axis, while locking the other axis");
2110 {
TRACK_X,
"FORWARD_X", 0,
"X",
""},
2111 {
TRACK_Y,
"FORWARD_Y", 0,
"Y",
""},
2112 {
TRACK_Z,
"FORWARD_Z", 0,
"Z",
""},
2113 {
TRACK_nX,
"TRACK_NEGATIVE_X", 0,
"-X",
""},
2114 {
TRACK_nY,
"TRACK_NEGATIVE_Y", 0,
"-Y",
""},
2115 {
TRACK_nZ,
"TRACK_NEGATIVE_Z", 0,
"-Z",
""},
2116 {0,
nullptr, 0,
nullptr,
nullptr},
2120 {
TRACK_X,
"UP_X", 0,
"X",
""},
2121 {
TRACK_Y,
"UP_Y", 0,
"Y",
""},
2122 {
TRACK_Z,
"UP_Z", 0,
"Z",
""},
2123 {0,
nullptr, 0,
nullptr,
nullptr},
2126 srna =
RNA_def_struct(brna,
"FollowPathConstraint",
"Constraint");
2143 prop,
"Offset",
"Offset from the position corresponding to the time frame");
2151 prop,
"Offset Factor",
"Percentage value defining target position along length of curve");
2169 prop,
"Follow Curve",
"Object will follow the heading and banking of the curve");
2177 "Object will stay locked to a single point somewhere along the length of the curve "
2178 "regardless of time");
2196 {
VOLUME_X,
"VOLUME_X", 0,
"X",
""},
2197 {
VOLUME_Z,
"VOLUME_Z", 0,
"Z",
""},
2198 {
NO_VOLUME,
"NO_VOLUME", 0,
"None",
""},
2199 {0,
nullptr, 0,
nullptr,
nullptr},
2203 {
PLANE_X,
"PLANE_X", 0,
"XZ",
"Rotate around local X, then Z"},
2204 {
PLANE_Z,
"PLANE_Z", 0,
"ZX",
"Rotate around local Z, then X"},
2209 "Use the smallest single axis rotation, similar to Damped Track"},
2210 {0,
nullptr, 0,
nullptr,
nullptr},
2213 srna =
RNA_def_struct(brna,
"StretchToConstraint",
"Constraint");
2229 prop,
"Maintain Volume",
"Maintain the object's volume as it stretches");
2248 prop,
"Volume Variation",
"Factor between volume variation and stretching");
2254 prop,
"Use Volume Variation Minimum",
"Use lower limit for volume variation");
2260 prop,
"Use Volume Variation Maximum",
"Use upper limit for volume variation");
2276 prop,
"Volume Variation Smoothness",
"Strength of volume stretching clamping");
2292 {0,
nullptr, 0,
nullptr,
nullptr},
2298 "Clamp To Constraint",
2299 "Constrain an object's location to the nearest point along the target path");
2321 prop,
"Cyclic",
"Treat curve as cyclic curve (no clamping to curve bounding box)");
2336 {0,
nullptr, 0,
nullptr,
nullptr},
2342 {0,
nullptr, 0,
nullptr,
nullptr},
2352 "Apply new rotation before original, as if it was on a parent"},
2357 "Apply new rotation after original, as if it was on a child"},
2358 {0,
nullptr, 0,
nullptr,
nullptr},
2364 {0,
nullptr, 0,
nullptr,
nullptr},
2367 srna =
RNA_def_struct(brna,
"TransformConstraint",
"Constraint");
2369 srna,
"Transformation Constraint",
"Map transformations of the target to the object");
2387 prop,
"Map To",
"The transformation type to affect on the constrained object");
2394 prop,
"Map To X From",
"The source axis constrained object's X axis uses");
2401 prop,
"Map To Y From",
"The source axis constrained object's Y axis uses");
2408 prop,
"Map To Z From",
"The source axis constrained object's Z axis uses");
2505 prop,
"Location Mix Mode",
"Specify how to combine the new location with original");
2585 prop,
"Rotation Mix Mode",
"Specify how to combine the new rotation with original");
2665 prop,
"Scale Mix Mode",
"Specify how to combine the new scale with original");
2676 srna =
RNA_def_struct(brna,
"LimitLocationConstraint",
"Constraint");
2678 srna,
"Limit Location Constraint",
"Limit the location of the constrained object");
2753 prop,
"Affect Transform",
"Transform tools are affected by this constraint as well");
2764 srna =
RNA_def_struct(brna,
"LimitRotationConstraint",
"Constraint");
2766 srna,
"Limit Rotation Constraint",
"Limit the rotation of the constrained object");
2838 prop,
"Affect Transform",
"Transform tools are affected by this constraint as well");
2846 "Use the old semi-broken behavior that does not understand that rotations loop around");
2857 srna =
RNA_def_struct(brna,
"LimitScaleConstraint",
"Constraint");
2859 srna,
"Limit Size Constraint",
"Limit the scaling of the constrained object");
2934 prop,
"Affect Transform",
"Transform tools are affected by this constraint as well");
2945 srna =
RNA_def_struct(brna,
"LimitDistanceConstraint",
"Constraint");
2947 srna,
"Limit Distance Constraint",
"Limit the distance from target object");
2968 prop,
"Limit Mode",
"Distances in relation to sphere of influence to allow");
2974 prop,
"Affect Transform",
"Transforms are affected by this constraint as well");
2989 "Nearest Surface Point",
2990 "Shrink the location to the nearest target surface"},
2995 "Shrink the location to the nearest target surface along a given axis"},
3000 "Shrink the location to the nearest target vertex"},
3004 "Target Normal Project",
3005 "Shrink the location to the nearest target surface "
3006 "along the interpolated vertex normals of the target"},
3007 {0,
nullptr, 0,
nullptr,
nullptr},
3011 {0,
"OFF", 0,
"Off",
"No culling"},
3016 "No projection when in front of the face"},
3021 "No projection when behind the face"},
3022 {0,
nullptr, 0,
nullptr,
nullptr},
3025 srna =
RNA_def_struct(brna,
"ShrinkwrapConstraint",
"Constraint");
3027 srna,
"Shrinkwrap Constraint",
"Create constraint-based shrinkwrap relationship");
3044 prop,
"Shrinkwrap Type",
"Select type of shrinkwrap algorithm for target position");
3051 prop,
"Snap Mode",
"Select how to constrain the object to the target surface");
3078 prop,
"Project Distance",
"Limit the distance used for projection (zero disables)");
3084 prop,
"Project Opposite",
"Project in both specified and opposite directions");
3091 "rna_ShrinkwrapConstraint_face_cull_get",
3092 "rna_ShrinkwrapConstraint_face_cull_set",
3097 "Stop vertices from projecting to a face on the target when facing towards/away");
3103 prop,
"Invert Cull",
"When projecting in the opposite direction invert the face cull mode");
3109 prop,
"Align Axis To Normal",
"Align the specified axis to the surface normal");
3126 srna =
RNA_def_struct(brna,
"DampedTrackConstraint",
"Constraint");
3128 srna,
"Damped Track Constraint",
"Point toward target by taking the shortest rotation path");
3159 "Use the original scaling of the bones"},
3164 "Scale of the X and Z axes is the inverse of the Y-Scale"},
3168 "Volume Preservation",
3169 "Scale of the X and Z axes are adjusted to preserve the volume of the bones"},
3170 {0,
nullptr, 0,
nullptr,
nullptr},
3179 "Scale the bones to fit the entire length of the curve"},
3184 "Use the original Y scale of the bone"},
3185 {0,
nullptr, 0,
nullptr,
nullptr},
3221 "rna_SplineIKConstraint_joint_bindings_get",
3222 "rna_SplineIKConstraint_joint_bindings_set",
3227 "(EXPERIENCED USERS ONLY) The relative positions of the joints along the chain, "
3235 prop,
"Chain Offset",
"Offset the entire chain relative to the root joint");
3242 "Ignore the relative lengths of the bones when fitting to the curve");
3250 "Average radius of the endpoints is used to tweak the X and Z Scaling of the bones, "
3251 "on top of XZ Scale mode");
3261 "Method used for determining the scaling of the X and Z axes of the bones");
3270 "Method used for determining the scaling of the Y axis of the bones, "
3271 "on top of the shape and scaling of the curve itself");
3278 prop,
"Use Original Scale",
"Apply volume preservation over the original scaling");
3285 prop,
"Volume Variation",
"Factor between volume variation and stretching");
3291 prop,
"Use Volume Variation Minimum",
"Use lower limit for volume variation");
3297 prop,
"Use Volume Variation Maximum",
"Use upper limit for volume variation");
3313 prop,
"Volume Variation Smoothness",
"Strength of volume stretching clamping");
3325 {
PIVOTCON_AXIS_NONE,
"ALWAYS_ACTIVE", 0,
"Always",
"Use the pivot point in every rotation"},
3330 "Use the pivot point in the negative rotation range around the X-axis"},
3335 "Use the pivot point in the negative rotation range around the Y-axis"},
3340 "Use the pivot point in the negative rotation range around the Z-axis"},
3345 "Use the pivot point in the positive rotation range around the X-axis"},
3350 "Use the pivot point in the positive rotation range around the Y-axis"},
3355 "Use the pivot point in the positive rotation range around the Z-axis"},
3356 {0,
nullptr, 0,
nullptr,
nullptr},
3374 prop,
"Target",
"Target Object, defining the position of the pivot when defined");
3388 "Use Relative Offset",
3389 "Offset will be an absolute point in space instead of relative to the target");
3396 "Offset of pivot from target (when set), or from owner's location "
3397 "(when Fixed Position is off), or the absolute pivot point");
3405 prop,
"Enabled Rotation Range",
"Rotation range on which pivoting should occur");
3420 {0,
nullptr, 0,
nullptr,
nullptr},
3423 srna =
RNA_def_struct(brna,
"FollowTrackConstraint",
"Constraint");
3425 srna,
"Follow Track Constraint",
"Lock motion to the target motion track");
3461 prop,
"Object",
"Movie tracking object to follow (if empty, camera object is used)");
3468 prop,
"Camera",
"Camera to which motion is parented (if empty active scene camera is used)");
3473 "rna_Constraint_followTrack_camera_set",
3475 "rna_Constraint_cameraObject_poll");
3483 "Object used to define depth in camera space by projecting onto surface of this object");
3488 "rna_Constraint_followTrack_depthObject_set",
3490 "rna_Constraint_followTrack_depthObject_poll");
3513 srna =
RNA_def_struct(brna,
"CameraSolverConstraint",
"Constraint");
3515 srna,
"Camera Solver Constraint",
"Lock motion to the reconstructed camera movement");
3542 srna =
RNA_def_struct(brna,
"ObjectSolverConstraint",
"Constraint");
3544 srna,
"Object Solver Constraint",
"Lock motion to the reconstructed object movement");
3566 prop,
"Set Inverse Pending",
"Set to true to request recalculation of the inverse matrix");
3579 prop,
"Camera",
"Camera to which motion is parented (if empty active scene camera is used)");
3584 "rna_Constraint_objectSolver_camera_set",
3586 "rna_Constraint_cameraObject_poll");
3596 srna =
RNA_def_struct(brna,
"TransformCacheConstraint",
"Constraint");
3598 srna,
"Transform Cache Constraint",
"Look up transformation from an external file");
3615 "Path to the object in the Alembic archive used to lookup the transform matrix");
3633 {0,
nullptr, 0,
nullptr,
nullptr},
3642 "Quaternion data type, affects rotation"},
3647 "4x4 Matrix data type, affects transform"},
3648 {0,
nullptr, 0,
nullptr,
nullptr},
3656 "Replace the original transformation with the transform from the attribute"},
3661 "Before Original (Full)",
3662 "Apply copied transformation before original, using simple matrix multiplication as if "
3663 "the constraint target is a parent in Full Inherit Scale mode. "
3664 "Will create shear when combining rotation and non-uniform scale."},
3668 "Before Original (Split Channels)",
3669 "Apply copied transformation before original, handling location, rotation and scale "
3670 "separately, similar to a sequence of three Copy constraints"},
3675 "After Original (Full)",
3676 "Apply copied transformation after original, using simple matrix multiplication as if "
3677 "the constraint target is a child in Full Inherit Scale mode. "
3678 "Will create shear when combining rotation and non-uniform scale."},
3682 "After Original (Split Channels)",
3683 "Apply copied transformation after original, handling location, rotation and scale "
3684 "separately, similar to a sequence of three Copy constraints"},
3685 {0,
nullptr, 0,
nullptr,
nullptr},
3688 srna =
RNA_def_struct(brna,
"GeometryAttributeConstraint",
"Constraint");
3690 "Geometry Attribute Constraint",
3691 "Create a constraint-based relationship with an attribute from geometry");
3707 prop,
"Attribute Name",
"Name of the attribute to retrieve the transform from");
3722 "Apply the target object's world transform on top of the attribute's transform");
3756 prop,
"Mix Mode",
"Specify how the copied and existing transformations are combined");
3772 srna,
"Constraint",
"Constraint modifying the transformation of objects and bones");
3795 "Override Constraint",
3796 "In a local override object, whether this constraint comes from the "
3797 "linked reference object, or is local to the override");
3865 prop,
"Influence",
"Amount of influence constraint will have on the final solution");
3875 "Amount of residual error in Blender space unit for constraints that work on position");
3883 "Amount of residual error in radians for constraints that work on orientation");
Functions and classes to work with Actions.
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)
struct bConstraint * BKE_constraint_find_from_target(struct Object *ob, struct bConstraintTarget *tgt, struct bPoseChannel **r_pchan)
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)
void BKE_constraint_unique_name(struct bConstraint *con, struct ListBase *list)
void id_lib_extern(ID *id)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
#define BLI_assert_msg(a, msg)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_freelinkN(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void BLI_freelistN(ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
char * STRNCPY(char(&dst)[N], const char *src)
size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
#define STRNCPY_UTF8(dst, src)
#define UNUSED_VARS_NDEBUG(...)
#define BLT_I18NCONTEXT_CONSTRAINT
#define BLT_I18NCONTEXT_ID_MOVIECLIP
@ 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_GEOMETRY_ATTRIBUTE
@ 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
@ CON_ATTRIBUTE_QUATERNION
@ CON_ATTRIBUTE_4X4MATRIX
@ CONSTRAINT_ARMATURE_QUATERNION
@ CONSTRAINT_ARMATURE_ENVELOPE
@ CONSTRAINT_ARMATURE_CUR_LOCATION
@ CAMERASOLVER_ACTIVECLIP
@ FOLLOWTRACK_USE_UNDISTORTION
@ FOLLOWTRACK_USE_3D_POSITION
@ ACTCON_BONE_USE_OBJECT_ACTION
@ LIMIT_ROT_LEGACY_BEHAVIOR
#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
@ CON_ATTRIBUTE_DOMAIN_EDGE
@ CON_ATTRIBUTE_DOMAIN_POINT
@ CON_ATTRIBUTE_DOMAIN_CURVE
@ CON_ATTRIBUTE_DOMAIN_FACE_CORNER
@ CON_ATTRIBUTE_DOMAIN_FACE
@ CON_ATTRIBUTE_DOMAIN_INSTANCE
@ ACTCON_MIX_BEFORE_SPLIT
@ CON_ATTRIBUTE_MIX_AFTER_FULL
@ CON_ATTRIBUTE_MIX_AFTER_SPLIT
@ CON_ATTRIBUTE_MIX_BEFORE_SPLIT
@ CON_ATTRIBUTE_MIX_BEFORE_FULL
@ CON_ATTRIBUTE_MIX_REPLACE
@ 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
#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)
BMesh const char void * data
const Slot * slot(int64_t index) const
blender::Span< const Slot * > slots() const
bool is_suitable_for(const ID &animated_id) const
static constexpr slot_handle_t unassigned
float length(VecOp< float, D >) RET
void * MEM_callocN(size_t len, const char *str)
bool generic_assign_action(ID &animated_id, bAction *action_to_assign, bAction *&action_ptr_ref, slot_handle_t &slot_handle_ref, char *slot_identifier)
ActionSlotAssignmentResult generic_assign_action_slot(Slot *slot_to_assign, ID &animated_id, bAction *&action_ptr_ref, slot_handle_t &slot_handle_ref, char *slot_identifier)
decltype(::ActionSlot::handle) slot_handle_t
ActionSlotAssignmentResult
void constraint_dependency_tag_update(Main *bmain, Object *ob, bConstraint *con)
void constraint_tag_update(Main *bmain, Object *ob, bConstraint *con)
ListBase * constraint_list_from_constraint(Object *ob, bConstraint *con, bPoseChannel **r_pchan)
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_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_geometry_attribute(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_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
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)
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)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
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)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
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[]
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
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)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_override_funcs(PropertyRNA *prop, const char *diff, const char *store, const char *apply)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
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[]
int32_t action_slot_handle
char last_slot_identifier[258]
struct bConstraintTarget * next