Blender V4.3
DNA_constraint_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10#pragma once
11
12#include "DNA_ID.h"
13#include "DNA_defs.h"
14#include "DNA_listBase.h"
15
16struct Ipo;
17struct Text;
18
19/* channels reside in Object or Action (ListBase) constraintChannels */
20/* XXX: deprecated... old AnimSys. */
21typedef struct bConstraintChannel {
23 struct Ipo *ipo;
24 short flag;
25 char name[30];
27
29typedef struct bConstraint {
31
33 void *data;
35 short type;
37 short flag;
38
43
44 /* An "expand" bit for each of the constraint's (sub)panels (uiPanelDataExpansion). */
46
51
53 char name[64];
54
56 float enforce;
58 float headtail;
59
60 /* old animation system, deprecated for 2.5. */
62 struct Ipo *ipo DNA_DEPRECATED;
63
64 /* Below are read-only fields that are set at runtime
65 * by the solver for use in the GE (only IK at the moment). */
67 float lin_error;
69 float rot_error;
71
72/* Multiple-target constraints --------------------- */
73
74/* This struct defines a constraint target.
75 * It is used during constraint solving regardless of how many targets the
76 * constraint has.
77 */
78typedef struct bConstraintTarget {
80
82 struct Object *tar;
84 char subtarget[64];
85
87 float matrix[4][4];
88
90 short space;
92 short flag;
94 short type;
96 short rotOrder;
98 float weight;
99 char _pad[4];
101
102/* bConstraintTarget -> flag */
109
110/* bConstraintTarget/bConstraintOb -> type */
111typedef enum eConstraintObType {
119 /* CONSTRAINT_OBTYPE_CV = 4, */ /* UNUSED */
121
122/* Python Script Constraint */
148
149/* Inverse-Kinematics (IK) constraint
150 * This constraint supports a variety of mode determine by the type field
151 * according to eConstraint_IK_Type.
152 * Some fields are used by all types, some are specific to some types
153 * This is indicated in the comments for each field
154 */
187
194
195/* Spline IK Constraint
196 * Aligns 'n' bones to the curvature defined by the curve,
197 * with the chain ending on the bone that owns this constraint,
198 * and starting on the nth parent.
199 */
200typedef struct bSplineIKConstraint {
201 /* target(s) */
203 struct Object *tar;
204
205 /* binding details */
210 float *points;
214 short chainlen;
215
216 /* settings */
218 short flag;
223 short _pad[3];
224
225 /* volume preservation settings */
226 float bulge;
231
232/* Armature Constraint */
241
242/* Single-target sub-object constraints --------------------- */
243
244/* Track To Constraint */
259
260/* Copy Rotation Constraint */
270
271/* Copy Location Constraint */
279
280/* Copy Scale Constraint */
288
289/* Maintain Volume Constraint */
296
297/* Copy Transform Constraint */
306
307/* Floor Constraint */
317
318/* Action Constraint */
319typedef struct bActionConstraint {
320 struct Object *tar;
322 short type;
324 short local;
326 int start;
328 int end;
330 float min;
332 float max;
333 int flag;
335 char _pad[3];
336 float eval_time; /* Only used when flag ACTCON_USE_EVAL_TIME is set. */
337 struct bAction *act;
339 char action_slot_name[66]; /* MAX_ID_NAME */
340 char _pad1[2];
342 char subtarget[64];
344
345/* Locked Axis Tracking constraint */
353
354/* Damped Tracking constraint */
362
363/* Follow Path constraints */
378
379/* Stretch to constraint */
393
394/* DEPRECATED: Rigid Body constraint */
396 struct Object *tar;
397 struct Object *child;
398 int type;
399 float pivX;
400 float pivY;
401 float pivZ;
402 float axX;
403 float axY;
404 float axZ;
405 float minLimit[6];
406 float maxLimit[6];
407 float extraFz;
408 short flag;
409 char _pad[6];
411
412/* Clamp-To Constraint */
421
422/* Child Of Constraint */
423typedef struct bChildOfConstraint {
425 struct Object *tar;
427 int flag;
428 char _pad[4];
430 float invmat[4][4];
432 char subtarget[64];
434
435/* Generic Transform->Transform Constraint */
436typedef struct bTransformConstraint {
438 struct Object *tar;
440 char subtarget[64];
441
443 short from, to;
445 char map[3];
447 char expo;
448
453
458
459 char _pad[3];
460
462 float from_min[3];
464 float from_max[3];
466 float to_min[3];
467 float to_max[3];
468
470 float from_min_rot[3];
472 float from_max_rot[3];
474 float to_min_rot[3];
475 float to_max_rot[3];
476
482 float to_min_scale[3];
483 float to_max_scale[3];
485
486/* Pivot Constraint */
487typedef struct bPivotConstraint {
488 /* Pivot Point:
489 * Either target object + offset, or just offset is used
490 */
492 struct Object *tar;
494 char subtarget[64];
496 float offset[3];
497
498 /* Rotation-driven activation:
499 * This option provides easier one-stop setups for foot-rolls.
500 */
502 short rotAxis;
503
504 /* General flags */
506 short flag;
508
509/* transform limiting constraints - zero target ---------------------------- */
510/* Limit Location Constraint */
511typedef struct bLocLimitConstraint {
512 float xmin, xmax;
513 float ymin, ymax;
514 float zmin, zmax;
515 short flag;
516 short flag2;
518
519/* Limit Rotation Constraint */
520typedef struct bRotLimitConstraint {
521 float xmin, xmax;
522 float ymin, ymax;
523 float zmin, zmax;
524 short flag;
525 short flag2;
527 char _pad[3];
529
530/* Limit Scale Constraint */
538
539/* Limit Distance Constraint */
540typedef struct bDistLimitConstraint {
541 struct Object *tar;
543 char subtarget[64];
544
546 float dist;
548 float soft;
549
551 short flag;
553 short mode;
554 char _pad[4];
556
557/* ShrinkWrap Constraint */
578
579/* Follow Track constraints */
583 char track[64];
584 int flag;
587 char object[64];
588 struct Object *camera;
591
592/* Camera Solver constraints */
598
599/* Camera Solver constraints */
602 int flag;
603 char _pad[4];
605 char object[64];
607 float invmat[4][4];
608 struct Object *camera;
610
611/* Transform matrix cache constraint */
621
622/* ------------------------------------------ */
623
624/* bConstraint->type
625 * - Do not ever change the order of these, or else files could get
626 * broken as their correct value cannot be resolved
627 */
671
672/* bConstraint->flag */
673/* flags 0x2 (1 << 1) and 0x8 (1 << 3) were used in past */
674/* flag 0x20 (1 << 5) was used to indicate that a constraint was evaluated
675 * using a 'local' hack for pose-bones only. */
676typedef enum eBConstraint_Flags {
677#ifdef DNA_DEPRECATED_ALLOW
678 /* Expansion for old box constraint layouts. Just for versioning. */
679 CONSTRAINT_EXPAND_DEPRECATED = (1 << 0),
680#endif
681 /* Constraint is disabled because it is considered invalid. `is_valid` in RNA. */
683 /* to indicate which Ipo should be shown, maybe for 3d access later too */
685 /* to indicate that the owner's space should only be changed into ownspace, but not out of it */
687 /* influence ipo is on constraint itself, not in action channel */
689 /* Constraint is disabled by the user or the animation system (eye icon in the interface). */
690 CONSTRAINT_OFF = (1 << 9),
691 /* use bbone curve shape when calculating headtail values (also used by dependency graph!) */
693 /* That constraint has been inserted in local override (i.e. it can be fully edited!). */
695 /* use full transformation (not just segment locations) - only set at runtime. */
698
699/* bConstraint->ownspace/tarspace */
719
720/* Common enum for constraints that support override. */
733
734/* -------------------------------------- */
735
738 ROTLIKE_X = (1 << 0),
739 ROTLIKE_Y = (1 << 1),
740 ROTLIKE_Z = (1 << 2),
744#ifdef DNA_DEPRECATED_ALLOW
745 ROTLIKE_OFFSET = (1 << 7),
746#endif
748
751 /* Replace rotation channel values. */
753 /* Legacy Offset mode - don't use. */
755 /* Add Euler components together. */
757 /* Multiply the copied rotation on the left. */
759 /* Multiply the copied rotation on the right. */
762
765 LOCLIKE_X = (1 << 0),
766 LOCLIKE_Y = (1 << 1),
767 LOCLIKE_Z = (1 << 2),
769 LOCLIKE_TIP = (1 << 3),
773 LOCLIKE_OFFSET = (1 << 7),
775
777typedef enum eCopyScale_Flags {
778 SIZELIKE_X = (1 << 0),
779 SIZELIKE_Y = (1 << 1),
780 SIZELIKE_Z = (1 << 2),
781 SIZELIKE_OFFSET = (1 << 3),
785
788 /* Remove shear from the target matrix. */
791
794 /* Replace rotation channel values. */
796 /* Multiply the copied transformation on the left, with anti-shear scale handling. */
798 /* Multiply the copied transformation on the right, with anti-shear scale handling. */
800 /* Multiply the copied transformation on the left, handling loc/rot/scale separately. */
802 /* Multiply the copied transformation on the right, handling loc/rot/scale separately. */
804 /* Multiply the copied transformation on the left, using simple matrix multiplication. */
806 /* Multiply the copied transformation on the right, using simple matrix multiplication. */
809
810/* bTransformConstraint.to/from */
816
819 /* Add component values together (default). */
821 /* Replace component values. */
824
827 /* Add component values together (default). */
829 /* Replace component values. */
831 /* Multiply the generated rotation on the left. */
833 /* Multiply the generated rotation on the right. */
836
839 /* Replace component values (default). */
841 /* Multiply component values together. */
844
851
853typedef enum eSameVolume_Mode {
854 /* Strictly maintain the volume, overriding non-free axis scale. */
856 /* Maintain the volume when scale is uniform, pass non-uniform other axis scale through. */
858 /* Maintain the volume when scaled only on the free axis, pass other axis scale through. */
861
864 /* Bones use "object" part of target action, instead of "same bone name" part */
866 /* Ignore the transform of 'tar' and use 'eval_time' instead: */
869
872 /* Multiply the action transformation on the right. */
874 /* Multiply the action transformation on the left. */
876 /* Multiply the action transformation on the right, with anti-shear scale handling. */
878 /* Multiply the action transformation on the left, with anti-shear scale handling. */
880 /* Separately combine Translation, Rotation and Scale, with rotation on the right. */
882 /* Separately combine Translation, Rotation and Scale, with rotation on the left. */
885
886/* Locked-Axis Values (Locked Track) */
892
893/* Up-Axis Values (TrackTo and Locked Track) */
899
900/* Tracking axis (TrackTo, Locked Track, Damped Track) and minmax (floor) constraint */
909
910/* Shrinkwrap flags */
911typedef enum eShrinkwrap_Flags {
912 /* Also ray-cast in the opposite direction. */
914 /* Invert the cull mode when projecting opposite. */
916 /* Align the specified axis to the target normal. */
918
919 /* Ignore front faces in project; same value as MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE */
921 /* Ignore back faces in project; same value as MOD_SHRINKWRAP_CULL_TARGET_BACKFACE */
924
925#define CON_SHRINKWRAP_PROJECT_CULL_MASK \
926 (CON_SHRINKWRAP_PROJECT_CULL_FRONTFACE | CON_SHRINKWRAP_PROJECT_CULL_BACKFACE)
927
928/* FollowPath flags */
934
935/* bTrackToConstraint->flags */
939
940/* Stretch To Constraint -> volmode */
947
948/* Stretch To Constraint -> plane mode */
954
955/* Clamp-To Constraint ->flag */
962
963/* ClampTo Constraint ->flag2 */
967
968/* bKinematicConstraint->flag */
969typedef enum eKinematic_Flags {
972 /* targetless */
974 /* autoik */
980 /* limit axis */
987 /* axis relative to target */
990
992typedef enum eSplineIK_Flags {
997#ifdef DNA_DEPRECATED_ALLOW
999 CONSTRAINT_SPLINEIK_SCALE_LIMITED = (1 << 2),
1000#endif
1005
1009
1013
1025
1035
1045
1046/* MinMax (floor) flags */
1047typedef enum eFloor_Flags {
1048 /* MINMAX_STICKY = (1 << 0), */ /* Deprecated. */
1049 /* MINMAX_STUCK = (1 << 1), */ /* Deprecated. */
1050 MINMAX_USEROT = (1 << 2),
1052
1053/* transform limiting constraints -> flag2 */
1055 /* not used anymore - for older Limit Location constraints only */
1056 /* LIMIT_NOPARENT = (1 << 0), */ /* UNUSED */
1057 /* for all Limit constraints - allow to be used during transform? */
1060
1061/* transform limiting constraints -> flag. */
1063 LIMIT_XMIN = (1 << 0),
1064 LIMIT_XMAX = (1 << 1),
1065 LIMIT_YMIN = (1 << 2),
1066 LIMIT_YMAX = (1 << 3),
1067 LIMIT_ZMIN = (1 << 4),
1068 LIMIT_ZMAX = (1 << 5),
1070
1071/* limit rotation constraint -> flag. */
1072typedef enum eRotLimit_Flags {
1073 LIMIT_XROT = (1 << 0),
1074 LIMIT_YROT = (1 << 1),
1075 LIMIT_ZROT = (1 << 2),
1076
1077 /* Use the legacy behavior of the Limit Rotation constraint. See the
1078 * implementation of `rotlimit_evaluate()` in constraint.cc for more
1079 * details. */
1082
1083/* distance limit constraint */
1084/* bDistLimitConstraint->flag */
1085typedef enum eDistLimit_Flag {
1086 /* "soft" cushion effect when reaching the limit sphere */ /* NOT IMPLEMENTED! */
1088 /* as for all Limit constraints - allow to be used during transform? */
1091
1092/* bDistLimitConstraint->mode */
1098
1099/* python constraint -> flag */
1104
1105/* ChildOf Constraint -> flag */
1106typedef enum eChildOf_Flags {
1107 CHILDOF_LOCX = (1 << 0),
1108 CHILDOF_LOCY = (1 << 1),
1109 CHILDOF_LOCZ = (1 << 2),
1110 CHILDOF_ROTX = (1 << 3),
1111 CHILDOF_ROTY = (1 << 4),
1112 CHILDOF_ROTZ = (1 << 5),
1113 CHILDOF_SIZEX = (1 << 6),
1114 CHILDOF_SIZEY = (1 << 7),
1115 CHILDOF_SIZEZ = (1 << 8),
1117 /* Temporary flag used by the Set Inverse operator. */
1120
1144
1145/* settings for Pivot Constraint in general */
1147 /* offset is to be interpreted as being a fixed-point in space */
1149 /* rotation-based activation uses negative rotation to drive result */
1152
1158
1164
1165/* CameraSolver Constraint -> flag */
1169
1170/* ObjectSolver Constraint -> flag */
1173 /* Temporary flag used by the Set Inverse operator. */
1176
1177/* ObjectSolver Constraint -> flag */
ID and Library types, which are fundamental for SDNA.
struct bStretchToConstraint bStretchToConstraint
@ CONSTRAINT_BBONE_SHAPE
@ CONSTRAINT_OFF
@ CONSTRAINT_OVERRIDE_LIBRARY_LOCAL
@ CONSTRAINT_SPACEONCE
@ CONSTRAINT_ACTIVE
@ CONSTRAINT_DISABLE
@ CONSTRAINT_OWN_IPO
@ CONSTRAINT_BBONE_SHAPE_FULL
@ SIZELIKE_MULTIPLY
@ SIZELIKE_UNIFORM
@ SIZELIKE_OFFSET
struct bFollowTrackConstraint bFollowTrackConstraint
struct bActionConstraint bActionConstraint
@ CONSTRAINT_IK_ROT
@ CONSTRAINT_IK_NO_ROT_X
@ CONSTRAINT_IK_TARGETAXIS
@ CONSTRAINT_IK_NO_POS_Z
@ CONSTRAINT_IK_GETANGLE
@ CONSTRAINT_IK_TEMP
@ CONSTRAINT_IK_NO_POS_Y
@ CONSTRAINT_IK_SETANGLE
@ CONSTRAINT_IK_NO_ROT_Y
@ CONSTRAINT_IK_POS
@ CONSTRAINT_IK_NO_POS_X
@ CONSTRAINT_IK_NO_ROT_Z
@ CONSTRAINT_IK_AUTO
@ CONSTRAINT_IK_STRETCH
@ CONSTRAINT_IK_TIP
eConstraintTargetFlag
@ CONSTRAINT_TAR_TEMP
@ CONSTRAINT_TAR_CUSTOM_SPACE
struct bConstraintTarget bConstraintTarget
eCopyRotation_MixMode
@ ROTLIKE_MIX_OFFSET
@ ROTLIKE_MIX_BEFORE
@ ROTLIKE_MIX_AFTER
@ ROTLIKE_MIX_REPLACE
@ ROTLIKE_MIX_ADD
@ CONSTRAINT_TYPE_TRACKTO
@ CONSTRAINT_TYPE_PIVOT
@ CONSTRAINT_TYPE_CHILDOF
@ CONSTRAINT_TYPE_TRANSFORM
@ CONSTRAINT_TYPE_FOLLOWTRACK
@ CONSTRAINT_TYPE_OBJECTSOLVER
@ CONSTRAINT_TYPE_ARMATURE
@ CONSTRAINT_TYPE_LOCLIKE
@ CONSTRAINT_TYPE_SHRINKWRAP
@ CONSTRAINT_TYPE_MINMAX
@ CONSTRAINT_TYPE_ROTLIMIT
@ CONSTRAINT_TYPE_CAMERASOLVER
@ CONSTRAINT_TYPE_ROTLIKE
@ CONSTRAINT_TYPE_SPLINEIK
@ CONSTRAINT_TYPE_PYTHON
@ CONSTRAINT_TYPE_KINEMATIC
@ CONSTRAINT_TYPE_NULL
@ NUM_CONSTRAINT_TYPES
@ CONSTRAINT_TYPE_DISTLIMIT
@ CONSTRAINT_TYPE_TRANSLIKE
@ CONSTRAINT_TYPE_LOCLIMIT
@ CONSTRAINT_TYPE_CLAMPTO
@ CONSTRAINT_TYPE_LOCKTRACK
@ CONSTRAINT_TYPE_SIZELIMIT
@ CONSTRAINT_TYPE_ACTION
@ CONSTRAINT_TYPE_FOLLOWPATH
@ CONSTRAINT_TYPE_STRETCHTO
@ CONSTRAINT_TYPE_SIZELIKE
@ CONSTRAINT_TYPE_SAMEVOL
@ CONSTRAINT_TYPE_DAMPTRACK
@ CONSTRAINT_TYPE_TRANSFORM_CACHE
@ CONSTRAINT_OBTYPE_OBJECT
@ CONSTRAINT_OBTYPE_BONE
@ CONSTRAINT_OBTYPE_VERT
struct bShrinkwrapConstraint bShrinkwrapConstraint
@ LIMITDIST_INSIDE
@ LIMITDIST_OUTSIDE
@ LIMITDIST_ONSURFACE
@ CONSTRAINT_ARMATURE_QUATERNION
@ CONSTRAINT_ARMATURE_ENVELOPE
@ CONSTRAINT_ARMATURE_CUR_LOCATION
struct bLocateLikeConstraint bLocateLikeConstraint
struct bChildOfConstraint bChildOfConstraint
@ CAMERASOLVER_ACTIVECLIP
struct bSplineIKConstraint bSplineIKConstraint
@ FOLLOWTRACK_USE_UNDISTORTION
@ FOLLOWTRACK_USE_3D_POSITION
@ FOLLOWTRACK_ACTIVECLIP
struct bLockTrackConstraint bLockTrackConstraint
struct bRigidBodyJointConstraint bRigidBodyJointConstraint
eActionConstraint_Flags
@ ACTCON_BONE_USE_OBJECT_ACTION
@ ACTCON_USE_EVAL_TIME
struct bTransformConstraint bTransformConstraint
@ LIMIT_ROT_LEGACY_BEHAVIOR
struct bSizeLimitConstraint bSizeLimitConstraint
struct bArmatureConstraint bArmatureConstraint
struct bDistLimitConstraint bDistLimitConstraint
struct bMinMaxConstraint bMinMaxConstraint
eTransform_MixModeScale
@ TRANS_MIXSCALE_MULTIPLY
@ TRANS_MIXSCALE_REPLACE
eSplineIK_YScaleModes
@ CONSTRAINT_SPLINEIK_YS_NONE
@ CONSTRAINT_SPLINEIK_YS_FIT_CURVE
@ CONSTRAINT_SPLINEIK_YS_ORIGINAL
eTransform_MixModeLoc
@ TRANS_MIXLOC_ADD
@ TRANS_MIXLOC_REPLACE
eBConstraint_SpaceTypes
@ CONSTRAINT_SPACE_CUSTOM
@ CONSTRAINT_SPACE_INVALID
@ CONSTRAINT_SPACE_POSE
@ CONSTRAINT_SPACE_WORLD
@ CONSTRAINT_SPACE_OWNLOCAL
@ CONSTRAINT_SPACE_LOCAL
@ CONSTRAINT_SPACE_PARLOCAL
struct bTrackToConstraint bTrackToConstraint
eActionConstraint_MixMode
@ ACTCON_MIX_BEFORE
@ ACTCON_MIX_BEFORE_SPLIT
@ ACTCON_MIX_BEFORE_FULL
@ ACTCON_MIX_AFTER_FULL
@ ACTCON_MIX_AFTER_SPLIT
@ ACTCON_MIX_AFTER
@ FOLLOWPATH_FOLLOW
@ FOLLOWPATH_RADIUS
@ FOLLOWPATH_STATIC
eTransformLimits_Flags2
@ LIMIT_TRANSFORM
struct bSizeLikeConstraint bSizeLikeConstraint
@ PYCON_USETARGETS
@ PYCON_SCRIPTERROR
struct bClampToConstraint bClampToConstraint
struct bSameVolumeConstraint bSameVolumeConstraint
eTransformLimits_Flags
@ CONSTRAINT_SPLINEIK_EVENSPLITS
@ CONSTRAINT_SPLINEIK_USE_BULGE_MAX
@ CONSTRAINT_SPLINEIK_USE_ORIGINAL_SCALE
@ CONSTRAINT_SPLINEIK_USE_BULGE_MIN
@ CONSTRAINT_SPLINEIK_BOUND
@ CONSTRAINT_SPLINEIK_NO_CURVERAD
@ CONSTRAINT_SPLINEIK_NO_ROOT
struct bTransLikeConstraint bTransLikeConstraint
struct bLocLimitConstraint bLocLimitConstraint
eCopyTransforms_MixMode
@ TRANSLIKE_MIX_AFTER
@ TRANSLIKE_MIX_AFTER_FULL
@ TRANSLIKE_MIX_BEFORE
@ TRANSLIKE_MIX_BEFORE_SPLIT
@ TRANSLIKE_MIX_REPLACE
@ TRANSLIKE_MIX_BEFORE_FULL
@ TRANSLIKE_MIX_AFTER_SPLIT
struct bRotateLikeConstraint bRotateLikeConstraint
@ OBJECTSOLVER_ACTIVECLIP
@ 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
@ CLAMPTO_CYCLIC
eConstraint_IK_Type
@ CONSTRAINT_IK_COPYPOSE
@ CONSTRAINT_IK_DISTANCE
struct bTransformCacheConstraint bTransformCacheConstraint
struct bConstraint bConstraint
ePivotConstraint_Axis
@ PIVOTCON_AXIS_X_NEG
@ PIVOTCON_AXIS_X
@ PIVOTCON_AXIS_Z
@ PIVOTCON_AXIS_Z_NEG
@ PIVOTCON_AXIS_Y
@ PIVOTCON_AXIS_NONE
@ PIVOTCON_AXIS_Y_NEG
@ SAMEVOL_SINGLE_AXIS
@ SAMEVOL_STRICT
@ SAMEVOL_UNIFORM
ePivotConstraint_Flag
@ PIVOTCON_FLAG_OFFSET_ABS
@ PIVOTCON_FLAG_ROTACT_NEG
eConstraint_EulerOrder
@ CONSTRAINT_EULER_XZY
@ CONSTRAINT_EULER_YXZ
@ CONSTRAINT_EULER_ZYX
@ CONSTRAINT_EULER_AUTO
@ CONSTRAINT_EULER_ZXY
@ CONSTRAINT_EULER_YZX
@ CONSTRAINT_EULER_XYZ
eCopyTransforms_Flags
@ TRANSLIKE_REMOVE_TARGET_SHEAR
@ LIMITDIST_TRANSFORM
@ LIMITDIST_USESOFT
@ STRETCHTOCON_USE_BULGE_MAX
@ STRETCHTOCON_USE_BULGE_MIN
struct bConstraintChannel bConstraintChannel
eCopyRotation_Flags
@ ROTLIKE_Y_INVERT
@ ROTLIKE_Z_INVERT
@ ROTLIKE_X_INVERT
struct bObjectSolverConstraint bObjectSolverConstraint
eCopyLocation_Flags
@ LOCLIKE_Z_INVERT
@ LOCLIKE_Y_INVERT
@ LOCLIKE_OFFSET
@ LOCLIKE_X_INVERT
struct bKinematicConstraint bKinematicConstraint
struct bRotLimitConstraint bRotLimitConstraint
eStretchTo_PlaneMode
struct bPythonConstraint bPythonConstraint
struct bFollowPathConstraint bFollowPathConstraint
struct bCameraSolverConstraint bCameraSolverConstraint
struct bPivotConstraint bPivotConstraint
@ CHILDOF_SET_INVERSE
eSplineIK_XZScaleModes
@ CONSTRAINT_SPLINEIK_XZS_VOLUMETRIC
@ CONSTRAINT_SPLINEIK_XZS_ORIGINAL
@ CONSTRAINT_SPLINEIK_XZS_NONE
@ CONSTRAINT_SPLINEIK_XZS_INVERSE
@ TRANS_ROTATION
@ TRANS_LOCATION
eTransform_MixModeRot
@ TRANS_MIXROT_REPLACE
@ TRANS_MIXROT_ADD
@ TRANS_MIXROT_BEFORE
@ TRANS_MIXROT_AFTER
struct bDampTrackConstraint bDampTrackConstraint
eFollowTrack_FrameMethod
@ FOLLOWTRACK_FRAME_CROP
@ FOLLOWTRACK_FRAME_FIT
@ FOLLOWTRACK_FRAME_STRETCH
These structs are the foundation for all linked lists in the library system.
signed int int32_t
Definition stdint.h:77
struct bConstraintChannel * prev
struct bConstraintChannel * next
struct bConstraintTarget * prev
struct bConstraintTarget * next
struct Object * space_object
struct bConstraint * prev
struct bConstraint * next
struct Ipo *ipo DNA_DEPRECATED