Blender V4.5
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
9
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
50 char space_subtarget[/*MAX_NAME*/ 64];
51
53 char name[/*MAX_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[/*MAX_NAME*/ 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/* Inverse-Kinematics (IK) constraint
123 * This constraint supports a variety of mode determine by the type field
124 * according to eConstraint_IK_Type.
125 * Some fields are used by all types, some are specific to some types
126 * This is indicated in the comments for each field
127 */
128typedef struct bKinematicConstraint {
130 struct Object *tar;
134 short flag;
136 short rootbone;
140 char subtarget[/*MAX_NAME*/ 64];
144 char polesubtarget[/*MAX_NAME*/ 64];
148 float weight;
152 float grabtarget[3];
154 short type;
156 short mode;
158 float dist;
160
167
168/* Spline IK Constraint
169 * Aligns 'n' bones to the curvature defined by the curve,
170 * with the chain ending on the bone that owns this constraint,
171 * and starting on the nth parent.
172 */
173typedef struct bSplineIKConstraint {
174 /* target(s) */
176 struct Object *tar;
177
178 /* binding details */
183 float *points;
187 short chainlen;
188
189 /* settings */
191 short flag;
196 short _pad[3];
197
198 /* volume preservation settings */
199 float bulge;
204
205/* Armature Constraint */
214
215/* Single-target sub-object constraints --------------------- */
216
217/* Track To Constraint */
218typedef struct bTrackToConstraint {
219 struct Object *tar;
227 int flags;
228 char _pad[4];
229 char subtarget[/*MAX_NAME*/ 64];
231
232/* Copy Rotation Constraint */
233typedef struct bRotateLikeConstraint {
234 struct Object *tar;
235 int flag;
238 char _pad[2];
239 char subtarget[/*MAX_NAME*/ 64];
241
242/* Copy Location Constraint */
243typedef struct bLocateLikeConstraint {
244 struct Object *tar;
245 int flag;
247 char subtarget[/*MAX_NAME*/ 64];
249
250/* Copy Scale Constraint */
251typedef struct bSizeLikeConstraint {
252 struct Object *tar;
253 int flag;
254 float power;
255 char subtarget[/*MAX_NAME*/ 64];
257
258/* Maintain Volume Constraint */
265
266/* Copy Transform Constraint */
267typedef struct bTransLikeConstraint {
268 struct Object *tar;
269 int flag;
271 char _pad[3];
272 char subtarget[/*MAX_NAME*/ 64];
274
275/* Floor Constraint */
276typedef struct bMinMaxConstraint {
277 struct Object *tar;
279 float offset;
280 int flag;
281 char subtarget[/*MAX_NAME*/ 64];
282 int _pad;
284
285/* Action Constraint */
286typedef struct bActionConstraint {
287 struct Object *tar;
289 short type;
291 short local;
293 int start;
295 int end;
297 float min;
299 float max;
300 int flag;
302 char _pad[3];
303 float eval_time; /* Only used when flag ACTCON_USE_EVAL_TIME is set. */
304 struct bAction *act;
306 char last_slot_identifier[/*MAX_ID_NAME*/ 66];
307 char _pad1[2];
308 char subtarget[/*MAX_NAME*/ 64];
310
311/* Locked Axis Tracking constraint */
312typedef struct bLockTrackConstraint {
313 struct Object *tar;
316 char subtarget[/*MAX_NAME*/ 64];
318
319/* Damped Tracking constraint */
320typedef struct bDampTrackConstraint {
321 struct Object *tar;
323 char _pad[4];
324 char subtarget[/*MAX_NAME*/ 64];
326
327/* Follow Path constraints */
342
343/* Stretch to constraint */
344typedef struct bStretchToConstraint {
345 struct Object *tar;
346 int flag;
348 int plane;
350 float bulge;
354 char subtarget[/*MAX_NAME*/ 64];
356
357/* DEPRECATED: Rigid Body constraint */
359 struct Object *tar;
360 struct Object *child;
361 int type;
362 float pivX;
363 float pivY;
364 float pivZ;
365 float axX;
366 float axY;
367 float axZ;
368 float minLimit[6];
369 float maxLimit[6];
370 float extraFz;
371 short flag;
372 char _pad[6];
374
375/* Clamp-To Constraint */
384
385/* Child Of Constraint */
386typedef struct bChildOfConstraint {
388 struct Object *tar;
390 int flag;
391 char _pad[4];
393 float invmat[4][4];
395 char subtarget[/*MAX_NAME*/ 64];
397
398/* Generic Transform->Transform Constraint */
399typedef struct bTransformConstraint {
401 struct Object *tar;
402 char subtarget[/*MAX_NAME*/ 64];
403
405 short from, to;
407 char map[3];
409 char expo;
410
415
420
421 char _pad[3];
422
424 float from_min[3];
426 float from_max[3];
428 float to_min[3];
429 float to_max[3];
430
432 float from_min_rot[3];
434 float from_max_rot[3];
436 float to_min_rot[3];
437 float to_max_rot[3];
438
444 float to_min_scale[3];
445 float to_max_scale[3];
447
448/* Pivot Constraint */
449typedef struct bPivotConstraint {
450 /* Pivot Point:
451 * Either target object + offset, or just offset is used
452 */
454 struct Object *tar;
456 char subtarget[/*MAX_NAME*/ 64];
458 float offset[3];
459
460 /* Rotation-driven activation:
461 * This option provides easier one-stop setups for foot-rolls.
462 */
464 short rotAxis;
465
466 /* General flags */
468 short flag;
470
471/* transform limiting constraints - zero target ---------------------------- */
472/* Limit Location Constraint */
473typedef struct bLocLimitConstraint {
474 float xmin, xmax;
475 float ymin, ymax;
476 float zmin, zmax;
477 short flag;
478 short flag2;
480
481/* Limit Rotation Constraint */
482typedef struct bRotLimitConstraint {
483 float xmin, xmax;
484 float ymin, ymax;
485 float zmin, zmax;
486 short flag;
487 short flag2;
489 char _pad[3];
491
492/* Limit Scale Constraint */
500
501/* Limit Distance Constraint */
502typedef struct bDistLimitConstraint {
503 struct Object *tar;
504 char subtarget[/*MAX_NAME*/ 64];
505
507 float dist;
509 float soft;
510
512 short flag;
514 short mode;
515 char _pad[4];
517
518/* ShrinkWrap Constraint */
539
540/* Follow Track constraints */
543 char track[/*MAX_NAME*/ 64];
544 int flag;
546 char object[/*MAX_NAME*/ 64];
547 struct Object *camera;
550
551/* Camera Solver constraints */
557
558/* Camera Solver constraints */
561 int flag;
562 char _pad[4];
563 char object[/*MAX_NAME*/ 64];
565 float invmat[4][4];
566 struct Object *camera;
568
569/* Transform matrix cache constraint */
572 char object_path[/*FILE_MAX*/ 1024];
573
574 /* Runtime. */
576 char reader_object_path[/*FILE_MAX*/ 1024];
578
579/* ------------------------------------------ */
580
581/* bConstraint->type
582 * - Do not ever change the order of these, or else files could get
583 * broken as their correct value cannot be resolved
584 */
628
629/* bConstraint->flag */
630/* flags 0x2 (1 << 1) and 0x8 (1 << 3) were used in past */
631/* flag 0x20 (1 << 5) was used to indicate that a constraint was evaluated
632 * using a 'local' hack for pose-bones only. */
633typedef enum eBConstraint_Flags {
634#ifdef DNA_DEPRECATED_ALLOW
635 /* Expansion for old box constraint layouts. Just for versioning. */
636 CONSTRAINT_EXPAND_DEPRECATED = (1 << 0),
637#endif
638 /* Constraint is disabled because it is considered invalid. `is_valid` in RNA. */
640 /* to indicate which Ipo should be shown, maybe for 3d access later too */
642 /* to indicate that the owner's space should only be changed into ownspace, but not out of it */
644 /* influence ipo is on constraint itself, not in action channel */
646 /* Constraint is disabled by the user or the animation system (eye icon in the interface). */
647 CONSTRAINT_OFF = (1 << 9),
648 /* use bbone curve shape when calculating headtail values (also used by dependency graph!) */
650 /* That constraint has been inserted in local override (i.e. it can be fully edited!). */
652 /* use full transformation (not just segment locations) - only set at runtime. */
655
656/* bConstraint->ownspace/tarspace */
676
677/* Common enum for constraints that support override. */
690
691/* -------------------------------------- */
692
695 ROTLIKE_X = (1 << 0),
696 ROTLIKE_Y = (1 << 1),
697 ROTLIKE_Z = (1 << 2),
701#ifdef DNA_DEPRECATED_ALLOW
702 ROTLIKE_OFFSET = (1 << 7),
703#endif
705
708 /* Replace rotation channel values. */
710 /* Legacy Offset mode - don't use. */
712 /* Add Euler components together. */
714 /* Multiply the copied rotation on the left. */
716 /* Multiply the copied rotation on the right. */
719
722 LOCLIKE_X = (1 << 0),
723 LOCLIKE_Y = (1 << 1),
724 LOCLIKE_Z = (1 << 2),
726 LOCLIKE_TIP = (1 << 3),
730 LOCLIKE_OFFSET = (1 << 7),
732
734typedef enum eCopyScale_Flags {
735 SIZELIKE_X = (1 << 0),
736 SIZELIKE_Y = (1 << 1),
737 SIZELIKE_Z = (1 << 2),
738 SIZELIKE_OFFSET = (1 << 3),
742
745 /* Remove shear from the target matrix. */
748
751 /* Replace rotation channel values. */
753 /* Multiply the copied transformation on the left, with anti-shear scale handling. */
755 /* Multiply the copied transformation on the right, with anti-shear scale handling. */
757 /* Multiply the copied transformation on the left, handling loc/rot/scale separately. */
759 /* Multiply the copied transformation on the right, handling loc/rot/scale separately. */
761 /* Multiply the copied transformation on the left, using simple matrix multiplication. */
763 /* Multiply the copied transformation on the right, using simple matrix multiplication. */
766
767/* bTransformConstraint.to/from */
773
776 /* Add component values together (default). */
778 /* Replace component values. */
781
784 /* Add component values together (default). */
786 /* Replace component values. */
788 /* Multiply the generated rotation on the left. */
790 /* Multiply the generated rotation on the right. */
793
796 /* Replace component values (default). */
798 /* Multiply component values together. */
801
808
810typedef enum eSameVolume_Mode {
811 /* Strictly maintain the volume, overriding non-free axis scale. */
813 /* Maintain the volume when scale is uniform, pass non-uniform other axis scale through. */
815 /* Maintain the volume when scaled only on the free axis, pass other axis scale through. */
818
821 /* Bones use "object" part of target action, instead of "same bone name" part */
823 /* Ignore the transform of 'tar' and use 'eval_time' instead: */
826
829 /* Replace the input transformation. */
831 /* Multiply the action transformation on the right. */
833 /* Multiply the action transformation on the left. */
835 /* Multiply the action transformation on the right, with anti-shear scale handling. */
837 /* Multiply the action transformation on the left, with anti-shear scale handling. */
839 /* Separately combine Translation, Rotation and Scale, with rotation on the right. */
841 /* Separately combine Translation, Rotation and Scale, with rotation on the left. */
844
845/* Locked-Axis Values (Locked Track) */
851
852/* Up-Axis Values (TrackTo and Locked Track) */
858
859/* Tracking axis (TrackTo, Locked Track, Damped Track) and minmax (floor) constraint */
868
869/* Shrinkwrap flags */
870typedef enum eShrinkwrap_Flags {
871 /* Also ray-cast in the opposite direction. */
873 /* Invert the cull mode when projecting opposite. */
875 /* Align the specified axis to the target normal. */
877
878 /* Ignore front faces in project; same value as MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE */
880 /* Ignore back faces in project; same value as MOD_SHRINKWRAP_CULL_TARGET_BACKFACE */
883
884#define CON_SHRINKWRAP_PROJECT_CULL_MASK \
885 (CON_SHRINKWRAP_PROJECT_CULL_FRONTFACE | CON_SHRINKWRAP_PROJECT_CULL_BACKFACE)
886
887/* FollowPath flags */
893
894/* bTrackToConstraint->flags */
898
899/* Stretch To Constraint -> volmode */
906
907/* Stretch To Constraint -> plane mode */
913
914/* Clamp-To Constraint ->flag */
921
922/* ClampTo Constraint ->flag2 */
926
927/* bKinematicConstraint->flag */
928typedef enum eKinematic_Flags {
931 /* targetless */
933 /* autoik */
939 /* limit axis */
946 /* axis relative to target */
949
951typedef enum eSplineIK_Flags {
956#ifdef DNA_DEPRECATED_ALLOW
958 CONSTRAINT_SPLINEIK_SCALE_LIMITED = (1 << 2),
959#endif
964
968
972
984
994
1004
1005/* MinMax (floor) flags */
1006typedef enum eFloor_Flags {
1007 /* MINMAX_STICKY = (1 << 0), */ /* Deprecated. */
1008 /* MINMAX_STUCK = (1 << 1), */ /* Deprecated. */
1009 MINMAX_USEROT = (1 << 2),
1011
1012/* transform limiting constraints -> flag2 */
1014 /* not used anymore - for older Limit Location constraints only */
1015 /* LIMIT_NOPARENT = (1 << 0), */ /* UNUSED */
1016 /* for all Limit constraints - allow to be used during transform? */
1019
1020/* transform limiting constraints -> flag. */
1022 LIMIT_XMIN = (1 << 0),
1023 LIMIT_XMAX = (1 << 1),
1024 LIMIT_YMIN = (1 << 2),
1025 LIMIT_YMAX = (1 << 3),
1026 LIMIT_ZMIN = (1 << 4),
1027 LIMIT_ZMAX = (1 << 5),
1029
1030/* limit rotation constraint -> flag. */
1031typedef enum eRotLimit_Flags {
1032 LIMIT_XROT = (1 << 0),
1033 LIMIT_YROT = (1 << 1),
1034 LIMIT_ZROT = (1 << 2),
1035
1036 /* Use the legacy behavior of the Limit Rotation constraint. See the
1037 * implementation of `rotlimit_evaluate()` in constraint.cc for more
1038 * details. */
1041
1042/* distance limit constraint */
1043/* bDistLimitConstraint->flag */
1044typedef enum eDistLimit_Flag {
1045 /* "soft" cushion effect when reaching the limit sphere */ /* NOT IMPLEMENTED! */
1047 /* as for all Limit constraints - allow to be used during transform? */
1050
1051/* bDistLimitConstraint->mode */
1057
1058/* ChildOf Constraint -> flag */
1059typedef enum eChildOf_Flags {
1060 CHILDOF_LOCX = (1 << 0),
1061 CHILDOF_LOCY = (1 << 1),
1062 CHILDOF_LOCZ = (1 << 2),
1063 CHILDOF_ROTX = (1 << 3),
1064 CHILDOF_ROTY = (1 << 4),
1065 CHILDOF_ROTZ = (1 << 5),
1066 CHILDOF_SIZEX = (1 << 6),
1067 CHILDOF_SIZEY = (1 << 7),
1068 CHILDOF_SIZEZ = (1 << 8),
1070 /* Temporary flag used by the Set Inverse operator. */
1073
1097
1098/* settings for Pivot Constraint in general */
1100 /* offset is to be interpreted as being a fixed-point in space */
1102 /* rotation-based activation uses negative rotation to drive result */
1105
1111
1117
1118/* CameraSolver Constraint -> flag */
1122
1123/* ObjectSolver Constraint -> flag */
1126 /* Temporary flag used by the Set Inverse operator. */
1129
1130/* ObjectSolver Constraint -> flag */
ID and Library types, which are fundamental for SDNA.
@ 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
@ 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
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_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
@ LIMITDIST_INSIDE
@ LIMITDIST_OUTSIDE
@ LIMITDIST_ONSURFACE
@ CONSTRAINT_ARMATURE_QUATERNION
@ CONSTRAINT_ARMATURE_ENVELOPE
@ CONSTRAINT_ARMATURE_CUR_LOCATION
@ CAMERASOLVER_ACTIVECLIP
@ FOLLOWTRACK_USE_UNDISTORTION
@ FOLLOWTRACK_USE_3D_POSITION
@ FOLLOWTRACK_ACTIVECLIP
eActionConstraint_Flags
@ ACTCON_BONE_USE_OBJECT_ACTION
@ ACTCON_USE_EVAL_TIME
@ LIMIT_ROT_LEGACY_BEHAVIOR
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
eActionConstraint_MixMode
@ ACTCON_MIX_BEFORE
@ ACTCON_MIX_REPLACE
@ 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
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
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
@ 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
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
eCopyRotation_Flags
@ ROTLIKE_Y_INVERT
@ ROTLIKE_Z_INVERT
@ ROTLIKE_X_INVERT
eCopyLocation_Flags
@ LOCLIKE_Z_INVERT
@ LOCLIKE_Y_INVERT
@ LOCLIKE_OFFSET
@ LOCLIKE_X_INVERT
eStretchTo_PlaneMode
@ 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
eFollowTrack_FrameMethod
@ FOLLOWTRACK_FRAME_CROP
@ FOLLOWTRACK_FRAME_FIT
@ FOLLOWTRACK_FRAME_STRETCH
These structs are the foundation for all linked lists in the library system.
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