Blender  V2.93
DNA_modifier_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
21 #pragma once
22 
23 #include "DNA_defs.h"
24 #include "DNA_listBase.h"
25 #include "DNA_session_uuid_types.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 /* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE!
32  * (ONLY ADD NEW ITEMS AT THE END)
33  */
34 
35 struct Mesh;
36 
37 typedef enum ModifierType {
69 #ifdef DNA_DEPRECATED_ALLOW
70  eModifierType_Smoke = 31,
71 #endif
103 
104 typedef enum ModifierMode {
109 #ifdef DNA_DEPRECATED_ALLOW
111  eModifierMode_Expanded_DEPRECATED = (1 << 4),
112 #endif
117 
118 typedef struct ModifierData {
119  struct ModifierData *next, *prev;
120 
121  int type, mode;
122  char _pad0[4];
123  short flag;
124  /* An "expand" bit for each of the modifier's (sub)panels (uiPanelDataExpansion). */
127  char name[64];
128 
129  char *error;
130 
131  /* Pointer to a ModifierData in the original domain. */
133 
134  /* Runtime field which contains unique identifier of the modifier. */
136 
137  /* Runtime field which contains runtime data which is specific to a modifier type. */
138  void *runtime;
139  void *_pad1;
141 
142 typedef enum {
143  /* This modifier has been inserted in local override, and hence can be fully edited. */
145  /* This modifier does not own its caches, but instead shares them with another modifier. */
152 } ModifierFlag;
153 
154 /* not a real modifier */
155 typedef struct MappingInfoModifierData {
157 
158  struct Tex *texture;
160  char map_bone[64];
162  char uvlayer_name[64];
166 
167 typedef enum {
171  /* DEPRECATED, ONLY USED FOR DO-VERSIONS */
177 
178 typedef enum {
182 
183 typedef enum {
191 
192 typedef enum {
196 
197 typedef struct SubsurfModifierData {
199 
201  short uv_smooth;
202  short quality;
204  char _pad[2];
205 
206  /* TODO(sergey): Get rid of those with the old CCG subdivision code. */
207  void *emCache, *mCache;
209 
210 typedef struct LatticeModifierData {
212 
213  struct Object *object;
215  char name[64];
216  float strength;
217  short flag;
218  char _pad[2];
219  void *_pad1;
221 
222 /*Lattice modifier flags */
223 enum {
225 };
226 
227 typedef struct CurveModifierData {
229 
230  struct Object *object;
232  char name[64];
234  short defaxis;
235  short flag;
236  char _pad[4];
237  void *_pad1;
239 
240 /* Curve modifier flags */
241 enum {
243 };
244 
245 /* CurveModifierData->defaxis */
246 enum {
253 };
254 
255 typedef struct BuildModifierData {
257 
258  float start, length;
259  short flag;
260 
262  short randomize;
264  int seed;
266 
267 /* Build Modifier -> flag */
268 enum {
273 };
274 
275 /* Mask Modifier */
276 typedef struct MaskModifierData {
278 
280  struct Object *ob_arm;
282  char vgroup[64];
283 
285  short mode;
287  short flag;
288  float threshold;
289  void *_pad1;
291 
292 /* Mask Modifier -> mode */
293 enum {
296 };
297 
298 /* Mask Modifier -> flag */
299 enum {
300  MOD_MASK_INV = (1 << 0),
301 };
302 
303 typedef struct ArrayModifierData {
305 
306  /* the object with which to cap the start of the array */
307  struct Object *start_cap;
308  /* the object with which to cap the end of the array */
309  struct Object *end_cap;
310  /* the curve object to use for MOD_ARR_FITCURVE */
311  struct Object *curve_ob;
312  /* the object to use for object offset */
313  struct Object *offset_ob;
314  /* a constant duplicate offset;
315  * 1 means the duplicates are 1 unit apart
316  */
317  float offset[3];
318  /* a scaled factor for duplicate offsets;
319  * 1 means the duplicates are 1 object-width apart
320  */
321  float scale[3];
322  /* the length over which to distribute the duplicates */
323  float length;
324  /* the limit below which to merge vertices in adjacent duplicates */
325  float merge_dist;
326  /* determines how duplicate count is calculated; one of:
327  * - MOD_ARR_FIXEDCOUNT -> fixed
328  * - MOD_ARR_FITLENGTH -> calculated to fit a set length
329  * - MOD_ARR_FITCURVE -> calculated to fit the length of a Curve object
330  */
331  int fit_type;
332  /* flags specifying how total offset is calculated; binary OR of:
333  * - MOD_ARR_OFF_CONST -> total offset += offset
334  * - MOD_ARR_OFF_RELATIVE -> total offset += relative * object width
335  * - MOD_ARR_OFF_OBJ -> total offset += offset_ob's matrix
336  * total offset is the sum of the individual enabled offsets
337  */
339  /* general flags:
340  * MOD_ARR_MERGE -> merge vertices in adjacent duplicates
341  */
342  int flags;
343  /* the number of duplicates to generate for MOD_ARR_FIXEDCOUNT */
344  int count;
345  float uv_offset[2];
347 
348 /* ArrayModifierData->fit_type */
349 enum {
353 };
354 
355 /* ArrayModifierData->offset_type */
356 enum {
357  MOD_ARR_OFF_CONST = (1 << 0),
359  MOD_ARR_OFF_OBJ = (1 << 2),
360 };
361 
362 /* ArrayModifierData->flags */
363 enum {
364  MOD_ARR_MERGE = (1 << 0),
365  MOD_ARR_MERGEFINAL = (1 << 1),
366 };
367 
368 typedef struct MirrorModifierData {
370 
372  short axis DNA_DEPRECATED;
373  short flag;
374  float tolerance;
376  char _pad[4];
377  float uv_offset[2];
378  float uv_offset_copy[2];
379  struct Object *mirror_ob;
380  void *_pad1;
382 
383 /* MirrorModifierData->flag */
384 enum {
385  MOD_MIR_CLIPPING = (1 << 0),
386  MOD_MIR_MIRROR_U = (1 << 1),
387  MOD_MIR_MIRROR_V = (1 << 2),
388  MOD_MIR_AXIS_X = (1 << 3),
389  MOD_MIR_AXIS_Y = (1 << 4),
390  MOD_MIR_AXIS_Z = (1 << 5),
391  MOD_MIR_VGROUP = (1 << 6),
392  MOD_MIR_NO_MERGE = (1 << 7),
399  MOD_MIR_MIRROR_UDIM = (1 << 14),
400 };
401 
402 typedef struct EdgeSplitModifierData {
404 
406  float split_angle;
407  int flags;
409 
410 /* EdgeSplitModifierData->flags */
411 enum {
414 };
415 
416 typedef struct BevelModifierData {
418 
420  float value;
422  int res;
424  short flags;
426  short val_flags;
430  short lim_flags;
432  short e_flags;
434  short mat;
435  short edge_flags;
438  short miter_inner;
439  short miter_outer;
444  char _pad;
446  float profile;
449  float bevel_angle;
450  float spread;
453  char defgrp_name[64];
454 
455  char _pad1[4];
458 
459  void *_pad2;
461 
462 /* BevelModifierData->flags and BevelModifierData->lim_flags */
463 enum {
464 #ifdef DNA_DEPRECATED_ALLOW
465  MOD_BEVEL_VERT_DEPRECATED = (1 << 1),
466 #endif
468  MOD_BEVEL_ANGLE = (1 << 3),
469  MOD_BEVEL_WEIGHT = (1 << 4),
470  MOD_BEVEL_VGROUP = (1 << 5),
471 /* unused = (1 << 6), */
473  MOD_BEVEL_CUSTOM_PROFILE_DEPRECATED = (1 << 7),
474 #endif
475  /* unused = (1 << 8), */
476  /* unused = (1 << 9), */
477  /* unused = (1 << 10), */
478  /* unused = (1 << 11), */
479  /* unused = (1 << 12), */
480  MOD_BEVEL_OVERLAP_OK = (1 << 13),
483 };
484 
485 /* BevelModifierData->val_flags (not used as flags any more) */
486 enum {
492 };
493 
494 /* BevelModifierData->profile_type */
495 enum {
498 };
499 
500 /* BevelModifierData->edge_flags */
501 enum {
504 };
505 
506 /* BevelModifierData->face_str_mode */
507 enum {
512 };
513 
514 /* BevelModifier->miter_inner and ->miter_outer */
515 enum {
519 };
520 
521 /* BevelModifier->vmesh_method */
522 enum {
525 };
526 
527 /* BevelModifier->affect_type */
528 enum {
531 };
532 
533 typedef struct FluidModifierData {
535 
541  float time;
543  int type;
544  void *_pad1;
546 
547 /* Fluid modifier flags */
548 enum {
552 };
553 
554 typedef struct DisplaceModifierData {
556 
557  /* keep in sync with MappingInfoModifierData */
558  struct Tex *texture;
560  char map_bone[64];
562  char uvlayer_name[64];
565  /* end MappingInfoModifierData */
566 
567  float strength;
570  char defgrp_name[64];
571  float midlevel;
572  int space;
573  short flag;
574  char _pad[6];
576 
577 /* DisplaceModifierData->flag */
578 enum {
580 };
581 
582 /* DisplaceModifierData->direction */
583 enum {
590 };
591 
592 /* DisplaceModifierData->texmapping */
593 enum {
598 };
599 
600 /* DisplaceModifierData->space */
601 enum {
604 };
605 
606 typedef struct UVProjectModifierData {
608 
609  /* the objects which do the projecting */
611  struct Object *projectors[10];
612  char _pad2[4];
614  float aspectx, aspecty;
615  float scalex, scaley;
617  char uvlayer_name[64];
619  char _pad[4];
621 
622 #define MOD_UVPROJECT_MAXPROJECTORS 10
623 
624 typedef struct DecimateModifierData {
626 
628  float percent;
630  short iter;
632  char delimit;
636  float angle;
637 
639  char defgrp_name[64];
641  short flag, mode;
642 
643  /* runtime only */
646 
647 enum {
654 };
655 
656 enum {
661 };
662 
663 typedef struct SmoothModifierData {
665  float fac;
667  char defgrp_name[64];
668  short flag, repeat;
669 
671 
672 /* Smooth modifier flags */
673 enum {
675  MOD_SMOOTH_X = (1 << 1),
676  MOD_SMOOTH_Y = (1 << 2),
677  MOD_SMOOTH_Z = (1 << 3),
678 };
679 
680 typedef struct CastModifierData {
682 
683  struct Object *object;
684  float fac;
685  float radius;
686  float size;
688  char defgrp_name[64];
689  short flag, type;
690  void *_pad1;
692 
693 /* Cast modifier flags */
694 enum {
695  /* And what bout (1 << 0) flag? ;) */
697  MOD_CAST_X = (1 << 1),
698  MOD_CAST_Y = (1 << 2),
699  MOD_CAST_Z = (1 << 3),
702 };
703 
704 /* Cast modifier projection types */
705 enum {
709 };
710 
711 typedef struct WaveModifierData {
713 
714  /* keep in sync with MappingInfoModifierData */
715  struct Tex *texture;
717  char map_bone[64];
719  char uvlayer_name[64];
722  /* end MappingInfoModifierData */
723 
726  char defgrp_name[64];
727 
728  short flag;
729  char _pad[2];
730 
733 
735  char _pad1[4];
736  void *_pad2;
738 
739 /* WaveModifierData.flag */
740 enum {
742  MOD_WAVE_X = (1 << 1),
743  MOD_WAVE_Y = (1 << 2),
744  MOD_WAVE_CYCL = (1 << 3),
745  MOD_WAVE_NORM = (1 << 4),
746  MOD_WAVE_NORM_X = (1 << 5),
747  MOD_WAVE_NORM_Y = (1 << 6),
748  MOD_WAVE_NORM_Z = (1 << 7),
749 };
750 
751 typedef struct ArmatureModifierData {
753 
756  char _pad2[4];
757  struct Object *object;
761  char defgrp_name[64];
763 
764 enum {
767 };
768 
769 /* same as WarpModifierFalloff */
770 typedef enum {
773  eHook_Falloff_Sharp = 2, /* PROP_SHARP */
774  eHook_Falloff_Smooth = 3, /* PROP_SMOOTH */
775  eHook_Falloff_Root = 4, /* PROP_ROOT */
776  eHook_Falloff_Linear = 5, /* PROP_LIN */
777  eHook_Falloff_Const = 6, /* PROP_CONST */
778  eHook_Falloff_Sphere = 7, /* PROP_SPHERE */
779  eHook_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
780  /* PROP_RANDOM not used */
782 
783 typedef struct HookModifierData {
785 
786  struct Object *object;
788  char subtarget[64];
789 
790  char flag;
793  char _pad[6];
795  float parentinv[4][4];
797  float cent[3];
799  float falloff;
800 
802 
804  int *indexar;
805  int totindex;
806  float force;
808  char name[64];
809  void *_pad1;
811 
812 typedef struct SoftbodyModifierData {
815 
816 typedef struct ClothModifierData {
818 
825 
826  /* PointCache can be shared with other instances of ClothModifierData.
827  * Inspect (modifier.flag & eModifierFlag_SharedCaches) to find out. */
830  struct ListBase ptcaches;
831 
832  /* XXX nasty hack, remove once hair can be separated from cloth modifier data */
834  /* grid geometry values of hair continuum */
835  float hair_grid_min[3];
836  float hair_grid_max[3];
839 
842 
843 typedef struct CollisionModifierData {
845 
847  struct MVert *x;
849  struct MVert *xnew;
851  struct MVert *xold;
855  struct MVert *current_x;
857  struct MVert *current_v;
858 
859  struct MVertTri *tri;
860 
861  unsigned int mvert_num;
862  unsigned int tri_num;
866  char is_static;
867  char _pad[7];
868 
870  struct BVHTree *bvhtree;
872 
873 typedef struct SurfaceModifierData {
875 
877  struct MVert *x;
879  struct MVert *v;
880 
881  struct Mesh *mesh;
882 
885 
888 
889 typedef struct BooleanModifierData {
891 
892  struct Object *object;
895  char operation;
896  char solver;
897  char flag;
898  char bm_flag;
900 
901 /* BooleanModifierData->operation */
902 typedef enum {
907 
908 /* BooleanModifierData->solver */
909 typedef enum {
913 
914 /* BooleanModifierData->flag */
915 enum {
920 };
921 
922 /* bm_flag only used when G_DEBUG. */
923 enum {
927 };
928 
929 typedef struct MDefInfluence {
930  int vertex;
931  float weight;
933 
934 typedef struct MDefCell {
935  int offset;
938 
939 typedef struct MeshDeformModifierData {
941 
943  struct Object *object;
945  char defgrp_name[64];
946 
947  short gridsize, flag;
948  char _pad[4];
949 
950  /* result of static binding */
956  float *bindcagecos;
959 
960  /* result of dynamic binding */
966  int *dynverts;
972  float dyncellmin[3];
976  float bindmat[4][4];
977 
978  /* deprecated storage */
980  float *bindweights;
982  float *bindcos;
983 
984  /* runtime */
985  void (*bindfunc)(struct MeshDeformModifierData *mmd,
986  struct Mesh *cagemesh,
987  float *vertexcos,
988  int totvert,
989  float cagemat[4][4]);
991 
992 enum {
995 };
996 
999 
1008  struct Mesh *mesh_final;
1012  short flag;
1013  char _pad[2];
1014  void *_pad1;
1016 
1017 typedef enum {
1022 
1023 typedef enum {
1033 
1034 typedef enum {
1038 
1041 
1042  struct Object *ob;
1043  short psys, flag, axis, space;
1051  void *_pad1;
1053 
1054 typedef enum {
1060  eExplodeFlag_Dead = (1 << 5),
1063 
1064 typedef struct ExplodeModifierData {
1066 
1067  int *facepa;
1068  short flag, vgroup;
1069  float protect;
1071  char uvname[64];
1072  void *_pad1;
1074 
1075 typedef struct MultiresModifierData {
1077 
1079  char simple DNA_DEPRECATED;
1080  char flags, _pad[2];
1081  short quality;
1082  short uv_smooth;
1084  char _pad2[2];
1086 
1087 typedef enum {
1089  /* DEPRECATED, only used for versioning. */
1095 
1096 /* DEPRECATED, only used for versioning. */
1097 typedef struct FluidsimModifierData {
1099 
1102  void *_pad1;
1104 
1105 /* DEPRECATED, only used for versioning. */
1106 typedef struct SmokeModifierData {
1108 
1110  int type;
1111  int _pad;
1113 
1114 typedef struct ShrinkwrapModifierData {
1116 
1118  struct Object *target;
1122  char vgroup_name[64];
1124  float keepDist;
1126  short shrinkType;
1132  float projLimit;
1134  char projAxis;
1135 
1140 
1141  char _pad[2];
1143 
1144 /* Shrinkwrap->shrinkType */
1145 enum {
1150 };
1151 
1152 /* Shrinkwrap->shrinkMode */
1153 enum {
1164 };
1165 
1166 /* Shrinkwrap->shrinkOpts */
1167 enum {
1172 
1177 
1178 #ifdef DNA_DEPRECATED_ALLOW
1180  MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE = (1 << 5),
1181 #endif
1182 
1185 };
1186 
1187 #define MOD_SHRINKWRAP_CULL_TARGET_MASK \
1188  (MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE | MOD_SHRINKWRAP_CULL_TARGET_BACKFACE)
1189 
1190 /* Shrinkwrap->projAxis */
1191 enum {
1197 };
1198 
1201 
1203  struct Object *origin;
1205  char vgroup_name[64];
1207  float factor;
1209  float limit[2];
1210 
1212  char mode;
1214  char axis;
1217  char flag;
1218 
1219  void *_pad1;
1221 
1222 /* SimpleDeform->flag */
1223 enum {
1225 };
1226 
1227 enum {
1232 };
1233 
1234 enum {
1238 };
1239 
1240 typedef struct ShapeKeyModifierData {
1243 
1244 typedef struct SolidifyModifierData {
1246 
1248  char defgrp_name[64];
1252  float offset;
1254  float offset_fac;
1262  char mode;
1263 
1267 
1268  char _pad;
1271  float crease_rim;
1272  int flag;
1273  short mat_ofs;
1275 
1279 
1281 enum {
1282  MOD_SOLIDIFY_RIM = (1 << 0),
1283  MOD_SOLIDIFY_EVEN = (1 << 1),
1286 #ifdef DNA_DEPRECATED_ALLOW
1287  MOD_SOLIDIFY_RIM_MATERIAL = (1 << 4), /* deprecated, used in do_versions */
1288 #endif
1289  MOD_SOLIDIFY_FLIP = (1 << 5),
1293 };
1294 
1296 enum {
1299 };
1300 
1302 enum {
1306 };
1307 
1309 enum {
1313 };
1314 
1315 typedef struct ScrewModifierData {
1317 
1318  struct Object *ob_axis;
1319  unsigned int steps;
1320  unsigned int render_steps;
1321  unsigned int iter;
1322  float screw_ofs;
1323  float angle;
1324  float merge_dist;
1325  short flag;
1326  char axis;
1327  char _pad[5];
1328  void *_pad1;
1330 
1331 enum {
1335  /* MOD_SCREW_OBJECT_ANGLE = (1 << 4), */
1339  MOD_SCREW_MERGE = (1 << 8),
1340 };
1341 
1342 typedef struct OceanModifierData {
1344 
1345  struct Ocean *ocean;
1347 
1352 
1354 
1356 
1357  float damp;
1359  float depth;
1360 
1363  float wave_scale;
1364 
1367  float time;
1368 
1369  /* Spectrum being used. */
1371 
1372  /* Common JONSWAP parameters. */
1379 
1381  int bakeend;
1382 
1384  char cachepath[1024];
1386  char foamlayername[64];
1387  char spraylayername[64];
1388  char cached;
1390 
1391  char flag;
1392  char _pad2;
1393 
1394  short repeat_x;
1395  short repeat_y;
1396 
1397  int seed;
1398 
1399  float size;
1400 
1401  float foam_fade;
1402 
1403  char _pad[4];
1405 
1406 enum {
1410 };
1411 
1412 enum {
1417 };
1418 
1419 enum {
1424 };
1425 
1426 typedef struct WarpModifierData {
1428  /* keep in sync with MappingInfoModifierData */
1429  struct Tex *texture;
1431  char map_bone[64];
1433  char uvlayer_name[64];
1436  /* end MappingInfoModifierData */
1437 
1441  char bone_from[64];
1443  char bone_to[64];
1444 
1447  char defgrp_name[64];
1448  float strength;
1450  char flag;
1452  char _pad[6];
1453  void *_pad1;
1455 
1456 /* WarpModifierData->flag */
1457 enum {
1460 };
1461 
1462 typedef enum {
1465  eWarp_Falloff_Sharp = 2, /* PROP_SHARP */
1466  eWarp_Falloff_Smooth = 3, /* PROP_SMOOTH */
1467  eWarp_Falloff_Root = 4, /* PROP_ROOT */
1468  eWarp_Falloff_Linear = 5, /* PROP_LIN */
1469  eWarp_Falloff_Const = 6, /* PROP_CONST */
1470  eWarp_Falloff_Sphere = 7, /* PROP_SPHERE */
1471  eWarp_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
1472  /* PROP_RANDOM not used */
1474 
1477 
1479  char defgrp_name[64];
1480 
1482  short edit_flags;
1487 
1488  /* Mapping stuff. */
1491 
1492  /* The add/remove vertices weight thresholds. */
1494 
1495  /* Masking options. */
1500 
1501  /* Texture masking. */
1514 
1515  /* Padding... */
1516  char _pad0[4];
1517  void *_pad1;
1519 
1520 /* WeightVGEdit flags. */
1521 enum {
1529 };
1530 
1531 typedef struct WeightVGMixModifierData {
1533 
1535  char defgrp_name_a[64];
1537  char defgrp_name_b[64];
1543  char mix_mode;
1545  char mix_set;
1546 
1547  char _pad0[6];
1548 
1549  /* Masking options. */
1554 
1555  /* Texture masking. */
1568 
1569  char flag;
1570 
1571  /* Padding... */
1572  char _pad1[3];
1574 
1575 /* How second vgroup's weights affect first ones. */
1576 enum {
1591 };
1592 
1593 /* What vertices to affect. */
1594 enum {
1605 };
1606 
1607 /* WeightVGMix->flag */
1608 enum {
1613 };
1614 
1617 
1619  char defgrp_name[64];
1620 
1621  /* Mapping stuff. */
1624 
1625  /* Proximity modes. */
1628 
1629  /* Target object from which to calculate vertices distances. */
1631 
1632  /* Masking options. */
1637 
1638  /* Texture masking. */
1651 
1654 
1655  /* Put here to avoid breaking existing struct... */
1658 
1659  /* Padding... */
1660  char _pad0[2];
1662 
1663 /* Modes of proximity weighting. */
1664 enum {
1665  MOD_WVG_PROXIMITY_OBJECT = 1, /* source vertex to other location */
1666  MOD_WVG_PROXIMITY_GEOMETRY = 2, /* source vertex to other geometry */
1667 };
1668 
1669 /* Flags options for proximity weighting. */
1670 enum {
1671  /* Use nearest vertices of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
1673  /* Use nearest edges of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
1675  /* Use nearest faces of target obj, in MOD_WVG_PROXIMITY_GEOMETRY mode. */
1680 };
1681 
1682 /* Defines common to all WeightVG modifiers. */
1683 /* Mapping modes. */
1684 enum {
1687  MOD_WVG_MAPPING_SHARP = 2, /* PROP_SHARP */
1688  MOD_WVG_MAPPING_SMOOTH = 3, /* PROP_SMOOTH */
1689  MOD_WVG_MAPPING_ROOT = 4, /* PROP_ROOT */
1690  /* PROP_LIN not used (same as NONE, here...). */
1691  /* PROP_CONST not used. */
1692  MOD_WVG_MAPPING_SPHERE = 7, /* PROP_SPHERE */
1693  MOD_WVG_MAPPING_RANDOM = 8, /* PROP_RANDOM */
1694  MOD_WVG_MAPPING_STEP = 9, /* Median Step. */
1695 };
1696 
1697 /* Tex channel to be used as mask. */
1698 enum {
1707 };
1708 
1711 
1715  int type;
1716  char _pad[4];
1718 
1719 /* Dynamic paint modifier flags */
1720 enum {
1723 };
1724 
1725 /* Remesh modifier */
1726 typedef enum eRemeshModifierFlags {
1730 
1731 typedef enum eRemeshModifierMode {
1732  /* blocky */
1734  /* smooth */
1736  /* keeps sharp edges */
1738  /* Voxel remesh */
1741 
1742 typedef struct RemeshModifierData {
1744 
1746  float threshold;
1747 
1748  /* ratio between size of model and grid */
1749  float scale;
1750 
1752 
1753  /* octree depth */
1754  char depth;
1755  char flag;
1756  char mode;
1757  char _pad;
1758 
1759  /* OpenVDB Voxel remesh properties. */
1760  float voxel_size;
1761  float adaptivity;
1763 
1764 /* Skin modifier */
1765 typedef struct SkinModifierData {
1767 
1769 
1770  char flag;
1771 
1773 
1774  char _pad[2];
1776 
1777 /* SkinModifierData.symmetry_axes */
1778 enum {
1779  MOD_SKIN_SYMM_X = (1 << 0),
1780  MOD_SKIN_SYMM_Y = (1 << 1),
1781  MOD_SKIN_SYMM_Z = (1 << 2),
1782 };
1783 
1784 /* SkinModifierData.flag */
1785 enum {
1787 };
1788 
1789 /* Triangulate modifier */
1790 typedef struct TriangulateModifierData {
1792 
1793  int flag;
1798 
1799 /* TriangulateModifierData.flag */
1800 enum {
1801 #ifdef DNA_DEPRECATED_ALLOW
1802  MOD_TRIANGULATE_BEAUTY = (1 << 0), /* deprecated */
1803 #endif
1805 };
1806 
1807 /* Triangulate methods - NGons */
1808 enum {
1811 };
1812 
1813 /* Triangulate methods - Quads */
1814 enum {
1819 };
1820 
1823 
1825  char _pad1[4];
1827  char defgrp_name[64];
1828  short flag, repeat;
1830 
1831 /* Smooth modifier flags */
1832 enum {
1839 };
1840 
1842  /* delta's between the original positions and the smoothed positions */
1843  float (*deltas)[3];
1844  unsigned int totverts;
1845 
1846  /* Value of settings when creating the cache.
1847  * These are used to check if the cache should be recomputed. */
1848  float lambda, scale;
1849  short repeat, flag;
1851  char _pad[6];
1853 
1856 
1857  /* positions set during 'bind' operator
1858  * use for MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND */
1860 
1861  /* note: -1 is used to bind */
1862  unsigned int bind_coords_num;
1863 
1864  float lambda, scale;
1865  short repeat, flag;
1867  char _pad[6];
1868 
1870  char defgrp_name[64];
1871 
1872  /* runtime-only cache */
1875 
1876 enum {
1879 };
1880 
1881 enum {
1884 };
1885 
1886 /* Corrective Smooth modifier flags */
1887 enum {
1891 };
1892 
1893 typedef struct UVWarpModifierData {
1895 
1897  short flag;
1899  float center[2];
1900 
1901  float offset[2];
1902  float scale[2];
1903  float rotation;
1904 
1908  char bone_src[64];
1912  char bone_dst[64];
1913 
1915  char vgroup_name[64];
1917  char uvlayer_name[64];
1919 
1920 /* UVWarp modifier flags */
1921 enum {
1923 };
1924 
1925 /* cache modifier */
1926 typedef struct MeshCacheModifierData {
1928 
1929  char flag;
1931  char type;
1934 
1935  /* axis conversion */
1937  char up_axis;
1939 
1940  char interp;
1941 
1942  float factor;
1944  char _pad[7];
1945 
1946  /* play_mode == MOD_MESHCACHE_PLAY_CFEA */
1949 
1950  /* play_mode == MOD_MESHCACHE_PLAY_EVAL */
1951  /* we could use one float for all these but their purpose is very different */
1952  float eval_frame;
1953  float eval_time;
1955 
1957  char filepath[1024];
1959 
1960 enum {
1963 };
1964 
1965 enum {
1968 };
1969 
1970 enum {
1973  /* MOD_MESHCACHE_INTERP_CARDINAL = 2, */
1974 };
1975 
1976 enum {
1980 };
1981 
1982 enum {
1985 };
1986 
1992  float *vertexco;
1995  short flag;
1996  char _pad[6];
1997 
1999 
2000 /* Laplacian Deform modifier flags */
2001 enum {
2004 };
2005 
2006 /* many of these options match 'solidify' */
2007 typedef struct WireframeModifierData {
2010  char defgrp_name[64];
2011  float offset;
2012  float offset_fac;
2015  short flag, mat_ofs;
2016  char _pad[4];
2018 
2019 enum {
2026 };
2027 
2028 typedef struct WeldModifierData {
2030 
2031  /* The limit below which to merge vertices. */
2032  float merge_dist;
2033  /* Name of vertex group to use to mask, MAX_VGROUP_NAME. */
2034  char defgrp_name[64];
2035 
2036  char mode;
2037  char flag;
2038  char _pad[2];
2040 
2041 /* WeldModifierData->flag */
2042 enum {
2044 };
2045 
2046 /* #WeldModifierData.mode */
2047 enum {
2050 };
2051 
2054 
2056 
2059 
2060  /* See MREMAP_MODE_ enum in BKE_mesh_mapping.h */
2065 
2069 
2070  char _pad1[4];
2071 
2076 
2079  float mix_factor;
2081  char defgrp_name[64];
2082 
2083  int flags;
2084  void *_pad2;
2086 
2087 /* DataTransferModifierData.flags */
2088 enum {
2092 
2093  /* Only for UI really. */
2098 };
2099 
2100 /* Set Split Normals modifier */
2101 typedef struct NormalEditModifierData {
2104  char defgrp_name[64];
2106  struct Object *target;
2107  short mode;
2108  short flag;
2109  short mix_mode;
2110  char _pad[2];
2111  float mix_factor;
2112  float mix_limit;
2113  float offset[3];
2114  char _pad0[4];
2115  void *_pad1;
2117 
2118 /* NormalEditModifierData.mode */
2119 enum {
2122 };
2123 
2124 /* NormalEditModifierData.flags */
2125 enum {
2129 };
2130 
2131 /* NormalEditModifierData.mix_mode */
2132 enum {
2137 };
2138 
2139 typedef struct MeshCacheVertexVelocity {
2140  float vel[3];
2142 
2145 
2148  char object_path[1024];
2149 
2151  char _pad[3];
2152 
2154 
2155  /* Runtime. */
2158 
2159  /* Vertex velocities read from the cache. The velocities are not automatically read during
2160  * modifier execution, and therefore have to manually be read when needed. This is only used
2161  * through the RNA for now. */
2163 
2164  /* The number of vertices of the Alembic mesh, set when the modifier is executed. */
2166 
2167  /* Time (in frames or seconds) between two velocity samples. Automatically computed to
2168  * scale the velocity vectors at render time for generating proper motion blur data. */
2170 
2171  /* Caches the scene time (in seconds) used to lookup data in the Alembic archive when the
2172  * modifier was last executed. Used to access Alembic samples through the RNA. */
2174 
2175  int _pad1;
2176  void *_pad2;
2178 
2179 /* MeshSeqCacheModifierData.read_flag */
2180 enum {
2185 
2186  /* Allow interpolation of mesh vertex positions. There is a heuristic to avoid interpolation when
2187  * the mesh topology changes, but this heuristic sometimes fails. In these cases, users can
2188  * disable interpolation with this flag. */
2190 };
2191 
2192 typedef struct SDefBind {
2193  unsigned int *vert_inds;
2194  unsigned int numverts;
2195  int mode;
2198  float influence;
2200 
2201 typedef struct SDefVert {
2203  unsigned int numbinds;
2204  char _pad[4];
2206 
2209 
2212  struct Object *target;
2215  float falloff;
2216  unsigned int numverts, numpoly;
2217  int flags;
2218  float mat[4][4];
2219  float strength;
2220  char _pad[4];
2221  char defgrp_name[64];
2222  void *_pad1;
2224 
2225 /* Surface Deform modifier flags */
2226 enum {
2227  /* This indicates "do bind on next modifier evaluation" as well as "is bound". */
2228  MOD_SDEF_BIND = (1 << 0),
2229  MOD_SDEF_INVERT_VGROUP = (1 << 1)
2230 
2231  /* MOD_SDEF_USES_LOOPTRI = (1 << 1), */ /* UNUSED */
2232  /* MOD_SDEF_HAS_CONCAVE = (1 << 2), */ /* UNUSED */
2233 };
2234 
2235 /* Surface Deform vertex bind modes */
2236 enum {
2240 };
2241 
2244 
2246  char defgrp_name[64];
2247  char mode, flag;
2248  short weight;
2249  float thresh;
2251 
2252 /* Name/id of the generic PROP_INT cdlayer storing face weights. */
2253 #define MOD_WEIGHTEDNORMALS_FACEWEIGHT_CDLAYER_ID "__mod_weightednormals_faceweight"
2254 
2255 /* WeightedNormalModifierData.mode */
2256 enum {
2260 };
2261 
2262 /* WeightedNormalModifierData.flag */
2263 enum {
2267 };
2268 
2269 #define MOD_MESHSEQ_READ_ALL \
2270  (MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | MOD_MESHSEQ_READ_COLOR)
2271 
2272 typedef struct NodesModifierSettings {
2273  /* This stores data that is passed into the node group. */
2276 
2277 typedef struct NodesModifierData {
2282 
2285 
2287  struct Object *object;
2288 
2292  float voxel_size;
2296 
2300  char _pad1[3];
2301 
2305 
2306  float density;
2307  char _pad2[4];
2308  void *_pad3;
2310 
2311 /* MeshToVolumeModifierData->resolution_mode */
2316 
2319 
2320  struct Tex *texture;
2323 
2324  float strength;
2328 
2329 /* VolumeDisplaceModifierData->texture_map_mode */
2330 enum {
2334 };
2335 
2338 
2340  struct Object *object;
2341 
2342  float threshold;
2343  float adaptivity;
2344 
2347 
2350  float voxel_size;
2352 
2354  char grid_name[64];
2355  void *_pad1;
2357 
2364 
2366 typedef enum VolumeToMeshFlag {
2369 
2370 #ifdef __cplusplus
2371 }
2372 #endif
typedef float(TangentPoint)[2]
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:51
These structs are the foundation for all linked lists in the library system.
@ MOD_MASK_MODE_ARM
@ MOD_MASK_MODE_VGROUP
@ MOD_DECIM_FLAG_INVERT_VGROUP
@ MOD_DECIM_FLAG_SYMMETRY
@ MOD_DECIM_FLAG_TRIANGULATE
@ MOD_DECIM_FLAG_ALL_BOUNDARY_VERTS
struct SimpleDeformModifierData SimpleDeformModifierData
struct NormalEditModifierData NormalEditModifierData
@ MOD_DISP_SPACE_GLOBAL
@ MOD_DISP_SPACE_LOCAL
ModifierFlag
@ eModifierFlag_SharedCaches
@ eModifierFlag_OverrideLibrary_Local
@ eModifierFlag_Active
eRemeshModifierFlags
@ MOD_REMESH_FLOOD_FILL
@ MOD_REMESH_SMOOTH_SHADING
@ MOD_TRIANGULATE_QUAD_SHORTEDGE
@ MOD_TRIANGULATE_QUAD_FIXED
@ MOD_TRIANGULATE_QUAD_BEAUTY
@ MOD_TRIANGULATE_QUAD_ALTERNATE
struct MaskModifierData MaskModifierData
@ MOD_WEIGHTEDNORMAL_KEEP_SHARP
@ MOD_WEIGHTEDNORMAL_FACE_INFLUENCE
@ MOD_WEIGHTEDNORMAL_INVERT_VGROUP
@ MOD_DISP_MAP_OBJECT
@ MOD_DISP_MAP_GLOBAL
@ MOD_DISP_MAP_LOCAL
@ MOD_DISP_MAP_UV
@ MOD_HOOK_UNIFORM_SPACE
@ MOD_HOOK_INVERT_VGROUP
WarpModifierFalloff
@ eWarp_Falloff_Linear
@ eWarp_Falloff_Curve
@ eWarp_Falloff_Sharp
@ eWarp_Falloff_Const
@ eWarp_Falloff_InvSquare
@ eWarp_Falloff_Smooth
@ eWarp_Falloff_None
@ eWarp_Falloff_Sphere
@ eWarp_Falloff_Root
@ MOD_WVG_SET_AND
@ MOD_WVG_SET_B
@ MOD_WVG_SET_ALL
@ MOD_WVG_SET_OR
@ MOD_WVG_SET_A
@ MOD_WVG_MIX_INVERT_VGROUP_MASK
@ MOD_WVG_MIX_INVERT_VGROUP_B
@ MOD_WVG_MIX_WEIGHTS_NORMALIZE
@ MOD_WVG_MIX_INVERT_VGROUP_A
MultiresModifierFlag
@ eMultiresModifierFlag_UseSculptBaseMesh
@ eMultiresModifierFlag_PlainUv_DEPRECATED
@ eMultiresModifierFlag_UseCrease
@ eMultiresModifierFlag_UseCustomNormals
@ eMultiresModifierFlag_ControlEdges
@ MOD_BEVEL_VMESH_ADJ
@ MOD_BEVEL_VMESH_CUTOFF
struct UVProjectModifierData UVProjectModifierData
ModifierMode
@ eModifierMode_Virtual
@ eModifierMode_Render
@ eModifierMode_ApplyOnSpline
@ eModifierMode_Editmode
@ eModifierMode_DisableTemporary
@ eModifierMode_Realtime
@ eModifierMode_OnCage
struct MeshCacheVertexVelocity MeshCacheVertexVelocity
@ MOD_ARR_MERGE
@ MOD_ARR_MERGEFINAL
struct MeshSeqCacheModifierData MeshSeqCacheModifierData
@ MOD_MESHSEQ_READ_COLOR
@ MOD_MESHSEQ_READ_VERT
@ MOD_MESHSEQ_INTERPOLATE_VERTICES
@ MOD_MESHSEQ_READ_UV
@ MOD_MESHSEQ_READ_POLY
@ MOD_SIMPLEDEFORM_LOCK_AXIS_Z
@ MOD_SIMPLEDEFORM_LOCK_AXIS_X
@ MOD_SIMPLEDEFORM_LOCK_AXIS_Y
BooleanModifierSolver
@ eBooleanModifierSolver_Exact
@ eBooleanModifierSolver_Fast
@ MOD_CAST_USE_OB_TRANSFORM
@ MOD_CAST_INVERT_VGROUP
@ MOD_CAST_Y
@ MOD_CAST_X
@ MOD_CAST_Z
@ MOD_CAST_SIZE_FROM_RADIUS
struct MeshCacheModifierData MeshCacheModifierData
struct HookModifierData HookModifierData
@ MOD_BEVEL_PROFILE_CUSTOM
@ MOD_BEVEL_PROFILE_SUPERELLIPSE
struct WeldModifierData WeldModifierData
@ MOD_SDEF_MODE_LOOPTRI
@ MOD_SDEF_MODE_CENTROID
@ MOD_SDEF_MODE_NGON
ParticleInstanceModifierFlag
@ eParticleInstanceFlag_Parents
@ eParticleInstanceFlag_Alive
@ eParticleInstanceFlag_Dead
@ eParticleInstanceFlag_Children
@ eParticleInstanceFlag_Unborn
@ eParticleInstanceFlag_Path
@ eParticleInstanceFlag_UseSize
@ eParticleInstanceFlag_KeepShape
@ MOD_SHRINKWRAP_ON_SURFACE
@ MOD_SHRINKWRAP_OUTSIDE
@ MOD_SHRINKWRAP_INSIDE
@ MOD_SHRINKWRAP_ABOVE_SURFACE
@ MOD_SHRINKWRAP_OUTSIDE_SURFACE
@ MOD_MESHCACHE_INTERP_LINEAR
@ MOD_MESHCACHE_INTERP_NONE
struct WeightVGProximityModifierData WeightVGProximityModifierData
struct DataTransferModifierData DataTransferModifierData
eSubsurfModifierType
@ SUBSURF_TYPE_SIMPLE
@ SUBSURF_TYPE_CATMULL_CLARK
struct SDefBind SDefBind
eRemeshModifierMode
@ MOD_REMESH_VOXEL
@ MOD_REMESH_MASS_POINT
@ MOD_REMESH_SHARP_FEATURES
@ MOD_REMESH_CENTROID
@ MOD_MASK_INV
struct LaplacianDeformModifierData LaplacianDeformModifierData
@ eBooleanModifierBMeshFlag_BMesh_NoDissolve
@ eBooleanModifierBMeshFlag_BMesh_Separate
@ eBooleanModifierBMeshFlag_BMesh_NoConnectRegions
@ MOD_LAPLACIANSMOOTH_X
@ MOD_LAPLACIANSMOOTH_Y
@ MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME
@ MOD_LAPLACIANSMOOTH_NORMALIZED
@ MOD_LAPLACIANSMOOTH_Z
@ MOD_LAPLACIANSMOOTH_INVERT_VGROUP
@ MOD_DISP_DIR_RGB_XYZ
@ MOD_DISP_DIR_Z
@ MOD_DISP_DIR_Y
@ MOD_DISP_DIR_NOR
@ MOD_DISP_DIR_X
@ MOD_DISP_DIR_CLNOR
@ MOD_VOLUME_DISPLACE_MAP_GLOBAL
@ MOD_VOLUME_DISPLACE_MAP_LOCAL
@ MOD_VOLUME_DISPLACE_MAP_OBJECT
@ MOD_OCEAN_SPECTRUM_TEXEL_MARSEN_ARSLOE
@ MOD_OCEAN_SPECTRUM_JONSWAP
@ MOD_OCEAN_SPECTRUM_PHILLIPS
@ MOD_OCEAN_SPECTRUM_PIERSON_MOSKOWITZ
@ MOD_WELD_INVERT_VGROUP
ParticleSystemModifierFlag
@ eParticleSystemFlag_Pars
@ eParticleSystemFlag_psys_updated
@ eParticleSystemFlag_file_loaded
struct MeshToVolumeModifierData MeshToVolumeModifierData
@ MOD_WVG_MIX_ADD
@ MOD_WVG_MIX_SUB
@ MOD_WVG_MIX_DIF
@ MOD_WVG_MIX_SET
@ MOD_WVG_MIX_DIV
@ MOD_WVG_MIX_AVG
@ MOD_WVG_MIX_MUL
eSubsurfBoundarySmooth
@ SUBSURF_BOUNDARY_SMOOTH_ALL
@ SUBSURF_BOUNDARY_SMOOTH_PRESERVE_CORNERS
struct MappingInfoModifierData MappingInfoModifierData
@ MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS
@ MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS
@ MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS
@ MOD_SHRINKWRAP_PROJECT_OVER_NORMAL
@ MOD_WVG_PROXIMITY_OBJECT
@ MOD_WVG_PROXIMITY_GEOMETRY
struct ShapeKeyModifierData ShapeKeyModifierData
@ eBooleanModifierFlag_Collection
@ eBooleanModifierFlag_Self
@ eBooleanModifierFlag_HoleTolerant
@ eBooleanModifierFlag_Object
struct ModifierData ModifierData
struct ParticleSystemModifierData ParticleSystemModifierData
@ MOD_BEVEL_HARDEN_NORMALS
@ MOD_BEVEL_INVERT_VGROUP
@ MOD_BEVEL_WEIGHT
@ MOD_BEVEL_OVERLAP_OK
@ MOD_BEVEL_VGROUP
@ MOD_BEVEL_EVEN_WIDTHS
@ MOD_BEVEL_ANGLE
@ MOD_OCEAN_GEOM_GENERATE
@ MOD_OCEAN_GEOM_SIM_ONLY
@ MOD_OCEAN_GEOM_DISPLACE
@ MOD_UVWARP_INVERT_VGROUP
struct CurveModifierData CurveModifierData
struct SDefVert SDefVert
@ MOD_CAST_TYPE_CYLINDER
@ MOD_CAST_TYPE_SPHERE
@ MOD_CAST_TYPE_CUBOID
struct FluidModifierData FluidModifierData
@ MOD_SHRINKWRAP_TARGET_PROJECT
@ MOD_SHRINKWRAP_NEAREST_VERTEX
@ MOD_SHRINKWRAP_PROJECT
@ MOD_SHRINKWRAP_NEAREST_SURFACE
struct ClothModifierData ClothModifierData
@ MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_EVEN
@ MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_FIXED
@ MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS
@ MOD_CORRECTIVESMOOTH_ONLY_SMOOTH
@ MOD_CORRECTIVESMOOTH_PIN_BOUNDARY
@ MOD_CORRECTIVESMOOTH_INVERT_VGROUP
struct BevelModifierData BevelModifierData
@ MOD_CORRECTIVESMOOTH_RESTSOURCE_ORCO
@ MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND
struct CollisionModifierData CollisionModifierData
@ MOD_MESHCACHE_TYPE_PC2
@ MOD_MESHCACHE_TYPE_MDD
struct SurfaceDeformModifierData SurfaceDeformModifierData
struct SolidifyModifierData SolidifyModifierData
struct NodesModifierData NodesModifierData
@ MOD_SMOOTH_Y
@ MOD_SMOOTH_INVERT_VGROUP
@ MOD_SMOOTH_X
@ MOD_SMOOTH_Z
@ MOD_SCREW_NORMAL_CALC
@ MOD_SCREW_SMOOTH_SHADING
@ MOD_SCREW_UV_STRETCH_V
@ MOD_SCREW_MERGE
@ MOD_SCREW_UV_STRETCH_U
@ MOD_SCREW_NORMAL_FLIP
@ MOD_SCREW_OBJECT_OFFSET
struct MultiresModifierData MultiresModifierData
struct WeightVGEditModifierData WeightVGEditModifierData
struct DynamicPaintModifierData DynamicPaintModifierData
struct ShrinkwrapModifierData ShrinkwrapModifierData
struct LaplacianSmoothModifierData LaplacianSmoothModifierData
@ MOD_LAPLACIANDEFORM_BIND
@ MOD_LAPLACIANDEFORM_INVERT_VGROUP
struct CastModifierData CastModifierData
@ MOD_BEVEL_MITER_PATCH
@ MOD_BEVEL_MITER_SHARP
@ MOD_BEVEL_MITER_ARC
struct ArrayModifierData ArrayModifierData
@ MOD_WEIGHTEDNORMAL_MODE_FACE
@ MOD_WEIGHTEDNORMAL_MODE_FACE_ANGLE
@ MOD_WEIGHTEDNORMAL_MODE_ANGLE
@ MOD_SOLIDIFY_MODE_NONMANIFOLD
@ MOD_SOLIDIFY_MODE_EXTRUDE
@ MOD_NORMALEDIT_MODE_RADIAL
@ MOD_NORMALEDIT_MODE_DIRECTIONAL
struct VolumeDisplaceModifierData VolumeDisplaceModifierData
@ MOD_WIREFRAME_OFS_EVEN
@ MOD_WIREFRAME_OFS_RELATIVE
@ MOD_WIREFRAME_INVERT_VGROUP
@ MOD_WIREFRAME_CREASE
@ MOD_WIREFRAME_BOUNDARY
@ MOD_WIREFRAME_REPLACE
struct SkinModifierData SkinModifierData
struct SmoothModifierData SmoothModifierData
@ MOD_MESHCACHE_DEFORM_INTEGRATE
@ MOD_MESHCACHE_DEFORM_OVERWRITE
struct ParticleInstanceModifierData ParticleInstanceModifierData
struct MDefInfluence MDefInfluence
struct WeightedNormalModifierData WeightedNormalModifierData
struct SoftbodyModifierData SoftbodyModifierData
ModifierType
@ eModifierType_MeshToVolume
@ eModifierType_Weld
@ eModifierType_ParticleSystem
@ eModifierType_Mask
@ eModifierType_MeshDeform
@ eModifierType_Solidify
@ eModifierType_Explode
@ eModifierType_Fluidsim
@ eModifierType_Subsurf
@ eModifierType_LaplacianSmooth
@ eModifierType_Mirror
@ eModifierType_WeightVGProximity
@ eModifierType_Boolean
@ eModifierType_SimpleDeform
@ eModifierType_Curve
@ eModifierType_Lattice
@ eModifierType_Surface
@ eModifierType_NormalEdit
@ eModifierType_Skin
@ eModifierType_Wave
@ eModifierType_Cloth
@ eModifierType_Fluid
@ NUM_MODIFIER_TYPES
@ eModifierType_ShapeKey
@ eModifierType_VolumeToMesh
@ eModifierType_Shrinkwrap
@ eModifierType_MeshSequenceCache
@ eModifierType_EdgeSplit
@ eModifierType_Hook
@ eModifierType_Wireframe
@ eModifierType_WeightVGMix
@ eModifierType_Screw
@ eModifierType_VolumeDisplace
@ eModifierType_Ocean
@ eModifierType_LaplacianDeform
@ eModifierType_DataTransfer
@ eModifierType_UVProject
@ eModifierType_Armature
@ eModifierType_UVWarp
@ eModifierType_SurfaceDeform
@ eModifierType_Warp
@ eModifierType_CorrectiveSmooth
@ eModifierType_ParticleInstance
@ eModifierType_Nodes
@ eModifierType_Collision
@ eModifierType_Smooth
@ eModifierType_Bevel
@ eModifierType_DynamicPaint
@ eModifierType_Remesh
@ eModifierType_MeshCache
@ eModifierType_WeightVGEdit
@ eModifierType_Displace
@ eModifierType_None
@ eModifierType_Array
@ eModifierType_Softbody
@ eModifierType_Multires
@ eModifierType_Cast
@ eModifierType_WeightedNormal
@ eModifierType_Decimate
@ eModifierType_Build
@ eModifierType_Triangulate
@ MOD_TRIANGULATE_NGON_BEAUTY
@ MOD_TRIANGULATE_NGON_EARCLIP
@ MOD_WELD_MODE_CONNECTED
@ MOD_WELD_MODE_ALL
struct TriangulateModifierData TriangulateModifierData
struct MirrorModifierData MirrorModifierData
@ MOD_MESHCACHE_PLAY_CFEA
@ MOD_MESHCACHE_PLAY_EVAL
struct DecimateModifierData DecimateModifierData
@ MOD_SIMPLEDEFORM_MODE_TAPER
@ MOD_SIMPLEDEFORM_MODE_STRETCH
@ MOD_SIMPLEDEFORM_MODE_BEND
@ MOD_SIMPLEDEFORM_MODE_TWIST
@ MOD_DATATRANSFER_USE_VERT
@ MOD_DATATRANSFER_USE_EDGE
@ MOD_DATATRANSFER_OBSRC_TRANSFORM
@ MOD_DATATRANSFER_MAP_MAXDIST
@ MOD_DATATRANSFER_INVERT_VGROUP
@ MOD_DATATRANSFER_USE_LOOP
@ MOD_DATATRANSFER_USE_POLY
@ MOD_DECIM_MODE_UNSUBDIV
@ MOD_DECIM_MODE_COLLAPSE
@ MOD_DECIM_MODE_DISSOLVE
@ MOD_NORMALEDIT_NO_POLYNORS_FIX
@ MOD_NORMALEDIT_INVERT_VGROUP
@ MOD_NORMALEDIT_USE_DIRECTION_PARALLEL
struct BuildModifierData BuildModifierData
enum eRemeshModifierFlags RemeshModifierFlags
struct ScrewModifierData ScrewModifierData
@ MOD_WARP_VOLUME_PRESERVE
@ MOD_WARP_INVERT_VGROUP
struct OceanModifierData OceanModifierData
struct LatticeModifierData LatticeModifierData
@ MOD_NORMALEDIT_MIX_COPY
@ MOD_NORMALEDIT_MIX_ADD
@ MOD_NORMALEDIT_MIX_SUB
@ MOD_NORMALEDIT_MIX_MUL
@ MOD_CURVE_INVERT_VGROUP
struct SubsurfModifierData SubsurfModifierData
@ MOD_WVG_PROXIMITY_WEIGHTS_NORMALIZE
@ MOD_WVG_PROXIMITY_INVERT_VGROUP_MASK
@ MOD_WVG_PROXIMITY_GEOM_VERTS
@ MOD_WVG_PROXIMITY_INVERT_FALLOFF
@ MOD_WVG_PROXIMITY_GEOM_EDGES
@ MOD_WVG_PROXIMITY_GEOM_FACES
@ MOD_EDGESPLIT_FROMANGLE
@ MOD_EDGESPLIT_FROMFLAG
struct ExplodeModifierData ExplodeModifierData
@ MOD_ARR_OFF_RELATIVE
@ MOD_ARR_OFF_CONST
@ MOD_ARR_OFF_OBJ
VolumeToMeshFlag
@ VOLUME_TO_MESH_USE_SMOOTH_SHADE
@ MOD_BEVEL_MARK_SHARP
@ MOD_BEVEL_MARK_SEAM
@ MOD_CURVE_NEGZ
@ MOD_CURVE_POSX
@ MOD_CURVE_NEGX
@ MOD_CURVE_POSZ
@ MOD_CURVE_NEGY
@ MOD_CURVE_POSY
@ MOD_BEVEL_AMT_DEPTH
@ MOD_BEVEL_AMT_PERCENT
@ MOD_BEVEL_AMT_OFFSET
@ MOD_BEVEL_AMT_ABSOLUTE
@ MOD_BEVEL_AMT_WIDTH
struct CorrectiveSmoothModifierData CorrectiveSmoothModifierData
ExplodeModifierFlag
@ eExplodeFlag_CalcFaces
@ eExplodeFlag_Alive
@ eExplodeFlag_Dead
@ eExplodeFlag_EdgeCut
@ eExplodeFlag_INVERT_VGROUP
@ eExplodeFlag_PaSize
@ eExplodeFlag_Unborn
struct RemeshModifierData RemeshModifierData
@ MOD_LATTICE_INVERT_VGROUP
struct BooleanModifierData BooleanModifierData
SubsurfModifierFlag
@ eSubsurfModifierFlag_SubsurfUv_DEPRECATED
@ eSubsurfModifierFlag_UseRecursiveSubdivision
@ eSubsurfModifierFlag_UseCrease
@ eSubsurfModifierFlag_Incremental
@ eSubsurfModifierFlag_DebugIncr
@ eSubsurfModifierFlag_ControlEdges
@ eSubsurfModifierFlag_UseCustomNormals
struct UVWarpModifierData UVWarpModifierData
struct MeshDeformModifierData MeshDeformModifierData
struct CorrectiveSmoothDeltaCache CorrectiveSmoothDeltaCache
@ MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR
@ MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE
@ MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR
@ MOD_SHRINKWRAP_CULL_TARGET_BACKFACE
@ MOD_SHRINKWRAP_INVERT_VGROUP
@ MOD_SHRINKWRAP_INVERT_CULL_TARGET
struct WarpModifierData WarpModifierData
@ MOD_SIMPLEDEFORM_FLAG_INVERT_VGROUP
@ MOD_SKIN_SMOOTH_SHADING
@ MOD_BEVEL_AFFECT_EDGES
@ MOD_BEVEL_AFFECT_VERTICES
@ MOD_MIR_BISECT_AXIS_Z
@ MOD_MIR_AXIS_Z
@ MOD_MIR_MIRROR_U
@ MOD_MIR_BISECT_AXIS_X
@ MOD_MIR_CLIPPING
@ MOD_MIR_MIRROR_V
@ MOD_MIR_AXIS_X
@ MOD_MIR_AXIS_Y
@ MOD_MIR_BISECT_FLIP_AXIS_X
@ MOD_MIR_VGROUP
@ MOD_MIR_BISECT_AXIS_Y
@ MOD_MIR_BISECT_FLIP_AXIS_Z
@ MOD_MIR_NO_MERGE
@ MOD_MIR_BISECT_FLIP_AXIS_Y
@ MOD_MIR_MIRROR_UDIM
@ MOD_BEVEL_FACE_STRENGTH_NONE
@ MOD_BEVEL_FACE_STRENGTH_AFFECTED
@ MOD_BEVEL_FACE_STRENGTH_NEW
@ MOD_BEVEL_FACE_STRENGTH_ALL
MeshToVolumeModifierResolutionMode
@ MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_SIZE
@ MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT
VolumeToMeshResolutionMode
@ VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE
@ VOLUME_TO_MESH_RESOLUTION_MODE_GRID
@ VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT
@ MOD_SKIN_SYMM_X
@ MOD_SKIN_SYMM_Z
@ MOD_SKIN_SYMM_Y
struct FluidsimModifierData FluidsimModifierData
struct WeightVGMixModifierData WeightVGMixModifierData
struct SurfaceModifierData SurfaceModifierData
@ MOD_CORRECTIVESMOOTH_SMOOTH_LENGTH_WEIGHT
@ MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE
@ MOD_MDEF_DYNAMIC_BIND
@ MOD_MDEF_INVERT_VGROUP
@ MOD_WVG_EDIT_INVERT_VGROUP_MASK
@ MOD_WVG_EDIT_WEIGHTS_NORMALIZE
@ MOD_WVG_INVERT_FALLOFF
@ MOD_WVG_EDIT_REMFVG
@ MOD_WVG_EDIT_ADD2VG
struct MDefCell MDefCell
struct WireframeModifierData WireframeModifierData
HookModifierFalloff
@ eHook_Falloff_Curve
@ eHook_Falloff_Sharp
@ eHook_Falloff_Smooth
@ eHook_Falloff_Sphere
@ eHook_Falloff_Root
@ eHook_Falloff_None
@ eHook_Falloff_InvSquare
@ eHook_Falloff_Const
@ eHook_Falloff_Linear
BooleanModifierOp
@ eBooleanModifierOp_Intersect
@ eBooleanModifierOp_Union
@ eBooleanModifierOp_Difference
@ MOD_FLUID_TYPE_EFFEC
@ MOD_FLUID_TYPE_DOMAIN
@ MOD_FLUID_TYPE_FLOW
struct VolumeToMeshModifierData VolumeToMeshModifierData
@ MOD_SOLIDIFY_RIM
@ MOD_SOLIDIFY_FLIP
@ MOD_SOLIDIFY_NORMAL_CALC
@ MOD_SOLIDIFY_EVEN
@ MOD_SOLIDIFY_OFFSET_ANGLE_CLAMP
@ MOD_SOLIDIFY_NONMANIFOLD_FLAT_FACES
@ MOD_SOLIDIFY_VGROUP_INV
@ MOD_SOLIDIFY_NOSHELL
ParticleInstanceModifierSpace
@ eParticleInstanceSpace_World
@ eParticleInstanceSpace_Local
@ MOD_DYNAMICPAINT_TYPE_BRUSH
@ MOD_DYNAMICPAINT_TYPE_CANVAS
struct EdgeSplitModifierData EdgeSplitModifierData
@ MOD_ARR_FITCURVE
@ MOD_ARR_FIXEDCOUNT
@ MOD_ARR_FITLENGTH
@ MOD_SDEF_BIND
@ MOD_SDEF_INVERT_VGROUP
@ MOD_OCEAN_GENERATE_NORMALS
@ MOD_OCEAN_GENERATE_FOAM
@ MOD_OCEAN_INVERT_SPRAY
@ MOD_OCEAN_GENERATE_SPRAY
@ MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_FLAT
@ MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_ROUND
@ MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE
@ MOD_WVG_MAPPING_SHARP
@ MOD_WVG_MAPPING_SPHERE
@ MOD_WVG_MAPPING_STEP
@ MOD_WVG_MAPPING_NONE
@ MOD_WVG_MAPPING_ROOT
@ MOD_WVG_MAPPING_CURVE
@ MOD_WVG_MAPPING_RANDOM
@ MOD_WVG_MAPPING_SMOOTH
struct SmokeModifierData SmokeModifierData
@ MOD_WVG_MASK_TEX_USE_SAT
@ MOD_WVG_MASK_TEX_USE_BLUE
@ MOD_WVG_MASK_TEX_USE_INT
@ MOD_WVG_MASK_TEX_USE_ALPHA
@ MOD_WVG_MASK_TEX_USE_RED
@ MOD_WVG_MASK_TEX_USE_HUE
@ MOD_WVG_MASK_TEX_USE_VAL
@ MOD_WVG_MASK_TEX_USE_GREEN
@ MOD_BUILD_FLAG_REVERSE
@ MOD_BUILD_FLAG_RANDOMIZE
@ MOD_MESHCACHE_TIME_FRAME
@ MOD_MESHCACHE_TIME_FACTOR
@ MOD_MESHCACHE_TIME_SECONDS
@ MOD_WAVE_NORM_Y
@ MOD_WAVE_NORM_X
@ MOD_WAVE_CYCL
@ MOD_WAVE_INVERT_VGROUP
@ MOD_WAVE_Y
@ MOD_WAVE_NORM
@ MOD_WAVE_X
@ MOD_WAVE_NORM_Z
eSubsurfUVSmooth
@ SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_AND_JUNCTIONS
@ SUBSURF_UV_SMOOTH_ALL
@ SUBSURF_UV_SMOOTH_PRESERVE_CORNERS
@ SUBSURF_UV_SMOOTH_NONE
@ SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES
@ SUBSURF_UV_SMOOTH_PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE
struct NodesModifierSettings NodesModifierSettings
@ MOD_TRIANGULATE_KEEP_CUSTOMLOOP_NORMALS
struct ArmatureModifierData ArmatureModifierData
struct DisplaceModifierData DisplaceModifierData
struct WaveModifierData WaveModifierData
@ MOD_DISP_INVERT_VGROUP
#define DNA_DEPRECATED_ALLOW
Definition: action.c:32
unsigned int uint32_t
Definition: stdint.h:83
struct Object * start_cap
struct Object * offset_ob
struct Object * curve_ob
struct Object * end_cap
struct CurveProfile * custom_profile
struct Object * object
struct Collection * collection
The CacheReader struct is only used for anonymous pointers, to interface between C and C++ code....
Definition: abc_util.h:30
struct Object * object
struct ListBase ptcaches
struct ClothSolverResult * solver_result
struct ClothHairData * hairdata
struct Cloth * clothObject
struct PointCache * point_cache
struct ClothSimSettings * sim_parms
struct ClothCollSettings * coll_parms
struct BVHTree * bvhtree
CorrectiveSmoothDeltaCache delta_cache
struct Object * object
struct Object * map_object
struct DynamicPaintCanvasSettings * canvas
struct DynamicPaintBrushSettings * brush
struct FluidDomainSettings * domain
struct FluidEffectorSettings * effector
struct FluidFlowSettings * flow
struct FluidsimSettings * fss
struct CurveMapping * curfalloff
struct Object * object
struct Object * object
struct Object * ob_arm
void(* bindfunc)(struct MeshDeformModifierData *mmd, struct Mesh *cagemesh, float *vertexcos, int totvert, float cagemat[4][4])
MDefInfluence * bindinfluences
MDefInfluence * dyninfluences
struct MeshCacheVertexVelocity * vertex_velocities
struct CacheReader * reader
struct CacheFile * cache_file
struct Object * mirror_ob
struct ModifierData * next
struct ModifierData * prev
struct ModifierData * orig_modifier_data
SessionUUID session_uuid
struct bNodeTree * node_group
struct NodesModifierSettings settings
struct IDProperty * properties
struct OceanCache * oceancache
struct ParticleSystem * psys
unsigned int numverts
unsigned int * vert_inds
float * vert_weights
SDefBind * binds
unsigned int numbinds
struct Object * ob_axis
struct BVHTreeFromMesh * bvhtree
struct Object * projectors[10]
struct Object * object_dst
struct Object * object_src
struct Object * map_object
struct CurveMapping * curfalloff
struct Object * object_to
struct Object * object_from
struct Object * objectcenter
struct Object * map_object
struct CurveMapping * cmap_curve
struct Object * mask_tex_map_obj
struct CurveMapping * cmap_curve