Blender  V3.3
DNA_modifier_defaults.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #pragma once
8 
9 /* Struct members on own line. */
10 /* clang-format off */
11 
12 #define _DNA_DEFAULT_ArmatureModifierData \
13  { \
14  .deformflag = ARM_DEF_VGROUP, \
15  .multi = 0.0f, \
16  .object = NULL, \
17  .defgrp_name = "", \
18  }
19 
20 /* Default to 2 duplicates distributed along the x-axis by an offset of 1 object width. */
21 #define _DNA_DEFAULT_ArrayModifierData \
22  { \
23  .start_cap = NULL, \
24  .end_cap = NULL, \
25  .curve_ob = NULL, \
26  .offset_ob = NULL, \
27  .offset = {1.0f, 0.0f, 0.0f}, \
28  .scale = {1.0f, 0.0f, 0.0f}, \
29  .length = 0.0f, \
30  .merge_dist = 0.01f, \
31  .fit_type = MOD_ARR_FIXEDCOUNT, \
32  .offset_type = MOD_ARR_OFF_RELATIVE, \
33  .flags = 0, \
34  .count = 2, \
35  .uv_offset = {0.0f, 0.0f}, \
36  }
37 
38 #define _DNA_DEFAULT_BevelModifierData \
39  { \
40  .value = 0.1f, \
41  .res = 1, \
42  .flags = 0, \
43  .val_flags = MOD_BEVEL_AMT_OFFSET, \
44  .profile_type = MOD_BEVEL_PROFILE_SUPERELLIPSE, \
45  .lim_flags = MOD_BEVEL_ANGLE, \
46  .e_flags = 0, \
47  .mat = -1, \
48  .edge_flags = 0, \
49  .face_str_mode = MOD_BEVEL_FACE_STRENGTH_NONE, \
50  .miter_inner = MOD_BEVEL_MITER_SHARP, \
51  .miter_outer = MOD_BEVEL_MITER_SHARP, \
52  .affect_type = MOD_BEVEL_AFFECT_EDGES, \
53  .profile = 0.5f, \
54  .bevel_angle = DEG2RADF(30.0f), \
55  .spread = 0.1f, \
56  .defgrp_name = "", \
57  }
58 
59 #define _DNA_DEFAULT_BooleanModifierData \
60  { \
61  .object = NULL, \
62  .collection = NULL, \
63  .double_threshold = 1e-6f, \
64  .operation = eBooleanModifierOp_Difference, \
65  .solver = eBooleanModifierSolver_Exact, \
66  .flag = eBooleanModifierFlag_Object, \
67  .bm_flag = 0, \
68  }
69 
70 #define _DNA_DEFAULT_BuildModifierData \
71  { \
72  .start = 1.0f, \
73  .length = 100.0f, \
74  .flag = 0, \
75  .randomize = 0, \
76  .seed = 0, \
77  }
78 
79 #define _DNA_DEFAULT_CastModifierData \
80  { \
81  .object = NULL, \
82  .fac = 0.5f, \
83  .radius = 0.0f, \
84  .size = 0.0f, \
85  .defgrp_name = "", \
86  .flag = MOD_CAST_X | MOD_CAST_Y | MOD_CAST_Z | MOD_CAST_SIZE_FROM_RADIUS, \
87  .type = MOD_CAST_TYPE_SPHERE, \
88  }
89 
90 #define _DNA_DEFAULT_ClothSimSettings \
91  { \
92  .cache = NULL, \
93  .mingoal = 0.0f, \
94  .Cvi = 1.0f, \
95  .gravity = {0.0f, 0.0f, -9.81f}, \
96  .dt = 0.0f, \
97  .mass = 0.3f, \
98  .shear = 5.0f, \
99  .bending = 0.5f, \
100  .max_bend = 0.5f, \
101  .max_shear = 5.0f, \
102  .max_sewing = 0.0f, \
103  .avg_spring_len = 0.0f, \
104  .timescale = 1.0f, \
105  .time_scale = 1.0f, \
106  .maxgoal = 1.0f, \
107  .eff_force_scale = 1000.0f, \
108  .eff_wind_scale = 250.0f, \
109  .sim_time_old = 0.0f, \
110  .defgoal = 0.0f, \
111  .goalspring = 1.0f, \
112  .goalfrict = 0.0f, \
113  .velocity_smooth = 0.0f, \
114  .density_target = 0.0f, \
115  .density_strength = 0.0f, \
116  .collider_friction = 0.0f, \
117  .shrink_min = 0.0f, \
118  .shrink_max = 0.0f, \
119  .uniform_pressure_force = 0.0f, \
120  .target_volume = 0.0f, \
121  .pressure_factor = 1.0f, \
122  .fluid_density = 0.0f, \
123  .vgroup_pressure = 0, \
124  .bending_damping = 0.5f, \
125  .voxel_cell_size = 0.1f, \
126  .stepsPerFrame = 5, \
127  .flags = CLOTH_SIMSETTINGS_FLAG_INTERNAL_SPRINGS_NORMAL, \
128  .maxspringlen = 10, \
129  .solver_type = 0, \
130  .vgroup_bend = 0, \
131  .vgroup_mass = 0, \
132  .vgroup_struct = 0, \
133  .vgroup_shrink = 0, \
134  .shapekey_rest = 0, \
135  .presets = 2, \
136  .reset = 0, \
137  .effector_weights = NULL, \
138  .bending_model = CLOTH_BENDING_ANGULAR, \
139  .vgroup_shear = 0, \
140  .tension = 15.0f , \
141  .compression = 15.0f, \
142  .max_tension = 15.0f, \
143  .max_compression = 15.0f, \
144  .tension_damp = 5.0f, \
145  .compression_damp = 5.0f, \
146  .shear_damp = 5.0f, \
147  .internal_spring_max_length = 0.0f, \
148  .internal_spring_max_diversion = M_PI_4, \
149  .vgroup_intern = 0, \
150  .internal_tension = 15.0f, \
151  .internal_compression = 15.0f, \
152  .max_internal_tension = 15.0f, \
153  .max_internal_compression = 15.0f, \
154  }
155 
156 #define _DNA_DEFAULT_ClothCollSettings \
157  { \
158  .collision_list = NULL, \
159  .epsilon = 0.015f, \
160  .self_friction = 5.0f, \
161  .friction = 5.0f, \
162  .damping = 0.0f, \
163  .selfepsilon = 0.015f, \
164  .flags = CLOTH_COLLSETTINGS_FLAG_ENABLED, \
165  .loop_count = 2, \
166  .group = NULL, \
167  .vgroup_selfcol = 0, \
168  .vgroup_objcol = 0, \
169  .clamp = 0.0f, \
170  .self_clamp = 0.0f, \
171  }
172 
173 #define _DNA_DEFAULT_ClothModifierData \
174  { \
175  .clothObject = NULL, \
176  .sim_parms = NULL, \
177  .coll_parms = NULL, \
178  .point_cache = NULL, \
179  .ptcaches = {NULL, NULL}, \
180  .hairdata = NULL, \
181  .hair_grid_min = {0.0f, 0.0f, 0.0f}, \
182  .hair_grid_max = {0.0f, 0.0f, 0.0f}, \
183  .hair_grid_res = {0, 0, 0}, \
184  .hair_grid_cellsize = 0.0f, \
185  .solver_result = NULL, \
186  }
187 
188 #define _DNA_DEFAULT_CollisionModifierData \
189  { \
190  .x = NULL, \
191  .xnew = NULL, \
192  .xold = NULL, \
193  .current_xnew = NULL, \
194  .current_x = NULL, \
195  .current_v = NULL, \
196  .tri = NULL, \
197  .mvert_num = 0, \
198  .tri_num = 0, \
199  .time_x = -1000.0f, \
200  .time_xnew = -1000.0f, \
201  .is_static = false, \
202  .bvhtree = NULL, \
203  }
204 
205 #define _DNA_DEFAULT_CorrectiveSmoothModifierData \
206  { \
207  .bind_coords = NULL, \
208  .bind_coords_num = 0, \
209  .lambda = 0.5f, \
210  .scale = 1.0f, \
211  .repeat = 5, \
212  .flag = 0, \
213  .smooth_type = MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE, \
214  .defgrp_name = "", \
215  }
216 
217 #define _DNA_DEFAULT_CurveModifierData \
218  { \
219  .object = NULL, \
220  .name = "", \
221  .defaxis = MOD_CURVE_POSX, \
222  .flag = 0, \
223  }
224 
225 /* Defines are scattered across too many files, they need to be moved to DNA. */
226 #if 0
227 #define _DNA_DEFAULT_DataTransferModifierData \
228  { \
229  .ob_source = NULL, \
230  .data_types = 0, \
231  .vmap_mode = MREMAP_MODE_VERT_NEAREST, \
232  .emap_mode = MREMAP_MODE_EDGE_NEAREST, \
233  .lmap_mode = MREMAP_MODE_LOOP_NEAREST_POLYNOR, \
234  .pmap_mode = MREMAP_MODE_POLY_NEAREST, \
235  .map_max_distance = 1.0f, \
236  .map_ray_radius = 0.0f, \
237  .islands_precision = 0.0f, \
238  .layers_select_src = {DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC}, \
239  .layers_select_dst = {DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST}, \
240  .mix_mod = CDT_MIX_TRANSFER, \
241  .mix_factor = 1.0f, \
242  .defgrp_name = "", \
243  .flags = MOD_DATATRANSFER_OBSRC_TRANSFORM, \
244  }
245 #endif
246 
247 #define _DNA_DEFAULT_DecimateModifierData \
248  { \
249  .percent = 1.0f, \
250  .iter = 0, \
251  .delimit = 0, \
252  .symmetry_axis = 0, \
253  .angle = DEG2RADF(5.0f), \
254  .defgrp_name = "", \
255  .defgrp_factor = 1.0f, \
256  .flag = 0, \
257  .mode = 0, \
258  .face_count = 0, \
259  }
260 
261 #define _DNA_DEFAULT_DisplaceModifierData \
262  { \
263  .texture = NULL, \
264  .map_object = NULL, \
265  .map_bone = "", \
266  .uvlayer_name = "", \
267  .uvlayer_tmp = 0, \
268  .texmapping = 0, \
269  .strength = 1.0f, \
270  .direction = MOD_DISP_DIR_NOR, \
271  .defgrp_name = "", \
272  .midlevel = 0.5f, \
273  .space = MOD_DISP_SPACE_LOCAL, \
274  .flag = 0, \
275  }
276 
277 #define _DNA_DEFAULT_DynamicPaintModifierData \
278  { \
279  .canvas = NULL, \
280  .brush = NULL, \
281  .type = MOD_DYNAMICPAINT_TYPE_CANVAS, \
282  }
283 
284 /* Default to 30-degree split angle, sharpness from both angle & flag. */
285 #define _DNA_DEFAULT_EdgeSplitModifierData \
286  { \
287  .split_angle = DEG2RADF(30.0f), \
288  .flags = MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG, \
289  }
290 
291 #define _DNA_DEFAULT_ExplodeModifierData \
292  { \
293  .facepa = NULL, \
294  .flag = eExplodeFlag_Unborn | eExplodeFlag_Alive | eExplodeFlag_Dead, \
295  .vgroup = 0, \
296  .protect = 0.0f, \
297  .uvname = "", \
298  }
299 
300 /* Fluid modifier settings skipped for now. */
301 
302 #define _DNA_DEFAULT_HookModifierData \
303  { \
304  .subtarget = "", \
305  .flag = 0, \
306  .falloff_type = eHook_Falloff_Smooth, \
307  .parentinv = _DNA_DEFAULT_UNIT_M4, \
308  .cent = {0.0f, 0.0f, 0.0f}, \
309  .falloff = 0.0f, \
310  .curfalloff = NULL, \
311  .indexar = NULL, \
312  .indexar_num = 0, \
313  .force = 1.0f, \
314  .name = "", \
315  }
316 
317 #define _DNA_DEFAULT_LaplacianDeformModifierData \
318  { \
319  .anchor_grp_name = "", \
320  .verts_num = 0, \
321  .repeat = 1, \
322  .vertexco = NULL, \
323  .cache_system = NULL, \
324  .flag = 0, \
325  }
326 
327 #define _DNA_DEFAULT_LaplacianSmoothModifierData \
328  { \
329  .lambda = 0.01f, \
330  .lambda_border = 0.01f, \
331  .defgrp_name = "", \
332  .flag = MOD_LAPLACIANSMOOTH_X | MOD_LAPLACIANSMOOTH_Y | MOD_LAPLACIANSMOOTH_Z | \
333  MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME | MOD_LAPLACIANSMOOTH_NORMALIZED, \
334  .repeat = 1, \
335  }
336 
337 #define _DNA_DEFAULT_LatticeModifierData \
338  { \
339  .object = NULL, \
340  .name = "", \
341  .strength = 1.0f, \
342  .flag = 0, \
343  }
344 
345 #define _DNA_DEFAULT_MaskModifierData \
346  { \
347  .ob_arm = NULL, \
348  .vgroup = "", \
349  .mode = 0, \
350  .flag = 0, \
351  .threshold = 0.0f, \
352  }
353 
354 /* Y and Z forward and up axes, Blender default. */
355 #define _DNA_DEFAULT_MeshCacheModifierData \
356  { \
357  .flag = 0, \
358  .type = MOD_MESHCACHE_TYPE_MDD, \
359  .time_mode = 0, \
360  .play_mode = 0, \
361  .forward_axis = 1, \
362  .up_axis = 2, \
363  .flip_axis = 0, \
364  .interp = MOD_MESHCACHE_INTERP_LINEAR, \
365  .factor = 1.0f, \
366  .deform_mode = 0.0f, \
367  .frame_start = 0.0f, \
368  .frame_scale = 1.0f, \
369  .eval_frame = 0.0f, \
370  .eval_time = 0.0f, \
371  .eval_factor = 0.0f, \
372  .filepath = "", \
373  }
374 
375 #define _DNA_DEFAULT_MeshDeformModifierData \
376  { \
377  .object = 0, \
378  .defgrp_name = "", \
379  .gridsize = 5, \
380  .flag = 0, \
381  .bindinfluences = NULL, \
382  .bindoffsets = NULL, \
383  .bindcagecos = NULL, \
384  .verts_num = 0, \
385  .cage_verts_num = 0, \
386  .dyngrid = NULL, \
387  .dyninfluences = NULL, \
388  .dynverts = NULL, \
389  .dyngridsize = 0, \
390  .influences_num = 0, \
391  .dyncellmin = {0.0f, 0.0f, 0.0f}, \
392  .dyncellwidth = 0.0f, \
393  .bindmat = _DNA_DEFAULT_UNIT_M4, \
394  .bindweights = NULL, \
395  .bindcos = NULL, \
396  .bindfunc = NULL, \
397  }
398 
399 #define _DNA_DEFAULT_MeshSeqCacheModifierData \
400  { \
401  .cache_file = NULL, \
402  .object_path = "", \
403  .read_flag = MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | \
404  MOD_MESHSEQ_READ_COLOR | MOD_MESHSEQ_INTERPOLATE_VERTICES, \
405  .velocity_scale = 1.0f, \
406  .reader = NULL, \
407  .reader_object_path = "", \
408  }
409 
410 #define _DNA_DEFAULT_MirrorModifierData \
411  { \
412  .flag = MOD_MIR_AXIS_X | MOD_MIR_VGROUP, \
413  .tolerance = 0.001f, \
414  .bisect_threshold = 0.001f, \
415  .uv_offset = {0.0f, 0.0f}, \
416  .uv_offset_copy = {0.0f, 0.0f}, \
417  .mirror_ob = NULL, \
418  .use_correct_order_on_merge = true, \
419  }
420 
421 #define _DNA_DEFAULT_MultiresModifierData \
422  { \
423  .lvl = 0, \
424  .sculptlvl = 0, \
425  .renderlvl = 0, \
426  .totlvl = 0, \
427  .flags = eMultiresModifierFlag_UseCrease | eMultiresModifierFlag_ControlEdges, \
428  .uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES, \
429  .quality = 4, \
430  .boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
431  }
432 
433 #define _DNA_DEFAULT_NormalEditModifierData \
434  { \
435  .defgrp_name = "", \
436  .target = NULL, \
437  .mode = MOD_NORMALEDIT_MODE_RADIAL, \
438  .flag = 0, \
439  .mix_mode = MOD_NORMALEDIT_MIX_COPY, \
440  .mix_factor = 1.0f, \
441  .mix_limit = M_PI, \
442  .offset = {0.0f, 0.0f, 0.0f}, \
443  }
444 
445 /* Some fields are initialized in #initData. */
446 #define _DNA_DEFAULT_OceanModifierData \
447  { \
448  .ocean = NULL, \
449  .oceancache = NULL, \
450  .resolution = 7, \
451  .viewport_resolution = 7, \
452  .spatial_size = 50, \
453  .wind_velocity = 30.0f, \
454  .damp = 0.5f, \
455  .smallest_wave = 0.01f, \
456  .depth = 200.0f, \
457  .wave_alignment = 0.0f, \
458  .wave_direction = 0.0f, \
459  .wave_scale = 1.0f, \
460  .chop_amount = 1.0f, \
461  .foam_coverage = 0.0f, \
462  .time = 1.0f, \
463  .spectrum = MOD_OCEAN_SPECTRUM_PHILLIPS, \
464  .fetch_jonswap = 120.0f, \
465  .sharpen_peak_jonswap = 0.0f, \
466  .bakestart = 1, \
467  .bakeend = 250, \
468  .cachepath = "", \
469  .foamlayername = "", \
470  .spraylayername = "", \
471  .cached = 0, \
472  .geometry_mode = 0, \
473  .flag = 0, \
474  .repeat_x = 1, \
475  .repeat_y = 1, \
476  .seed = 0, \
477  .size = 1.0f, \
478  .foam_fade = 0.98f, \
479  }
480 
481 #define _DNA_DEFAULT_ParticleInstanceModifierData \
482  { \
483  .psys = 1, \
484  .flag = eParticleInstanceFlag_Parents | eParticleInstanceFlag_Unborn | \
485  eParticleInstanceFlag_Alive | eParticleInstanceFlag_Dead, \
486  .axis = 2, \
487  .space = eParticleInstanceSpace_World, \
488  .position = 1.0f, \
489  .random_position = 0.0f, \
490  .rotation = 0.0f, \
491  .random_rotation = 0.0f, \
492  .particle_offset = 0.0f, \
493  .particle_amount = 1.0f, \
494  .index_layer_name = "", \
495  .value_layer_name = "", \
496  }
497 
498 #define _DNA_DEFAULT_ParticleSystemModifierData \
499  { \
500  .psys = NULL, \
501  .mesh_final = NULL, \
502  .mesh_original = NULL, \
503  .totdmvert = 0, \
504  .totdmedge = 0, \
505  .totdmface = 0, \
506  .flag = 0, \
507  }
508 
509 #define _DNA_DEFAULT_RemeshModifierData \
510  { \
511  .threshold = 1.0f, \
512  .scale = 0.9f, \
513  .hermite_num = 1.0f, \
514  .depth = 4, \
515  .flag = MOD_REMESH_FLOOD_FILL, \
516  .mode = MOD_REMESH_VOXEL, \
517  .voxel_size = 0.1f, \
518  .adaptivity = 0.0f, \
519  }
520 
521 #define _DNA_DEFAULT_ScrewModifierData \
522  { \
523  .ob_axis = NULL, \
524  .steps = 16, \
525  .render_steps = 16, \
526  .iter = 1, \
527  .screw_ofs = 0.0f, \
528  .angle = 2.0f * M_PI, \
529  .merge_dist = 0.01f, \
530  .flag = MOD_SCREW_SMOOTH_SHADING, \
531  .axis = 2, \
532  }
533 
534 /* Shape key modifier has no items. */
535 
536 #define _DNA_DEFAULT_ShrinkwrapModifierData \
537  { \
538  .target = NULL, \
539  .auxTarget = NULL, \
540  .vgroup_name = "", \
541  .keepDist = 0.0f, \
542  .shrinkType = MOD_SHRINKWRAP_NEAREST_SURFACE, \
543  .shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR, \
544  .shrinkMode = 0, \
545  .projLimit = 0.0f, \
546  .projAxis = 0, \
547  .subsurfLevels = 0, \
548  }
549 
550 #define _DNA_DEFAULT_SimpleDeformModifierData \
551  { \
552  .origin = NULL, \
553  .vgroup_name = "", \
554  .factor = DEG2RADF(45.0f), \
555  .limit = {0.0f, 1.0f}, \
556  .mode = MOD_SIMPLEDEFORM_MODE_TWIST, \
557  .axis = 0, \
558  .deform_axis = 0, \
559  .flag = 0, \
560  }
561 
562 #define _DNA_DEFAULT_NodesModifierData \
563  { 0 }
564 
565 #define _DNA_DEFAULT_SkinModifierData \
566  { \
567  .branch_smoothing = 0.0f, \
568  .flag = 0, \
569  .symmetry_axes = MOD_SKIN_SYMM_X, \
570  }
571 
572 #define _DNA_DEFAULT_SmoothModifierData \
573  { \
574  .fac = 0.5f, \
575  .repeat = 1, \
576  .defgrp_name = "", \
577  .flag = MOD_SMOOTH_X | MOD_SMOOTH_Y | MOD_SMOOTH_Z, \
578  }
579 
580 /* Softbody modifier skipped for now. */
581 
582 #define _DNA_DEFAULT_SolidifyModifierData \
583  { \
584  .defgrp_name = "", \
585  .shell_defgrp_name = "", \
586  .rim_defgrp_name = "", \
587  .offset = 0.01f, \
588  .offset_fac = -1.0f, \
589  .offset_fac_vg = 0.0f, \
590  .offset_clamp = 0.0f, \
591  .mode = MOD_SOLIDIFY_MODE_EXTRUDE, \
592  .nonmanifold_offset_mode = MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS, \
593  .nonmanifold_boundary_mode = MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE, \
594  .crease_inner = 0.0f, \
595  .crease_outer = 0.0f, \
596  .crease_rim = 0.0f, \
597  .flag = MOD_SOLIDIFY_RIM, \
598  .mat_ofs = 0, \
599  .mat_ofs_rim = 0, \
600  .merge_tolerance = 0.0001f, \
601  .bevel_convex = 0.0f, \
602  }
603 
604 #define _DNA_DEFAULT_SubsurfModifierData \
605  { \
606  .subdivType = 0, \
607  .levels = 1, \
608  .renderLevels = 2, \
609  .flags = eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges, \
610  .uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES, \
611  .quality = 3, \
612  .boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
613  .emCache = NULL, \
614  .mCache = NULL, \
615  }
616 
617 #define _DNA_DEFAULT_SurfaceModifierData \
618  { \
619  .x = NULL, \
620  .v = NULL, \
621  .mesh = NULL, \
622  .bvhtree = NULL, \
623  .cfra = 0, \
624  .verts_num = 0, \
625  }
626 
627 #define _DNA_DEFAULT_SurfaceDeformModifierData \
628  { \
629  .depsgraph = NULL, \
630  .target = NULL, \
631  .verts = NULL, \
632  .falloff = 4.0f, \
633  .mesh_verts_num = 0, \
634  .bind_verts_num = 0, \
635  .target_verts_num = 0, \
636  .target_polys_num = 0, \
637  .flags = 0, \
638  .mat = _DNA_DEFAULT_UNIT_M4, \
639  .strength = 1.0f, \
640  .defgrp_name = "", \
641  }
642 
643 #define _DNA_DEFAULT_TriangulateModifierData \
644  { \
645  .flag = 0, \
646  .quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE, \
647  .ngon_method = MOD_TRIANGULATE_NGON_BEAUTY, \
648  .min_vertices = 4, \
649  }
650 
651 #define _DNA_DEFAULT_UVProjectModifierData \
652  { \
653  .projectors = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, \
654  .projectors_num = 1, \
655  .aspectx = 1.0f, \
656  .aspecty = 1.0f, \
657  .scalex = 1.0f, \
658  .scaley = 1.0f, \
659  .uvlayer_name = "", \
660  .uvlayer_tmp = 0, \
661  }
662 
663 #define _DNA_DEFAULT_UVWarpModifierData \
664  { \
665  .axis_u = 0, \
666  .axis_v = 1, \
667  .flag = 0, \
668  .center = {0.5f, 0.5f}, \
669  .offset = {0.0f, 0.0f}, \
670  .scale = {1.0f, 1.0f}, \
671  .rotation = 0.0f, \
672  .object_src = NULL, \
673  .bone_src = "", \
674  .object_dst = NULL, \
675  .bone_dst = "", \
676  .vgroup_name = "", \
677  .uvlayer_name = "", \
678  }
679 
680 #define _DNA_DEFAULT_WarpModifierData \
681  { \
682  .texture = NULL, \
683  .map_object = NULL, \
684  .map_bone = "", \
685  .uvlayer_name = "", \
686  .uvlayer_tmp = 0, \
687  .texmapping = 0, \
688  .object_from = NULL, \
689  .object_to = NULL, \
690  .bone_from = "", \
691  .bone_to = "", \
692  .curfalloff = NULL, \
693  .defgrp_name = "", \
694  .strength = 1.0f, \
695  .falloff_radius = 1.0f, \
696  .flag = 0, \
697  .falloff_type = eWarp_Falloff_Smooth, \
698  }
699 
700 #define _DNA_DEFAULT_WaveModifierData \
701  { \
702  .texture = NULL, \
703  .map_object = NULL, \
704  .map_bone = "", \
705  .uvlayer_name = "", \
706  .uvlayer_tmp = 0, \
707  .texmapping = MOD_DISP_MAP_LOCAL, \
708  .objectcenter = NULL, \
709  .defgrp_name = "", \
710  .flag = MOD_WAVE_X | MOD_WAVE_Y | MOD_WAVE_CYCL | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y | MOD_WAVE_NORM_Z, \
711  .startx = 0.0f, \
712  .starty = 0.0f, \
713  .height = 0.5f, \
714  .width = 1.5f, \
715  .narrow = 1.5f, \
716  .speed = 0.25f, \
717  .damp = 10.0f, \
718  .falloff = 0.0f, \
719  .timeoffs = 0.0f, \
720  .lifetime = 0.0f, \
721  }
722 
723 #define _DNA_DEFAULT_WeightedNormalModifierData \
724  { \
725  .defgrp_name = "", \
726  .mode = MOD_WEIGHTEDNORMAL_MODE_FACE, \
727  .flag = 0, \
728  .weight = 50, \
729  .thresh = 0.01f, \
730  }
731 
732 #define _DNA_DEFAULT_WeightVGEditModifierData \
733  { \
734  .defgrp_name = "", \
735  .edit_flags = 0, \
736  .falloff_type = MOD_WVG_MAPPING_NONE, \
737  .default_weight = 0.0f, \
738  .cmap_curve = NULL, \
739  .add_threshold = 0.01f, \
740  .rem_threshold = 0.01f, \
741  .mask_constant = 1.0f, \
742  .mask_defgrp_name = "", \
743  .mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
744  .mask_texture = NULL, \
745  .mask_tex_map_obj = NULL, \
746  .mask_tex_map_bone = "", \
747  .mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
748  .mask_tex_uvlayer_name = "", \
749  }
750 
751 #define _DNA_DEFAULT_WeightVGMixModifierData \
752  { \
753  .defgrp_name_a = "", \
754  .defgrp_name_b = "", \
755  .default_weight_a = 0.0f, \
756  .default_weight_b = 0.0f, \
757  .mix_mode = MOD_WVG_MIX_SET, \
758  .mix_set = MOD_WVG_SET_AND, \
759  .mask_constant = 1.0f, \
760  .mask_defgrp_name = "", \
761  .mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
762  .mask_texture = NULL, \
763  .mask_tex_map_obj = NULL, \
764  .mask_tex_map_bone = "", \
765  .mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
766  .mask_tex_uvlayer_name = "", \
767  .flag = 0, \
768  }
769 
770 #define _DNA_DEFAULT_WeightVGProximityModifierData \
771  { \
772  .defgrp_name = "", \
773  .proximity_mode = MOD_WVG_PROXIMITY_OBJECT, \
774  .proximity_flags = MOD_WVG_PROXIMITY_GEOM_VERTS, \
775  .proximity_ob_target = NULL, \
776  .mask_constant = 1.0f, \
777  .mask_defgrp_name = "", \
778  .mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
779  .mask_texture = NULL, \
780  .mask_tex_map_obj = NULL, \
781  .mask_tex_map_bone = "", \
782  .mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
783  .mask_tex_uvlayer_name = "", \
784  .min_dist = 0.0f, \
785  .max_dist = 1.0f, \
786  .falloff_type = MOD_WVG_MAPPING_NONE, \
787  }
788 
789 #define _DNA_DEFAULT_WeldModifierData \
790  { \
791  .merge_dist = 0.001f, \
792  .mode = MOD_WELD_MODE_ALL, \
793  .defgrp_name = "", \
794  }
795 
796 #define _DNA_DEFAULT_WireframeModifierData \
797  { \
798  .defgrp_name = "", \
799  .offset = 0.02f, \
800  .offset_fac = 0.0f, \
801  .offset_fac_vg = 0.0f, \
802  .crease_weight = 1.0f, \
803  .flag = MOD_WIREFRAME_REPLACE | MOD_WIREFRAME_OFS_EVEN, \
804  .mat_ofs = 0, \
805  }
806 
807 /* clang-format off */