Blender  V3.3
DNA_constraint_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
9 #pragma once
10 
11 #include "DNA_ID.h"
12 #include "DNA_defs.h"
13 #include "DNA_listBase.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 struct Action;
20 struct Ipo;
21 struct Text;
22 
23 /* channels reside in Object or Action (ListBase) constraintChannels */
24 /* XXX: deprecated... old AnimSys. */
25 typedef struct bConstraintChannel {
27  struct Ipo *ipo;
28  short flag;
29  char name[30];
31 
32 /* A Constraint */
33 typedef struct bConstraint {
34  struct bConstraint *next, *prev;
35 
37  void *data;
39  short type;
41  short flag;
42 
44  char ownspace;
46  char tarspace;
47 
48  /* An "expand" bit for each of the constraint's (sub)panels (uiPanelDataExpansion). */
50 
54  char space_subtarget[64];
55 
57  char name[64];
58 
60  float enforce;
62  float headtail;
63 
64  /* old animation system, deprecated for 2.5. */
66  struct Ipo *ipo DNA_DEPRECATED;
67 
68  /* Below are read-only fields that are set at runtime
69  * by the solver for use in the GE (only IK at the moment). */
71  float lin_error;
73  float rot_error;
75 
76 /* Multiple-target constraints --------------------- */
77 
78 /* This struct defines a constraint target.
79  * It is used during constraint solving regardless of how many targets the
80  * constraint has.
81  */
82 typedef struct bConstraintTarget {
84 
86  struct Object *tar;
88  char subtarget[64];
89 
91  float matrix[4][4];
92 
94  short space;
96  short flag;
98  short type;
100  short rotOrder;
102  float weight;
103  char _pad[4];
105 
106 /* bConstraintTarget -> flag */
107 typedef enum eConstraintTargetFlag {
113 
114 /* bConstraintTarget/bConstraintOb -> type */
115 typedef enum eConstraintObType {
123  /* CONSTRAINT_OBTYPE_CV = 4, */ /* UNUSED */
125 
126 /* Python Script Constraint */
127 typedef struct bPythonConstraint {
129  struct Text *text;
132 
134  int flag;
136  int tarnum;
137 
140 
145  struct Object *tar;
150  char subtarget[64];
152 
153 /* Inverse-Kinematics (IK) constraint
154  * This constraint supports a variety of mode determine by the type field
155  * according to eConstraint_IK_Type.
156  * Some fields are used by all types, some are specific to some types
157  * This is indicated in the comments for each field
158  */
159 typedef struct bKinematicConstraint {
161  struct Object *tar;
163  short iterations;
165  short flag;
167  short rootbone;
171  char subtarget[64];
173  struct Object *poletar;
175  char polesubtarget[64];
177  float poleangle;
179  float weight;
183  float grabtarget[3];
185  short type;
187  short mode;
189  float dist;
191 
192 typedef enum eConstraint_IK_Type {
198 
199 /* Spline IK Constraint
200  * Aligns 'n' bones to the curvature defined by the curve,
201  * with the chain ending on the bone that owns this constraint,
202  * and starting on the nth parent.
203  */
204 typedef struct bSplineIKConstraint {
205  /* target(s) */
207  struct Object *tar;
208 
209  /* binding details */
214  float *points;
216  short numpoints;
218  short chainlen;
219 
220  /* settings */
222  short flag;
224  short xzScaleMode;
226  short yScaleMode;
227  short _pad[3];
228 
229  /* volume preservation settings */
230  float bulge;
231  float bulge_min;
232  float bulge_max;
235 
236 /* Armature Constraint */
237 typedef struct bArmatureConstraint {
239  int flag;
240  char _pad[4];
241 
245 
246 /* Single-target subobject constraints --------------------- */
247 
248 /* Track To Constraint */
249 typedef struct bTrackToConstraint {
250  struct Object *tar;
258  int flags;
259  char _pad[4];
261  char subtarget[64];
263 
264 /* Copy Rotation Constraint */
265 typedef struct bRotateLikeConstraint {
266  struct Object *tar;
267  int flag;
269  char mix_mode;
270  char _pad[2];
272  char subtarget[64];
274 
275 /* Copy Location Constraint */
276 typedef struct bLocateLikeConstraint {
277  struct Object *tar;
278  int flag;
281  char subtarget[64];
283 
284 /* Copy Scale Constraint */
285 typedef struct bSizeLikeConstraint {
286  struct Object *tar;
287  int flag;
288  float power;
290  char subtarget[64];
292 
293 /* Maintain Volume Constraint */
294 typedef struct bSameVolumeConstraint {
295  char free_axis;
296  char mode;
297  char _pad[2];
298  float volume;
300 
301 /* Copy Transform Constraint */
302 typedef struct bTransLikeConstraint {
303  struct Object *tar;
304  int flag;
305  char mix_mode;
306  char _pad[3];
308  char subtarget[64];
310 
311 /* Floor Constraint */
312 typedef struct bMinMaxConstraint {
313  struct Object *tar;
315  float offset;
316  int flag;
318  char subtarget[64];
319  int _pad;
321 
322 /* Action Constraint */
323 typedef struct bActionConstraint {
324  struct Object *tar;
326  short type;
328  short local;
329  int start;
330  int end;
331  float min;
332  float max;
333  int flag;
334  char mix_mode;
335  char _pad[3];
336  float eval_time; /* Only used when flag ACTCON_USE_EVAL_TIME is set. */
337  struct bAction *act;
339  char subtarget[64];
341 
342 /* Locked Axis Tracking constraint */
343 typedef struct bLockTrackConstraint {
344  struct Object *tar;
346  int lockflag;
348  char subtarget[64];
350 
351 /* Damped Tracking constraint */
352 typedef struct bDampTrackConstraint {
353  struct Object *tar;
355  char _pad[4];
357  char subtarget[64];
359 
360 /* Follow Path constraints */
361 typedef struct bFollowPathConstraint {
363  struct Object *tar;
364 
366  float offset;
368  float offset_fac;
369 
371 
372  short trackflag;
373  short upflag;
375 
376 /* Stretch to constraint */
377 typedef struct bStretchToConstraint {
378  struct Object *tar;
379  int flag;
380  int volmode;
381  int plane;
382  float orglength;
383  float bulge;
384  float bulge_min;
385  float bulge_max;
388  char subtarget[64];
390 
391 /* Rigid Body constraint */
393  struct Object *tar;
394  struct Object *child;
395  int type;
396  float pivX;
397  float pivY;
398  float pivZ;
399  float axX;
400  float axY;
401  float axZ;
402  float minLimit[6];
403  float maxLimit[6];
404  float extraFz;
405  short flag;
406  char _pad[6];
408 
409 /* Clamp-To Constraint */
410 typedef struct bClampToConstraint {
412  struct Object *tar;
414  int flag;
416  int flag2;
418 
419 /* Child Of Constraint */
420 typedef struct bChildOfConstraint {
422  struct Object *tar;
424  int flag;
425  char _pad[4];
427  float invmat[4][4];
429  char subtarget[64];
431 
432 /* Generic Transform->Transform Constraint */
433 typedef struct bTransformConstraint {
435  struct Object *tar;
437  char subtarget[64];
438 
440  short from, to;
442  char map[3];
444  char expo;
445 
450 
455 
456  char _pad[3];
457 
459  float from_min[3];
461  float from_max[3];
463  float to_min[3];
464  float to_max[3];
465 
467  float from_min_rot[3];
469  float from_max_rot[3];
471  float to_min_rot[3];
472  float to_max_rot[3];
473 
475  float from_min_scale[3];
477  float from_max_scale[3];
479  float to_min_scale[3];
480  float to_max_scale[3];
482 
483 /* Pivot Constraint */
484 typedef struct bPivotConstraint {
485  /* Pivot Point:
486  * Either target object + offset, or just offset is used
487  */
489  struct Object *tar;
491  char subtarget[64];
493  float offset[3];
494 
495  /* Rotation-driven activation:
496  * This option provides easier one-stop setups for foot-rolls.
497  */
499  short rotAxis;
500 
501  /* General flags */
503  short flag;
505 
506 /* transform limiting constraints - zero target ---------------------------- */
507 /* Limit Location Constraint */
508 typedef struct bLocLimitConstraint {
509  float xmin, xmax;
510  float ymin, ymax;
511  float zmin, zmax;
512  short flag;
513  short flag2;
515 
516 /* Limit Rotation Constraint */
517 typedef struct bRotLimitConstraint {
518  float xmin, xmax;
519  float ymin, ymax;
520  float zmin, zmax;
521  short flag;
522  short flag2;
524  char _pad[3];
526 
527 /* Limit Scale Constraint */
528 typedef struct bSizeLimitConstraint {
529  float xmin, xmax;
530  float ymin, ymax;
531  float zmin, zmax;
532  short flag;
533  short flag2;
535 
536 /* Limit Distance Constraint */
537 typedef struct bDistLimitConstraint {
538  struct Object *tar;
540  char subtarget[64];
541 
543  float dist;
545  float soft;
546 
548  short flag;
550  short mode;
551  char _pad[4];
553 
554 /* ShrinkWrap Constraint */
555 typedef struct bShrinkwrapConstraint {
556  struct Object *target;
558  float dist;
560  short shrinkType;
562  char projAxis;
566  float projLimit;
570  char flag;
572  char trackAxis;
573  char _pad;
575 
576 /* Follow Track constraints */
577 typedef struct bFollowTrackConstraint {
578  struct MovieClip *clip;
580  char track[64];
581  int flag;
584  char object[64];
585  struct Object *camera;
586  struct Object *depth_ob;
588 
589 /* Camera Solver constraints */
590 typedef struct bCameraSolverConstraint {
591  struct MovieClip *clip;
592  int flag;
593  char _pad[4];
595 
596 /* Camera Solver constraints */
597 typedef struct bObjectSolverConstraint {
598  struct MovieClip *clip;
599  int flag;
600  char _pad[4];
602  char object[64];
604  float invmat[4][4];
605  struct Object *camera;
607 
608 /* Transform matrix cache constraint */
612  char object_path[1024];
613 
614  /* Runtime. */
616  char reader_object_path[1024];
618 
619 /* ------------------------------------------ */
620 
621 /* bConstraint->type
622  * - Do not ever change the order of these, or else files could get
623  * broken as their correct value cannot be resolved
624  */
625 typedef enum eBConstraint_Types {
653  /* CONSTRAINT_TYPE_DEPRECATED = 17 */
680 
681  /* NOTE: no constraints are allowed to be added after this */
684 
685 /* bConstraint->flag */
686 /* flags 0x2 (1 << 1) and 0x8 (1 << 3) were used in past */
687 /* flag 0x20 (1 << 5) was used to indicate that a constraint was evaluated
688  * using a 'local' hack for posebones only. */
689 typedef enum eBConstraint_Flags {
690 #ifdef DNA_DEPRECATED_ALLOW
691  /* Expansion for old box constraint layouts. Just for versioning. */
692  CONSTRAINT_EXPAND_DEPRECATED = (1 << 0),
693 #endif
694  /* pre-check for illegal object name or bone name */
695  CONSTRAINT_DISABLE = (1 << 2),
696  /* to indicate which Ipo should be shown, maybe for 3d access later too */
697  CONSTRAINT_ACTIVE = (1 << 4),
698  /* to indicate that the owner's space should only be changed into ownspace, but not out of it */
700  /* influence ipo is on constraint itself, not in action channel */
701  CONSTRAINT_OWN_IPO = (1 << 7),
702  /* indicates that constraint is temporarily disabled (only used in GE) */
703  CONSTRAINT_OFF = (1 << 9),
704  /* use bbone curve shape when calculating headtail values (also used by dependency graph!) */
706  /* That constraint has been inserted in local override (i.e. it can be fully edited!). */
708  /* use full transformation (not just segment locations) - only set at runtime. */
711 
712 /* bConstraint->ownspace/tarspace */
730  CONSTRAINT_SPACE_INVALID = 4, /* do not exchange for anything! */
732 
733 /* Common enum for constraints that support override. */
737 
746 
747 /* -------------------------------------- */
748 
750 typedef enum eCopyRotation_Flags {
751  ROTLIKE_X = (1 << 0),
752  ROTLIKE_Y = (1 << 1),
753  ROTLIKE_Z = (1 << 2),
754  ROTLIKE_X_INVERT = (1 << 4),
755  ROTLIKE_Y_INVERT = (1 << 5),
756  ROTLIKE_Z_INVERT = (1 << 6),
757 #ifdef DNA_DEPRECATED_ALLOW
758  ROTLIKE_OFFSET = (1 << 7),
759 #endif
761 
763 typedef enum eCopyRotation_MixMode {
764  /* Replace rotation channel values. */
766  /* Legacy Offset mode - don't use. */
768  /* Add Euler components together. */
770  /* Multiply the copied rotation on the left. */
772  /* Multiply the copied rotation on the right. */
775 
777 typedef enum eCopyLocation_Flags {
778  LOCLIKE_X = (1 << 0),
779  LOCLIKE_Y = (1 << 1),
780  LOCLIKE_Z = (1 << 2),
782  LOCLIKE_TIP = (1 << 3),
783  LOCLIKE_X_INVERT = (1 << 4),
784  LOCLIKE_Y_INVERT = (1 << 5),
785  LOCLIKE_Z_INVERT = (1 << 6),
786  LOCLIKE_OFFSET = (1 << 7),
788 
790 typedef enum eCopyScale_Flags {
791  SIZELIKE_X = (1 << 0),
792  SIZELIKE_Y = (1 << 1),
793  SIZELIKE_Z = (1 << 2),
794  SIZELIKE_OFFSET = (1 << 3),
795  SIZELIKE_MULTIPLY = (1 << 4),
796  SIZELIKE_UNIFORM = (1 << 5),
798 
800 typedef enum eCopyTransforms_Flags {
801  /* Remove shear from the target matrix. */
804 
807  /* Replace rotation channel values. */
809  /* Multiply the copied transformation on the left, with anti-shear scale handling. */
811  /* Multiply the copied transformation on the right, with anti-shear scale handling. */
813  /* Multiply the copied transformation on the left, handling loc/rot/scale separately. */
815  /* Multiply the copied transformation on the right, handling loc/rot/scale separately. */
817  /* Multiply the copied transformation on the left, using simple matrix multiplication. */
819  /* Multiply the copied transformation on the right, using simple matrix multiplication. */
822 
823 /* bTransformConstraint.to/from */
824 typedef enum eTransform_ToFrom {
829 
831 typedef enum eTransform_MixModeLoc {
832  /* Add component values together (default). */
834  /* Replace component values. */
837 
839 typedef enum eTransform_MixModeRot {
840  /* Add component values together (default). */
842  /* Replace component values. */
844  /* Multiply the generated rotation on the left. */
846  /* Multiply the generated rotation on the right. */
849 
852  /* Replace component values (default). */
854  /* Multiply component values together. */
857 
859 typedef enum eSameVolume_Axis {
864 
866 typedef enum eSameVolume_Mode {
867  /* Strictly maintain the volume, overriding non-free axis scale. */
869  /* Maintain the volume when scale is uniform, pass non-uniform other axis scale through. */
871  /* Maintain the volume when scaled only on the free axis, pass other axis scale through. */
874 
877  /* Bones use "object" part of target action, instead of "same bone name" part */
879  /* Ignore the transform of 'tar' and use 'eval_time' instead: */
882 
885  /* Multiply the action transformation on the right. */
887  /* Multiply the action transformation on the left. */
889  /* Multiply the action transformation on the right, with anti-shear scale handling. */
891  /* Multiply the action transformation on the left, with anti-shear scale handling. */
893  /* Separately combine Translation, Rotation and Scale, with rotation on the right. */
895  /* Separately combine Translation, Rotation and Scale, with rotation on the left. */
898 
899 /* Locked-Axis Values (Locked Track) */
900 typedef enum eLockAxis_Modes {
901  LOCK_X = 0,
902  LOCK_Y = 1,
903  LOCK_Z = 2,
905 
906 /* Up-Axis Values (TrackTo and Locked Track) */
907 typedef enum eUpAxis_Modes {
908  UP_X = 0,
909  UP_Y = 1,
910  UP_Z = 2,
912 
913 /* Tracking axis (TrackTo, Locked Track, Damped Track) and minmax (floor) constraint */
914 typedef enum eTrackToAxis_Modes {
915  TRACK_X = 0,
916  TRACK_Y = 1,
917  TRACK_Z = 2,
918  TRACK_nX = 3,
919  TRACK_nY = 4,
920  TRACK_nZ = 5,
922 
923 /* Shrinkwrap flags */
924 typedef enum eShrinkwrap_Flags {
925  /* Also ray-cast in the opposite direction. */
927  /* Invert the cull mode when projecting opposite. */
929  /* Align the specified axis to the target normal. */
931 
932  /* Ignore front faces in project; same value as MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE */
934  /* Ignore back faces in project; same value as MOD_SHRINKWRAP_CULL_TARGET_BACKFACE */
937 
938 #define CON_SHRINKWRAP_PROJECT_CULL_MASK \
939  (CON_SHRINKWRAP_PROJECT_CULL_FRONTFACE | CON_SHRINKWRAP_PROJECT_CULL_BACKFACE)
940 
941 /* FollowPath flags */
942 typedef enum eFollowPath_Flags {
943  FOLLOWPATH_FOLLOW = (1 << 0),
944  FOLLOWPATH_STATIC = (1 << 1),
945  FOLLOWPATH_RADIUS = (1 << 2),
947 
948 /* bTrackToConstraint->flags */
949 typedef enum eTrackTo_Flags {
950  TARGET_Z_UP = (1 << 0),
952 
953 /* Stretch To Constraint -> volmode */
954 typedef enum eStretchTo_VolMode {
956  VOLUME_X = 1,
957  VOLUME_Z = 2,
960 
961 /* Stretch To Constraint -> plane mode */
962 typedef enum eStretchTo_PlaneMode {
963  PLANE_X = 0,
964  SWING_Y = 1,
965  PLANE_Z = 2,
967 
968 /* Clamp-To Constraint ->flag */
969 typedef enum eClampTo_Modes {
975 
976 /* ClampTo Constraint ->flag2 */
977 typedef enum eClampTo_Flags {
978  CLAMPTO_CYCLIC = (1 << 0),
980 
981 /* bKinematicConstraint->flag */
982 typedef enum eKinematic_Flags {
983  CONSTRAINT_IK_TIP = (1 << 0),
984  CONSTRAINT_IK_ROT = (1 << 1),
985  /* targetless */
986  CONSTRAINT_IK_AUTO = (1 << 2),
987  /* autoik */
988  CONSTRAINT_IK_TEMP = (1 << 3),
990  CONSTRAINT_IK_POS = (1 << 5),
993  /* limit axis */
1000  /* axis relative to target */
1003 
1004 /* bSplineIKConstraint->flag */
1005 typedef enum eSplineIK_Flags {
1006  /* chain has been attached to spline */
1008  /* root of chain is not influenced by the constraint */
1010 #ifdef DNA_DEPRECATED_ALLOW
1011  /* bones in the chain should not scale to fit the curve */
1012  CONSTRAINT_SPLINEIK_SCALE_LIMITED = (1 << 2),
1013 #endif
1014  /* evenly distribute the bones along the path regardless of length */
1016  /* don't adjust the x and z scaling of the bones by the curve radius */
1018 
1019  /* for "volumetric" xz scale mode, limit the minimum or maximum scale values */
1022 
1023  /* apply volume preservation over original scaling of the bone */
1026 
1027 /* bSplineIKConstraint->xzScaleMode */
1029  /* no x/z scaling */
1031  /* bones in the chain should take their x/z scales from the original scaling */
1033  /* x/z scales are the inverse of the y-scale */
1035  /* x/z scales are computed using a volume preserving technique (from Stretch To constraint) */
1038 
1039 /* bSplineIKConstraint->yScaleMode */
1041  /* no y scaling */
1043  /* bones in the chain should be scaled to fit the length of the curve */
1045  /* bones in the chain should take their y scales from the original scaling */
1048 
1049 /* bArmatureConstraint -> flag */
1050 typedef enum eArmature_Flags {
1058 
1059 /* MinMax (floor) flags */
1060 typedef enum eFloor_Flags {
1061  /* MINMAX_STICKY = (1 << 0), */ /* Deprecated. */
1062  /* MINMAX_STUCK = (1 << 1), */ /* Deprecated. */
1063  MINMAX_USEROT = (1 << 2),
1065 
1066 /* transform limiting constraints -> flag2 */
1068  /* not used anymore - for older Limit Location constraints only */
1069  /* LIMIT_NOPARENT = (1 << 0), */ /* UNUSED */
1070  /* for all Limit constraints - allow to be used during transform? */
1071  LIMIT_TRANSFORM = (1 << 1),
1073 
1074 /* transform limiting constraints -> flag (own flags). */
1076  LIMIT_XMIN = (1 << 0),
1077  LIMIT_XMAX = (1 << 1),
1078  LIMIT_YMIN = (1 << 2),
1079  LIMIT_YMAX = (1 << 3),
1080  LIMIT_ZMIN = (1 << 4),
1081  LIMIT_ZMAX = (1 << 5),
1083 
1084 /* limit rotation constraint -> flag (own flags). */
1085 typedef enum eRotLimit_Flags {
1086  LIMIT_XROT = (1 << 0),
1087  LIMIT_YROT = (1 << 1),
1088  LIMIT_ZROT = (1 << 2),
1090 
1091 /* distance limit constraint */
1092 /* bDistLimitConstraint->flag */
1093 typedef enum eDistLimit_Flag {
1094  /* "soft" cushion effect when reaching the limit sphere */ /* NOT IMPLEMENTED! */
1095  LIMITDIST_USESOFT = (1 << 0),
1096  /* as for all Limit constraints - allow to be used during transform? */
1099 
1100 /* bDistLimitConstraint->mode */
1101 typedef enum eDistLimit_Modes {
1106 
1107 /* python constraint -> flag */
1108 typedef enum ePyConstraint_Flags {
1109  PYCON_USETARGETS = (1 << 0),
1110  PYCON_SCRIPTERROR = (1 << 1),
1112 
1113 /* ChildOf Constraint -> flag */
1114 typedef enum eChildOf_Flags {
1115  CHILDOF_LOCX = (1 << 0),
1116  CHILDOF_LOCY = (1 << 1),
1117  CHILDOF_LOCZ = (1 << 2),
1118  CHILDOF_ROTX = (1 << 3),
1119  CHILDOF_ROTY = (1 << 4),
1120  CHILDOF_ROTZ = (1 << 5),
1121  CHILDOF_SIZEX = (1 << 6),
1122  CHILDOF_SIZEY = (1 << 7),
1123  CHILDOF_SIZEZ = (1 << 8),
1125  /* Temporary flag used by the Set Inverse operator. */
1128 
1129 /* Pivot Constraint */
1130 /* Restrictions for Pivot Constraint axis to consider for enabling constraint */
1132  /* do not consider this activity-clamping */
1134 
1135  /* consider -ve x-axis rotations */
1137  /* consider -ve y-axis rotations */
1139  /* consider -ve z-axis rotations */
1141 
1142  /* consider +ve x-axis rotations */
1144  /* consider +ve y-axis rotations */
1146  /* consider +ve z-axis rotations */
1149 
1150 /* settings for Pivot Constraint in general */
1152  /* offset is to be interpreted as being a fixed-point in space */
1154  /* rotation-based activation uses negative rotation to drive result */
1157 
1158 typedef enum eFollowTrack_Flags {
1163 
1169 
1170 /* CameraSolver Constraint -> flag */
1171 typedef enum eCameraSolver_Flags {
1174 
1175 /* ObjectSolver Constraint -> flag */
1176 typedef enum eObjectSolver_Flags {
1178  /* Temporary flag used by the Set Inverse operator. */
1181 
1182 /* ObjectSolver Constraint -> flag */
1183 typedef enum eStretchTo_Flags {
1187 
1188 #ifdef __cplusplus
1189 }
1190 #endif
ID and Library types, which are fundamental for sdna.
struct bStretchToConstraint bStretchToConstraint
eBConstraint_Flags
@ CONSTRAINT_BBONE_SHAPE
@ CONSTRAINT_OFF
@ CONSTRAINT_OVERRIDE_LIBRARY_LOCAL
@ CONSTRAINT_SPACEONCE
@ CONSTRAINT_ACTIVE
@ CONSTRAINT_DISABLE
@ CONSTRAINT_OWN_IPO
@ CONSTRAINT_BBONE_SHAPE_FULL
eCopyScale_Flags
@ SIZELIKE_MULTIPLY
@ SIZELIKE_Z
@ SIZELIKE_UNIFORM
@ SIZELIKE_Y
@ SIZELIKE_X
@ SIZELIKE_OFFSET
struct bFollowTrackConstraint bFollowTrackConstraint
struct bActionConstraint bActionConstraint
eKinematic_Flags
@ 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
eBConstraint_Types
@ 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
eSameVolume_Axis
eConstraintObType
@ 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
eCameraSolver_Flags
@ CAMERASOLVER_ACTIVECLIP
struct bSplineIKConstraint bSplineIKConstraint
eFollowTrack_Flags
@ FOLLOWTRACK_USE_UNDISTORTION
@ FOLLOWTRACK_USE_3D_POSITION
@ FOLLOWTRACK_ACTIVECLIP
@ MINMAX_USEROT
struct bLockTrackConstraint bLockTrackConstraint
struct bRigidBodyJointConstraint bRigidBodyJointConstraint
eActionConstraint_Flags
@ ACTCON_BONE_USE_OBJECT_ACTION
@ ACTCON_USE_EVAL_TIME
struct bTransformConstraint bTransformConstraint
struct bSizeLimitConstraint bSizeLimitConstraint
struct bArmatureConstraint bArmatureConstraint
@ TARGET_Z_UP
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
eFollowPath_Flags
@ FOLLOWPATH_FOLLOW
@ FOLLOWPATH_RADIUS
@ FOLLOWPATH_STATIC
eTransformLimits_Flags2
@ LIMIT_TRANSFORM
struct bSizeLikeConstraint bSizeLikeConstraint
ePyConstraint_Flags
@ 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
eObjectSolver_Flags
@ OBJECTSOLVER_ACTIVECLIP
@ OBJECTSOLVER_SET_INVERSE
eShrinkwrap_Flags
@ 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
eTrackToAxis_Modes
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
eSameVolume_Mode
@ 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_TIP
@ LOCLIKE_OFFSET
@ LOCLIKE_X_INVERT
struct bKinematicConstraint bKinematicConstraint
struct bRotLimitConstraint bRotLimitConstraint
eStretchTo_PlaneMode
eStretchTo_VolMode
struct bPythonConstraint bPythonConstraint
struct bFollowPathConstraint bFollowPathConstraint
struct bCameraSolverConstraint bCameraSolverConstraint
struct bPivotConstraint bPivotConstraint
@ CHILDOF_ROTY
@ CHILDOF_LOCZ
@ CHILDOF_ROTX
@ CHILDOF_SIZEX
@ CHILDOF_SIZEZ
@ CHILDOF_LOCX
@ CHILDOF_SIZEY
@ CHILDOF_ROTZ
@ CHILDOF_SET_INVERSE
@ CHILDOF_LOCY
eSplineIK_XZScaleModes
@ CONSTRAINT_SPLINEIK_XZS_VOLUMETRIC
@ CONSTRAINT_SPLINEIK_XZS_ORIGINAL
@ CONSTRAINT_SPLINEIK_XZS_NONE
@ CONSTRAINT_SPLINEIK_XZS_INVERSE
eTransform_ToFrom
@ TRANS_SCALE
@ TRANS_ROTATION
@ TRANS_LOCATION
@ CLAMPTO_AUTO
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.
struct bAction * act
struct bConstraintChannel * prev
struct bConstraintChannel * next
struct bConstraintTarget * prev
struct bConstraintTarget * next
struct Object * space_object
struct bConstraint * prev
struct bConstraint * next
char space_subtarget[64]
struct Ipo *ipo DNA_DEPRECATED