26 #define _DNA_DEFAULT_ArmatureModifierData \
28 .deformflag = ARM_DEF_VGROUP, \
35 #define _DNA_DEFAULT_ArrayModifierData \
41 .offset = {1.0f, 0.0f, 0.0f}, \
42 .scale = {1.0f, 0.0f, 0.0f}, \
44 .merge_dist = 0.01f, \
45 .fit_type = MOD_ARR_FIXEDCOUNT, \
46 .offset_type = MOD_ARR_OFF_RELATIVE, \
49 .uv_offset = {0.0f, 0.0f}, \
52 #define _DNA_DEFAULT_BevelModifierData \
57 .val_flags = MOD_BEVEL_AMT_OFFSET, \
58 .profile_type = MOD_BEVEL_PROFILE_SUPERELLIPSE, \
59 .lim_flags = MOD_BEVEL_ANGLE, \
63 .face_str_mode = MOD_BEVEL_FACE_STRENGTH_NONE, \
64 .miter_inner = MOD_BEVEL_MITER_SHARP, \
65 .miter_outer = MOD_BEVEL_MITER_SHARP, \
66 .affect_type = MOD_BEVEL_AFFECT_EDGES, \
68 .bevel_angle = DEG2RADF(30.0f), \
73 #define _DNA_DEFAULT_BooleanModifierData \
77 .double_threshold = 1e-6f, \
78 .operation = eBooleanModifierOp_Difference, \
79 .solver = eBooleanModifierSolver_Exact, \
80 .flag = eBooleanModifierFlag_Object, \
84 #define _DNA_DEFAULT_BuildModifierData \
93 #define _DNA_DEFAULT_CastModifierData \
100 .flag = MOD_CAST_X | MOD_CAST_Y | MOD_CAST_Z | MOD_CAST_SIZE_FROM_RADIUS, \
101 .type = MOD_CAST_TYPE_SPHERE, \
104 #define _DNA_DEFAULT_ClothSimSettings \
109 .gravity = {0.0f, 0.0f, -9.81f}, \
116 .max_sewing = 0.0f, \
117 .avg_spring_len = 0.0f, \
119 .time_scale = 1.0f, \
121 .eff_force_scale = 1000.0f, \
122 .eff_wind_scale = 250.0f, \
123 .sim_time_old = 0.0f, \
125 .goalspring = 1.0f, \
127 .velocity_smooth = 0.0f, \
128 .density_target = 0.0f, \
129 .density_strength = 0.0f, \
130 .collider_friction = 0.0f, \
131 .shrink_min = 0.0f, \
132 .shrink_max = 0.0f, \
133 .uniform_pressure_force = 0.0f, \
134 .target_volume = 0.0f, \
135 .pressure_factor = 1.0f, \
136 .fluid_density = 0.0f, \
137 .vgroup_pressure = 0, \
138 .bending_damping = 0.5f, \
139 .voxel_cell_size = 0.1f, \
140 .stepsPerFrame = 5, \
141 .flags = CLOTH_SIMSETTINGS_FLAG_INTERNAL_SPRINGS_NORMAL, \
142 .maxspringlen = 10, \
146 .vgroup_struct = 0, \
147 .vgroup_shrink = 0, \
148 .shapekey_rest = 0, \
151 .effector_weights = NULL, \
152 .bending_model = CLOTH_BENDING_ANGULAR, \
155 .compression = 15.0f, \
156 .max_tension = 15.0f, \
157 .max_compression = 15.0f, \
158 .tension_damp = 5.0f, \
159 .compression_damp = 5.0f, \
160 .shear_damp = 5.0f, \
161 .internal_spring_max_length = 0.0f, \
162 .internal_spring_max_diversion = M_PI / 4.0f, \
163 .vgroup_intern = 0, \
164 .internal_tension = 15.0f, \
165 .internal_compression = 15.0f, \
166 .max_internal_tension = 15.0f, \
167 .max_internal_compression = 15.0f, \
170 #define _DNA_DEFAULT_ClothCollSettings \
172 .collision_list = NULL, \
174 .self_friction = 5.0f, \
177 .selfepsilon = 0.015f, \
178 .flags = CLOTH_COLLSETTINGS_FLAG_ENABLED, \
181 .vgroup_selfcol = 0, \
182 .vgroup_objcol = 0, \
184 .self_clamp = 0.0f, \
187 #define _DNA_DEFAULT_ClothModifierData \
189 .clothObject = NULL, \
191 .coll_parms = NULL, \
192 .point_cache = NULL, \
193 .ptcaches = {NULL, NULL}, \
195 .hair_grid_min = {0.0f, 0.0f, 0.0f}, \
196 .hair_grid_max = {0.0f, 0.0f, 0.0f}, \
197 .hair_grid_res = {0, 0, 0}, \
198 .hair_grid_cellsize = 0.0f, \
199 .solver_result = NULL, \
202 #define _DNA_DEFAULT_CollisionModifierData \
207 .current_xnew = NULL, \
213 .time_x = -1000.0f, \
214 .time_xnew = -1000.0f, \
215 .is_static = false, \
219 #define _DNA_DEFAULT_CorrectiveSmoothModifierData \
221 .bind_coords = NULL, \
222 .bind_coords_num = 0, \
227 .smooth_type = MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE, \
231 #define _DNA_DEFAULT_CurveModifierData \
235 .defaxis = MOD_CURVE_POSX, \
241 #define _DNA_DEFAULT_DataTransferModifierData \
245 .vmap_mode = MREMAP_MODE_VERT_NEAREST, \
246 .emap_mode = MREMAP_MODE_EDGE_NEAREST, \
247 .lmap_mode = MREMAP_MODE_LOOP_NEAREST_POLYNOR, \
248 .pmap_mode = MREMAP_MODE_POLY_NEAREST, \
249 .map_max_distance = 1.0f, \
250 .map_ray_radius = 0.0f, \
251 .islands_precision = 0.0f, \
252 .layers_select_src = {DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC}, \
253 .layers_select_dst = {DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST}, \
254 .mix_mod = CDT_MIX_TRANSFER, \
255 .mix_factor = 1.0f, \
257 .flags = MOD_DATATRANSFER_OBSRC_TRANSFORM, \
261 #define _DNA_DEFAULT_DecimateModifierData \
266 .symmetry_axis = 0, \
267 .angle = DEG2RADF(5.0f), \
269 .defgrp_factor = 1.0f, \
275 #define _DNA_DEFAULT_DisplaceModifierData \
278 .map_object = NULL, \
280 .uvlayer_name = "", \
284 .direction = MOD_DISP_DIR_NOR, \
287 .space = MOD_DISP_SPACE_LOCAL, \
291 #define _DNA_DEFAULT_DynamicPaintModifierData \
295 .type = MOD_DYNAMICPAINT_TYPE_CANVAS, \
299 #define _DNA_DEFAULT_EdgeSplitModifierData \
301 .split_angle = DEG2RADF(30.0f), \
302 .flags = MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG, \
305 #define _DNA_DEFAULT_ExplodeModifierData \
308 .flag = eExplodeFlag_Unborn | eExplodeFlag_Alive | eExplodeFlag_Dead, \
316 #define _DNA_DEFAULT_HookModifierData \
320 .falloff_type = eHook_Falloff_Smooth, \
321 .parentinv = _DNA_DEFAULT_UNIT_M4, \
322 .cent = {0.0f, 0.0f, 0.0f}, \
324 .curfalloff = NULL, \
331 #define _DNA_DEFAULT_LaplacianDeformModifierData \
333 .anchor_grp_name = "", \
337 .cache_system = NULL, \
341 #define _DNA_DEFAULT_LaplacianSmoothModifierData \
344 .lambda_border = 0.01f, \
346 .flag = MOD_LAPLACIANSMOOTH_X | MOD_LAPLACIANSMOOTH_Y | MOD_LAPLACIANSMOOTH_Z | \
347 MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME | MOD_LAPLACIANSMOOTH_NORMALIZED, \
351 #define _DNA_DEFAULT_LatticeModifierData \
359 #define _DNA_DEFAULT_MaskModifierData \
369 #define _DNA_DEFAULT_MeshCacheModifierData \
372 .type = MOD_MESHCACHE_TYPE_MDD, \
378 .interp = MOD_MESHCACHE_INTERP_LINEAR, \
380 .deform_mode = 0.0f, \
381 .frame_start = 0.0f, \
382 .frame_scale = 1.0f, \
383 .eval_frame = 0.0f, \
385 .eval_factor = 0.0f, \
389 #define _DNA_DEFAULT_MeshDeformModifierData \
395 .bindinfluences = NULL, \
396 .bindoffsets = NULL, \
397 .bindcagecos = NULL, \
401 .dyninfluences = NULL, \
405 .dyncellmin = {0.0f, 0.0f, 0.0f}, \
406 .dyncellwidth = 0.0f, \
407 .bindmat = _DNA_DEFAULT_UNIT_M4, \
408 .bindweights = NULL, \
413 #define _DNA_DEFAULT_MeshSeqCacheModifierData \
415 .cache_file = NULL, \
417 .read_flag = MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | \
418 MOD_MESHSEQ_READ_COLOR | MOD_MESHSEQ_INTERPOLATE_VERTICES, \
419 .velocity_scale = 1.0f, \
421 .reader_object_path = "", \
422 .vertex_velocities = NULL, \
424 .velocity_delta = 0.0f, \
425 .last_lookup_time = 0.0f, \
428 #define _DNA_DEFAULT_MirrorModifierData \
430 .flag = MOD_MIR_AXIS_X | MOD_MIR_VGROUP, \
431 .tolerance = 0.001f, \
432 .bisect_threshold = 0.001f, \
433 .uv_offset = {0.0f, 0.0f}, \
434 .uv_offset_copy = {0.0f, 0.0f}, \
438 #define _DNA_DEFAULT_MultiresModifierData \
444 .flags = eMultiresModifierFlag_UseCrease | eMultiresModifierFlag_ControlEdges, \
445 .uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES, \
447 .boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
450 #define _DNA_DEFAULT_NormalEditModifierData \
454 .mode = MOD_NORMALEDIT_MODE_RADIAL, \
456 .mix_mode = MOD_NORMALEDIT_MIX_COPY, \
457 .mix_factor = 1.0f, \
459 .offset = {0.0f, 0.0f, 0.0f}, \
463 #define _DNA_DEFAULT_OceanModifierData \
466 .oceancache = NULL, \
468 .viewport_resolution = 7, \
469 .spatial_size = 50, \
470 .wind_velocity = 30.0f, \
472 .smallest_wave = 0.01f, \
474 .wave_alignment = 0.0f, \
475 .wave_direction = 0.0f, \
476 .wave_scale = 1.0f, \
477 .chop_amount = 1.0f, \
478 .foam_coverage = 0.0f, \
480 .spectrum = MOD_OCEAN_SPECTRUM_PHILLIPS, \
481 .fetch_jonswap = 120.0f, \
482 .sharpen_peak_jonswap = 0.0f, \
486 .foamlayername = "", \
487 .spraylayername = "", \
489 .geometry_mode = 0, \
495 .foam_fade = 0.98f, \
498 #define _DNA_DEFAULT_ParticleInstanceModifierData \
501 .flag = eParticleInstanceFlag_Parents | eParticleInstanceFlag_Unborn | \
502 eParticleInstanceFlag_Alive | eParticleInstanceFlag_Dead, \
504 .space = eParticleInstanceSpace_World, \
506 .random_position = 0.0f, \
508 .random_rotation = 0.0f, \
509 .particle_offset = 0.0f, \
510 .particle_amount = 1.0f, \
511 .index_layer_name = "", \
512 .value_layer_name = "", \
515 #define _DNA_DEFAULT_ParticleSystemModifierData \
518 .mesh_final = NULL, \
519 .mesh_original = NULL, \
526 #define _DNA_DEFAULT_RemeshModifierData \
530 .hermite_num = 1.0f, \
532 .flag = MOD_REMESH_FLOOD_FILL, \
533 .mode = MOD_REMESH_VOXEL, \
534 .voxel_size = 0.1f, \
535 .adaptivity = 0.0f, \
538 #define _DNA_DEFAULT_ScrewModifierData \
542 .render_steps = 16, \
545 .angle = 2.0f * M_PI, \
546 .merge_dist = 0.01f, \
547 .flag = MOD_SCREW_SMOOTH_SHADING, \
553 #define _DNA_DEFAULT_ShrinkwrapModifierData \
559 .shrinkType = MOD_SHRINKWRAP_NEAREST_SURFACE, \
560 .shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR, \
564 .subsurfLevels = 0, \
567 #define _DNA_DEFAULT_SimpleDeformModifierData \
571 .factor = DEG2RADF(45.0f), \
572 .limit = {0.0f, 1.0f}, \
573 .mode = MOD_SIMPLEDEFORM_MODE_TWIST, \
579 #define _DNA_DEFAULT_NodesModifierData \
582 #define _DNA_DEFAULT_SkinModifierData \
584 .branch_smoothing = 0.0f, \
586 .symmetry_axes = MOD_SKIN_SYMM_X, \
589 #define _DNA_DEFAULT_SmoothModifierData \
594 .flag = MOD_SMOOTH_X | MOD_SMOOTH_Y | MOD_SMOOTH_Z, \
599 #define _DNA_DEFAULT_SolidifyModifierData \
602 .shell_defgrp_name = "", \
603 .rim_defgrp_name = "", \
605 .offset_fac = -1.0f, \
606 .offset_fac_vg = 0.0f, \
607 .offset_clamp = 0.0f, \
608 .mode = MOD_SOLIDIFY_MODE_EXTRUDE, \
609 .nonmanifold_offset_mode = MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS, \
610 .nonmanifold_boundary_mode = MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE, \
611 .crease_inner = 0.0f, \
612 .crease_outer = 0.0f, \
613 .crease_rim = 0.0f, \
614 .flag = MOD_SOLIDIFY_RIM, \
617 .merge_tolerance = 0.0001f, \
618 .bevel_convex = 0.0f, \
621 #define _DNA_DEFAULT_SubsurfModifierData \
626 .flags = eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges, \
627 .uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES, \
629 .boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
634 #define _DNA_DEFAULT_SurfaceModifierData \
644 #define _DNA_DEFAULT_SurfaceDeformModifierData \
653 .mat = _DNA_DEFAULT_UNIT_M4, \
658 #define _DNA_DEFAULT_TriangulateModifierData \
661 .quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE, \
662 .ngon_method = MOD_TRIANGULATE_NGON_BEAUTY, \
666 #define _DNA_DEFAULT_UVProjectModifierData \
668 .projectors = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, \
669 .num_projectors = 1, \
674 .uvlayer_name = "", \
678 #define _DNA_DEFAULT_UVWarpModifierData \
683 .center = {0.5f, 0.5f}, \
684 .offset = {0.0f, 0.0f}, \
685 .scale = {1.0f, 1.0f}, \
687 .object_src = NULL, \
689 .object_dst = NULL, \
692 .uvlayer_name = "", \
695 #define _DNA_DEFAULT_WarpModifierData \
698 .map_object = NULL, \
700 .uvlayer_name = "", \
703 .object_from = NULL, \
707 .curfalloff = NULL, \
710 .falloff_radius = 1.0f, \
712 .falloff_type = eWarp_Falloff_Smooth, \
715 #define _DNA_DEFAULT_WaveModifierData \
718 .map_object = NULL, \
720 .uvlayer_name = "", \
722 .texmapping = MOD_DISP_MAP_LOCAL, \
723 .objectcenter = NULL, \
725 .flag = MOD_WAVE_X | MOD_WAVE_Y | MOD_WAVE_CYCL | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y | MOD_WAVE_NORM_Z, \
738 #define _DNA_DEFAULT_WeightedNormalModifierData \
741 .mode = MOD_WEIGHTEDNORMAL_MODE_FACE, \
747 #define _DNA_DEFAULT_WeightVGEditModifierData \
751 .falloff_type = MOD_WVG_MAPPING_NONE, \
752 .default_weight = 0.0f, \
753 .cmap_curve = NULL, \
754 .add_threshold = 0.01f, \
755 .rem_threshold = 0.01f, \
756 .mask_constant = 1.0f, \
757 .mask_defgrp_name = "", \
758 .mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
759 .mask_texture = NULL, \
760 .mask_tex_map_obj = NULL, \
761 .mask_tex_map_bone = "", \
762 .mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
763 .mask_tex_uvlayer_name = "", \
766 #define _DNA_DEFAULT_WeightVGMixModifierData \
768 .defgrp_name_a = "", \
769 .defgrp_name_b = "", \
770 .default_weight_a = 0.0f, \
771 .default_weight_b = 0.0f, \
772 .mix_mode = MOD_WVG_MIX_SET, \
773 .mix_set = MOD_WVG_SET_AND, \
774 .mask_constant = 1.0f, \
775 .mask_defgrp_name = "", \
776 .mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
777 .mask_texture = NULL, \
778 .mask_tex_map_obj = NULL, \
779 .mask_tex_map_bone = "", \
780 .mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
781 .mask_tex_uvlayer_name = "", \
785 #define _DNA_DEFAULT_WeightVGProximityModifierData \
788 .proximity_mode = MOD_WVG_PROXIMITY_OBJECT, \
789 .proximity_flags = MOD_WVG_PROXIMITY_GEOM_VERTS, \
790 .proximity_ob_target = NULL, \
791 .mask_constant = 1.0f, \
792 .mask_defgrp_name = "", \
793 .mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
794 .mask_texture = NULL, \
795 .mask_tex_map_obj = NULL, \
796 .mask_tex_map_bone = "", \
797 .mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
798 .mask_tex_uvlayer_name = "", \
801 .falloff_type = MOD_WVG_MAPPING_NONE, \
804 #define _DNA_DEFAULT_WeldModifierData \
806 .merge_dist = 0.001f, \
807 .mode = MOD_WELD_MODE_ALL, \
811 #define _DNA_DEFAULT_WireframeModifierData \
815 .offset_fac = 0.0f, \
816 .offset_fac_vg = 0.0f, \
817 .crease_weight = 1.0f, \
818 .flag = MOD_WIREFRAME_REPLACE | MOD_WIREFRAME_OFS_EVEN, \