Use DNA defaults system for modifiers

As noted in T80164, there are quite a few area of Blender where the
"Reset to Default Value" operator in button context menus doesn't work.
Modifiers are one of them, because the DNA defaults system was never
set up for them.

Additionally, this should make modifier versioning easier. Whenever a
new field is added it should be automatically initialized to the
default value.

I had to make some ordering changes in the following modifiers to work
around an error with `-Wsign-conversion` in the macros:
 - Solidify Modifier
 - Corrective Smooth Modifier
 - Screw Modifier

Some modifiers are special cases and are skipped in this commit:
 - Data Transfer Modifier
 - Cloth Modifier
 - Fluid Modifier
 - Softbody Modifier

Differential Revision: https://developer.blender.org/D8747
This commit is contained in:
Hans Goudey 2020-10-01 09:38:00 -05:00
parent 551204a17f
commit 8398050695
Notes: blender-bot 2023-02-14 10:32:59 +01:00
Referenced by commit fcc3227efd, Fix T86654: wrong Vertex Interpolation option default when importing alembic caches
Referenced by commit 3fc07d1e74, Fix T83886: Particle instance modifier broken
Referenced by commit ae609346ee, Fix T81672: Array modifier default merge distance is 0.1m (typo)
Referenced by commit c3238bd500, Cleanup: Use DNA defaults for cloth modifier
Referenced by issue #86654, Bad motion blur from alembic animation import in v2.92. Works as expected in v2.83.13
Referenced by issue #83886, Particle instance modifier broken
Referenced by issue #81672, Array modifier default merge distance is 0.1m (typo)
Referenced by issue #80164, Missing DNA Defaults ("Reset to Default Value" sets to 0)
55 changed files with 1094 additions and 341 deletions

View File

@ -0,0 +1,728 @@
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/** \file
* \ingroup DNA
*/
#pragma once
/* Struct members on own line. */
/* clang-format off */
#define _DNA_DEFAULT_ArmatureModifierData \
{ \
.deformflag = ARM_DEF_VGROUP, \
.multi = 0.0f, \
.object = NULL, \
.defgrp_name = "", \
}
/* Default to 2 duplicates distributed along the x-axis by an offset of 1 object width. */
#define _DNA_DEFAULT_ArrayModifierData \
{ \
.start_cap = NULL, \
.end_cap = NULL, \
.curve_ob = NULL, \
.offset_ob = NULL, \
.offset = {1.0f, 0.0f, 0.0f}, \
.scale = {1.0f, 0.0f, 0.0f}, \
.length = 0.0f, \
.merge_dist = 0.1f, \
.fit_type = MOD_ARR_FIXEDCOUNT, \
.offset_type = MOD_ARR_OFF_RELATIVE, \
.flags = 0, \
.count = 2, \
.uv_offset = {0.0f, 0.0f}, \
}
#define _DNA_DEFAULT_BevelModifierData \
{ \
.value = 0.1f, \
.res = 1, \
.flags = 0, \
.val_flags = MOD_BEVEL_AMT_OFFSET, \
.profile_type = MOD_BEVEL_PROFILE_SUPERELLIPSE, \
.lim_flags = 0, \
.e_flags = 0, \
.mat = -1, \
.edge_flags = 0, \
.face_str_mode = MOD_BEVEL_FACE_STRENGTH_NONE, \
.miter_inner = MOD_BEVEL_MITER_SHARP, \
.miter_outer = MOD_BEVEL_MITER_SHARP, \
.affect_type = MOD_BEVEL_AFFECT_EDGES, \
.profile = 0.5f, \
.bevel_angle = DEG2RADF(30.0f), \
.spread = 0.1f, \
.defgrp_name = "", \
}
#define _DNA_DEFAULT_BooleanModifierData \
{ \
.object = NULL, \
.collection = NULL, \
.double_threshold = 1e-6f, \
.operation = eBooleanModifierOp_Difference, \
.solver = eBooleanModifierSolver_Exact, \
.flag = eBooleanModifierFlag_Object, \
.bm_flag = 0, \
}
#define _DNA_DEFAULT_BuildModifierData \
{ \
.start = 1.0f, \
.length = 100.0f, \
.flag = 0, \
.randomize = 0, \
.seed = 0, \
}
#define _DNA_DEFAULT_CastModifierData \
{ \
.object = NULL, \
.fac = 0.5f, \
.radius = 0.0f, \
.size = 0.0f, \
.defgrp_name = "", \
.flag = MOD_CAST_X | MOD_CAST_Y | MOD_CAST_Z | MOD_CAST_SIZE_FROM_RADIUS, \
.type = MOD_CAST_TYPE_SPHERE, \
}
/* Cloth modifier skipped for now. */
#define _DNA_DEFAULT_CollisionModifierData \
{ \
.x = NULL, \
.xnew = NULL, \
.xold = NULL, \
.current_xnew = NULL, \
.current_x = NULL, \
.current_v = NULL, \
.current_v = NULL, \
.tri = NULL, \
.mvert_num = 0, \
.tri_num = 0, \
.time_x = -1000.0f, \
.time_xnew = -1000.0f, \
.is_static = false, \
.bvhtree = NULL, \
}
#define _DNA_DEFAULT_CorrectiveSmoothModifierData \
{ \
.bind_coords = NULL, \
.bind_coords_num = 0, \
.lambda = 0.5f, \
.scale = 1.0f, \
.repeat = 5, \
.flag = 0, \
.smooth_type = MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE, \
.defgrp_name = "", \
}
#define _DNA_DEFAULT_CurveModifierData \
{ \
.object = NULL, \
.name = "", \
.defaxis = MOD_CURVE_POSX, \
.flag = 0, \
}
/* Defines are scattered accross too many files, they need to be moved to DNA. */
#if 0
#define _DNA_DEFAULT_DataTransferModifierData \
{ \
.ob_source = NULL, \
.data_types = 0, \
.vmap_mode = MREMAP_MODE_VERT_NEAREST, \
.emap_mode = MREMAP_MODE_EDGE_NEAREST, \
.lmap_mode = MREMAP_MODE_LOOP_NEAREST_POLYNOR, \
.pmap_mode = MREMAP_MODE_POLY_NEAREST, \
.map_max_distance = 1.0f, \
.map_ray_radius = 0.0f, \
.islands_precision = 0.0f, \
.layers_select_src = {DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC, DT_LAYERS_ALL_SRC}, \
.layers_select_dst = {DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST, DT_LAYERS_NAME_DST}, \
.mix_mod = CDT_MIX_TRANSFER, \
.mix_factor = 1.0f, \
.defgrp_name = "", \
.flags = MOD_DATATRANSFER_OBSRC_TRANSFORM, \
}
#endif
#define _DNA_DEFAULT_DecimateModifierData \
{ \
.percent = 1.0f, \
.iter = 0, \
.delimit = 0, \
.symmetry_axis = 0, \
.angle = DEG2RADF(5.0f), \
.defgrp_name = "", \
.defgrp_factor = 1.0f, \
.flag = 0, \
.mode = 0, \
.face_count = 0, \
}
#define _DNA_DEFAULT_DisplaceModifierData \
{ \
.texture = NULL, \
.map_object = NULL, \
.map_bone = "", \
.uvlayer_name = "", \
.uvlayer_tmp = 0, \
.texmapping = 0, \
.strength = 1.0f, \
.direction = MOD_DISP_DIR_NOR, \
.defgrp_name = "", \
.midlevel = 0.5f, \
.space = MOD_DISP_SPACE_LOCAL, \
.flag = 0, \
}
#define _DNA_DEFAULT_DynamicPaintModifierData \
{ \
.canvas = NULL, \
.brush = NULL, \
.type = MOD_DYNAMICPAINT_TYPE_CANVAS, \
}
/* Default to 30-degree split angle, sharpness from both angle & flag. */
#define _DNA_DEFAULT_EdgeSplitModifierData \
{ \
.split_angle = DEG2RADF(30.0f), \
.flags = MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG, \
}
#define _DNA_DEFAULT_ExplodeModifierData \
{ \
.facepa = NULL, \
.flag = eExplodeFlag_Unborn | eExplodeFlag_Alive | eExplodeFlag_Dead, \
.vgroup = 0, \
.protect = 0.0f, \
.uvname = "", \
}
/* Fluid modifier settings skipped for now. */
#define _DNA_DEFAULT_HookModifierData \
{ \
.subtarget = "", \
.flag = 0, \
.falloff_type = eHook_Falloff_Smooth, \
.parentinv = _DNA_DEFAULT_UNIT_M4, \
.cent = {0.0f, 0.0f, 0.0f}, \
.falloff = 0.0f, \
.curfalloff = NULL, \
.indexar = NULL, \
.totindex = 0, \
.force = 1.0f, \
.name = "", \
}
#define _DNA_DEFAULT_LaplacianDeformModifierData \
{ \
.anchor_grp_name = "", \
.total_verts = 0, \
.repeat = 1, \
.vertexco = NULL, \
.cache_system = NULL, \
.flag = 0, \
}
#define _DNA_DEFAULT_LaplacianSmoothModifierData \
{ \
.lambda = 0.01f, \
.lambda_border = 0.01f, \
.defgrp_name = "", \
.flag = MOD_LAPLACIANSMOOTH_X | MOD_LAPLACIANSMOOTH_Y | MOD_LAPLACIANSMOOTH_Z | \
MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME | MOD_LAPLACIANSMOOTH_NORMALIZED, \
.repeat = 1, \
}
#define _DNA_DEFAULT_LatticeModifierData \
{ \
.object = NULL, \
.name = "", \
.strength = 1.0f, \
.flag = 0, \
}
#define _DNA_DEFAULT_MaskModifierData \
{ \
.ob_arm = NULL, \
.vgroup = "", \
.mode = 0, \
.flag = 0, \
.threshold = 0.0f, \
}
/* Y and Z forward and up axes, Blender default. */
#define _DNA_DEFAULT_MeshCacheModifierData \
{ \
.flag = 0, \
.type = MOD_MESHCACHE_TYPE_MDD, \
.time_mode = 0, \
.play_mode = 0, \
.forward_axis = 1, \
.up_axis = 2, \
.flip_axis = 0, \
.interp = MOD_MESHCACHE_INTERP_LINEAR, \
.factor = 1.0f, \
.deform_mode = 0.0f, \
.frame_start = 0.0f, \
.frame_scale = 1.0f, \
.eval_frame = 0.0f, \
.eval_time = 0.0f, \
.eval_factor = 0.0f, \
.filepath = "", \
}
#define _DNA_DEFAULT_MeshDeformModifierData \
{ \
.object = 0, \
.defgrp_name = "", \
.gridsize = 5, \
.flag = 0, \
.bindinfluences = NULL, \
.bindoffsets = NULL, \
.bindcagecos = NULL, \
.totvert = 0, \
.totcagevert = 0, \
.dyngrid = NULL, \
.dyninfluences = NULL, \
.dynverts = NULL, \
.dyngridsize = 0, \
.totinfluence = 0, \
.dyncellmin = {0.0f, 0.0f, 0.0f}, \
.dyncellwidth = 0.0f, \
.bindmat = _DNA_DEFAULT_UNIT_M4, \
.bindweights = NULL, \
.bindcos = NULL, \
.bindfunc = NULL, \
}
#define _DNA_DEFAULT_MeshSeqCacheModifierData \
{ \
.cache_file = NULL, \
.object_path = "", \
.read_flag = MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | MOD_MESHSEQ_READ_COLOR, \
.velocity_scale = 1.0f, \
.reader = NULL, \
.reader_object_path = "", \
.vertex_velocities = NULL, \
.num_vertices = 0, \
.velocity_delta = 0.0f, \
.last_lookup_time = 0.0f, \
}
#define _DNA_DEFAULT_MirrorModifierData \
{ \
.flag = MOD_MIR_AXIS_X | MOD_MIR_VGROUP, \
.tolerance = 0.001f, \
.uv_offset = {0.0f, 0.0f}, \
.uv_offset_copy = {0.0f, 0.0f}, \
.mirror_ob = NULL, \
}
#define _DNA_DEFAULT_MultiresModifierData \
{ \
.lvl = 0, \
.sculptlvl = 0, \
.renderlvl = 0, \
.totlvl = 0, \
.simple = 0, \
.flags = eMultiresModifierFlag_UseCrease | eMultiresModifierFlag_ControlEdges, \
.uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS, \
.quality = 4, \
.boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
}
#define _DNA_DEFAULT_NormalEditModifierData \
{ \
.defgrp_name = "", \
.target = NULL, \
.mode = MOD_NORMALEDIT_MODE_RADIAL, \
.flag = 0, \
.mix_mode = MOD_NORMALEDIT_MIX_COPY, \
.mix_factor = 1.0f, \
.mix_limit = M_PI, \
.offset = {0.0f, 0.0f, 0.0f}, \
}
/* Some fields are initialized in #initData. */
#define _DNA_DEFAULT_OceanModifierData \
{ \
.ocean = NULL, \
.oceancache = NULL, \
.resolution = 7, \
.viewport_resolution = 7, \
.spatial_size = 50, \
.wind_velocity = 30.0f, \
.damp = 0.5f, \
.smallest_wave = 0.01f, \
.depth = 200.0f, \
.wave_alignment = 0.0f, \
.wave_direction = 0.0f, \
.wave_scale = 1.0f, \
.chop_amount = 1.0f, \
.foam_coverage = 0.0f, \
.time = 1.0f, \
.spectrum = MOD_OCEAN_SPECTRUM_PHILLIPS, \
.fetch_jonswap = 120.0f, \
.sharpen_peak_jonswap = 0.0f, \
.bakestart = 1, \
.bakeend = 250, \
.cachepath = "", \
.foamlayername = "", \
.spraylayername = "", \
.cached = 0, \
.geometry_mode = 0, \
.flag = 0, \
.repeat_x = 1, \
.repeat_y = 1, \
.seed = 0, \
.size = 1.0f, \
.foam_fade = 0.98f, \
}
#define _DNA_DEFAULT_ParticleInstanceModifierData \
{ \
.psys = 1, \
.flag = eParticleInstanceFlag_Parents | eParticleInstanceFlag_Unborn | \
eParticleInstanceFlag_Alive | eParticleInstanceFlag_Dead, \
.axis = 2, \
.space = eParticleInstanceSpace_World, \
.position = 1.0f, \
.random_position = 0.0f, \
.rotation = 0.0f, \
.random_rotation = 0.0f, \
.particle_offset = 1.0f, \
.particle_amount = 0.0f, \
.index_layer_name = "", \
.value_layer_name = "", \
}
#define _DNA_DEFAULT_ParticleSystemModifierData \
{ \
.psys = NULL, \
.mesh_final = NULL, \
.mesh_original = NULL, \
.totdmvert = 0, \
.totdmedge = 0, \
.totdmface = 0, \
.flag = 0, \
}
#define _DNA_DEFAULT_RemeshModifierData \
{ \
.threshold = 1.0f, \
.scale = 0.9f, \
.hermite_num = 1.0f, \
.depth = 4, \
.flag = MOD_REMESH_FLOOD_FILL, \
.mode = MOD_REMESH_VOXEL, \
.voxel_size = 0.1f, \
.adaptivity = 0.0f, \
}
#define _DNA_DEFAULT_ScrewModifierData \
{ \
.ob_axis = NULL, \
.steps = 16, \
.render_steps = 16, \
.iter = 1, \
.screw_ofs = 0.0f, \
.angle = 2.0f * M_PI, \
.merge_dist = 0.01f, \
.flag = MOD_SCREW_SMOOTH_SHADING, \
.axis = 2, \
}
/* Shape key modifier has no items. */
#define _DNA_DEFAULT_ShrinkwrapModifierData \
{ \
.target = NULL, \
.auxTarget = NULL, \
.vgroup_name = "", \
.keepDist = 0.0f, \
.shrinkType = MOD_SHRINKWRAP_NEAREST_SURFACE, \
.shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR, \
.shrinkMode = 0, \
.projLimit = 0.0f, \
.projAxis = 0, \
.subsurfLevels = 0, \
}
#define _DNA_DEFAULT_SimpleDeformModifierData \
{ \
.origin = NULL, \
.vgroup_name = "", \
.factor = DEG2RADF(45.0f), \
.limit = {0.0f, 1.0f}, \
.mode = MOD_SIMPLEDEFORM_MODE_TWIST, \
.axis = 0, \
.deform_axis = 0, \
.flag = 0, \
}
#define _DNA_DEFAULT_SimulationModifierData \
{ \
.simulation = NULL, \
.data_path = NULL, \
}
#define _DNA_DEFAULT_SkinModifierData \
{ \
.branch_smoothing = 0.0f, \
.flag = 0, \
.symmetry_axes = MOD_SKIN_SYMM_X, \
}
#define _DNA_DEFAULT_SmoothModifierData \
{ \
.fac = 0.5f, \
.repeat = 1, \
.defgrp_name = "", \
.flag = MOD_SMOOTH_X | MOD_SMOOTH_Y | MOD_SMOOTH_Z, \
}
/* Softbody modifier skipped for now. */
#define _DNA_DEFAULT_SolidifyModifierData \
{ \
.defgrp_name = "", \
.shell_defgrp_name = "", \
.rim_defgrp_name = "", \
.offset = 0.01f, \
.offset_fac = -1.0f, \
.offset_fac_vg = 0.0f, \
.offset_clamp = 0.0f, \
.mode = MOD_SOLIDIFY_MODE_EXTRUDE, \
.nonmanifold_offset_mode = MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS, \
.nonmanifold_boundary_mode = MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE, \
.crease_inner = 0.0f, \
.crease_outer = 0.0f, \
.crease_rim = 0.0f, \
.flag = MOD_SOLIDIFY_RIM, \
.mat_ofs = 0, \
.mat_ofs_rim = 0, \
.merge_tolerance = 0.0001f, \
.bevel_convex = 0.0f, \
}
#define _DNA_DEFAULT_SubsurfModifierData \
{ \
.subdivType = 0, \
.levels = 1, \
.renderLevels = 2, \
.flags = eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges, \
.uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS, \
.quality = 3, \
.boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL, \
.emCache = NULL, \
.mCache = NULL, \
}
#define _DNA_DEFAULT_SurfaceModifierData \
{ \
.x = NULL, \
.v = NULL, \
.mesh = NULL, \
.bvhtree = NULL, \
.cfra = 0, \
.numverts = 0, \
}
#define _DNA_DEFAULT_SurfaceDeformModifierData \
{ \
.depsgraph = NULL, \
.target = NULL, \
.verts = NULL, \
.falloff = 4.0f, \
.numverts = 0, \
.numpoly = 0, \
.flags = 0, \
.mat = _DNA_DEFAULT_UNIT_M4, \
.strength = 1.0f, \
.defgrp_name = "", \
}
#define _DNA_DEFAULT_TriangulateModifierData \
{ \
.flag = 0, \
.quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE, \
.ngon_method = MOD_TRIANGULATE_NGON_BEAUTY, \
.min_vertices = 4, \
}
#define _DNA_DEFAULT_UVProjectModifierData \
{ \
.projectors = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}, \
.num_projectors = 1, \
.aspectx = 1.0f, \
.aspecty = 1.0f, \
.scalex = 1.0f, \
.scaley = 1.0f, \
.uvlayer_name = "", \
.uvlayer_tmp = 0, \
}
#define _DNA_DEFAULT_UVWarpModifierData \
{ \
.axis_u = 0, \
.axis_v = 1, \
.flag = 0, \
.center = {0.5f, 0.5f}, \
.offset = {0.0f, 0.0f}, \
.scale = {1.0f, 1.0f}, \
.rotation = 0.0f, \
.object_src = NULL, \
.bone_src = "", \
.object_dst = NULL, \
.bone_dst = "", \
.vgroup_name = "", \
.uvlayer_name = "", \
}
#define _DNA_DEFAULT_WarpModifierData \
{ \
.texture = NULL, \
.map_object = NULL, \
.map_bone = "", \
.uvlayer_name = "", \
.uvlayer_tmp = 0, \
.texmapping = 0, \
.object_from = NULL, \
.object_to = NULL, \
.bone_from = "", \
.bone_to = "", \
.curfalloff = NULL, \
.defgrp_name = "", \
.strength = 1.0f, \
.falloff_radius = 1.0f, \
.flag = 0, \
.falloff_type = eWarp_Falloff_Smooth, \
}
#define _DNA_DEFAULT_WaveModifierData \
{ \
.texture = NULL, \
.map_object = NULL, \
.map_bone = "", \
.uvlayer_name = "", \
.uvlayer_tmp = 0, \
.texmapping = MOD_DISP_MAP_LOCAL, \
.objectcenter = NULL, \
.defgrp_name = "", \
.flag = MOD_WAVE_X | MOD_WAVE_Y | MOD_WAVE_CYCL | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y | MOD_WAVE_NORM_Z, \
.startx = 0.0f, \
.starty = 0.0f, \
.height = 0.5f, \
.width = 1.5f, \
.narrow = 1.5f, \
.speed = 0.25f, \
.damp = 10.0f, \
.falloff = 0.0f, \
.timeoffs = 0.0f, \
.lifetime = 0.0f, \
}
#define _DNA_DEFAULT_WeightedNormalModifierData \
{ \
.defgrp_name = "", \
.mode = MOD_WEIGHTEDNORMAL_MODE_FACE, \
.flag = 0, \
.weight = 50, \
.thresh = 0.01f, \
}
#define _DNA_DEFAULT_WeightVGEditModifierData \
{ \
.defgrp_name = "", \
.edit_flags = 0, \
.falloff_type = MOD_WVG_MAPPING_NONE, \
.default_weight = 0.0f, \
.cmap_curve = NULL, \
.add_threshold = 0.01f, \
.rem_threshold = 0.01f, \
.mask_constant = 1.0f, \
.mask_defgrp_name = "", \
.mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
.mask_texture = NULL, \
.mask_tex_map_obj = NULL, \
.mask_tex_map_bone = "", \
.mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
.mask_tex_uvlayer_name = "", \
}
#define _DNA_DEFAULT_WeightVGMixModifierData \
{ \
.defgrp_name_a = "", \
.defgrp_name_b = "", \
.default_weight_a = 0.0f, \
.default_weight_b = 0.0f, \
.mix_mode = MOD_WVG_MIX_SET, \
.mix_set = MOD_WVG_SET_AND, \
.mask_constant = 1.0f, \
.mask_defgrp_name = "", \
.mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
.mask_texture = NULL, \
.mask_tex_map_obj = NULL, \
.mask_tex_map_bone = "", \
.mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
.mask_tex_uvlayer_name = "", \
.flag = 0, \
}
#define _DNA_DEFAULT_WeightVGProximityModifierData \
{ \
.defgrp_name = "", \
.proximity_mode = MOD_WVG_PROXIMITY_OBJECT, \
.proximity_flags = MOD_WVG_PROXIMITY_GEOM_VERTS, \
.proximity_ob_target = NULL, \
.mask_constant = 1.0f, \
.mask_defgrp_name = "", \
.mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT, \
.mask_texture = NULL, \
.mask_tex_map_obj = NULL, \
.mask_tex_map_bone = "", \
.mask_tex_mapping = MOD_DISP_MAP_LOCAL, \
.mask_tex_uvlayer_name = "", \
.min_dist = 0.0f, \
.max_dist = 1.0f, \
.falloff_type = MOD_WVG_MAPPING_NONE, \
}
#define _DNA_DEFAULT_WeldModifierData \
{ \
.merge_dist = 0.001f, \
.defgrp_name = "", \
}
#define _DNA_DEFAULT_WireframeModifierData \
{ \
.defgrp_name = "", \
.offset = 0.02f, \
.offset_fac = 0.0f, \
.offset_fac_vg = 0.0f, \
.crease_weight = 1.0f, \
.flag = MOD_WIREFRAME_REPLACE | MOD_WIREFRAME_OFS_EVEN, \
.mat_ofs = 0, \
}
/* clang-format off */

View File

@ -151,6 +151,7 @@ set(SRC
../DNA_material_defaults.h
../DNA_mesh_defaults.h
../DNA_meta_defaults.h
../DNA_modifier_types.h
../DNA_object_defaults.h
../DNA_pointcloud_defaults.h
../DNA_scene_defaults.h

View File

@ -82,6 +82,7 @@
#include "DNA_defaults.h"
#include "DNA_armature_types.h"
#include "DNA_brush_types.h"
#include "DNA_cachefile_types.h"
#include "DNA_camera_types.h"
@ -96,6 +97,7 @@
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_pointcloud_types.h"
#include "DNA_scene_types.h"
@ -119,6 +121,7 @@
#include "DNA_material_defaults.h"
#include "DNA_mesh_defaults.h"
#include "DNA_meta_defaults.h"
#include "DNA_modifier_defaults.h"
#include "DNA_object_defaults.h"
#include "DNA_pointcloud_defaults.h"
#include "DNA_scene_defaults.h"
@ -198,6 +201,63 @@ SDNA_DEFAULT_DECL_STRUCT(Volume);
/* DNA_world_defaults.h */
SDNA_DEFAULT_DECL_STRUCT(World);
/* DNA_modifier_defaults.h */
SDNA_DEFAULT_DECL_STRUCT(ArmatureModifierData);
SDNA_DEFAULT_DECL_STRUCT(ArrayModifierData);
SDNA_DEFAULT_DECL_STRUCT(BevelModifierData);
SDNA_DEFAULT_DECL_STRUCT(BooleanModifierData);
SDNA_DEFAULT_DECL_STRUCT(BuildModifierData);
SDNA_DEFAULT_DECL_STRUCT(CastModifierData);
/* Cloth modifier skipped for now. */
SDNA_DEFAULT_DECL_STRUCT(CollisionModifierData);
SDNA_DEFAULT_DECL_STRUCT(CorrectiveSmoothModifierData);
SDNA_DEFAULT_DECL_STRUCT(CurveModifierData);
// SDNA_DEFAULT_DECL_STRUCT(DataTransferModifierData);
SDNA_DEFAULT_DECL_STRUCT(DecimateModifierData);
SDNA_DEFAULT_DECL_STRUCT(DisplaceModifierData);
SDNA_DEFAULT_DECL_STRUCT(DynamicPaintModifierData);
SDNA_DEFAULT_DECL_STRUCT(EdgeSplitModifierData);
SDNA_DEFAULT_DECL_STRUCT(ExplodeModifierData);
/* Fluid modifier skipped for now. */
SDNA_DEFAULT_DECL_STRUCT(HookModifierData);
SDNA_DEFAULT_DECL_STRUCT(LaplacianDeformModifierData);
SDNA_DEFAULT_DECL_STRUCT(LaplacianSmoothModifierData);
SDNA_DEFAULT_DECL_STRUCT(LatticeModifierData);
SDNA_DEFAULT_DECL_STRUCT(MaskModifierData);
SDNA_DEFAULT_DECL_STRUCT(MeshCacheModifierData);
SDNA_DEFAULT_DECL_STRUCT(MeshDeformModifierData);
SDNA_DEFAULT_DECL_STRUCT(MeshSeqCacheModifierData);
SDNA_DEFAULT_DECL_STRUCT(MirrorModifierData);
SDNA_DEFAULT_DECL_STRUCT(MultiresModifierData);
SDNA_DEFAULT_DECL_STRUCT(NormalEditModifierData);
SDNA_DEFAULT_DECL_STRUCT(OceanModifierData);
SDNA_DEFAULT_DECL_STRUCT(ParticleInstanceModifierData);
SDNA_DEFAULT_DECL_STRUCT(ParticleSystemModifierData);
SDNA_DEFAULT_DECL_STRUCT(RemeshModifierData);
SDNA_DEFAULT_DECL_STRUCT(ScrewModifierData);
/* Shape key modifier has no items. */
SDNA_DEFAULT_DECL_STRUCT(ShrinkwrapModifierData);
SDNA_DEFAULT_DECL_STRUCT(SimpleDeformModifierData);
SDNA_DEFAULT_DECL_STRUCT(SimulationModifierData);
SDNA_DEFAULT_DECL_STRUCT(SkinModifierData);
SDNA_DEFAULT_DECL_STRUCT(SmoothModifierData);
/* Softbody modifier skipped for now. */
SDNA_DEFAULT_DECL_STRUCT(SolidifyModifierData);
SDNA_DEFAULT_DECL_STRUCT(SubsurfModifierData);
SDNA_DEFAULT_DECL_STRUCT(SurfaceModifierData);
SDNA_DEFAULT_DECL_STRUCT(SurfaceDeformModifierData);
SDNA_DEFAULT_DECL_STRUCT(TriangulateModifierData);
SDNA_DEFAULT_DECL_STRUCT(UVProjectModifierData);
SDNA_DEFAULT_DECL_STRUCT(UVWarpModifierData);
SDNA_DEFAULT_DECL_STRUCT(WarpModifierData);
SDNA_DEFAULT_DECL_STRUCT(WaveModifierData);
SDNA_DEFAULT_DECL_STRUCT(WeightedNormalModifierData);
SDNA_DEFAULT_DECL_STRUCT(WeightVGEditModifierData);
SDNA_DEFAULT_DECL_STRUCT(WeightVGMixModifierData);
SDNA_DEFAULT_DECL_STRUCT(WeightVGProximityModifierData);
SDNA_DEFAULT_DECL_STRUCT(WeldModifierData);
SDNA_DEFAULT_DECL_STRUCT(WireframeModifierData);
#undef SDNA_DEFAULT_DECL_STRUCT
/* Reuse existing definitions. */
@ -321,6 +381,63 @@ const void *DNA_default_table[SDNA_TYPE_MAX] = {
/* DNA_world_defaults.h */
SDNA_DEFAULT_DECL(World),
/* DNA_modifier_defaults.h */
SDNA_DEFAULT_DECL(ArmatureModifierData),
SDNA_DEFAULT_DECL(ArrayModifierData),
SDNA_DEFAULT_DECL(BevelModifierData),
SDNA_DEFAULT_DECL(BooleanModifierData),
SDNA_DEFAULT_DECL(BuildModifierData),
SDNA_DEFAULT_DECL(CastModifierData),
/* Cloth modifier skipped for now. */
SDNA_DEFAULT_DECL(CollisionModifierData),
SDNA_DEFAULT_DECL(CorrectiveSmoothModifierData),
SDNA_DEFAULT_DECL(CurveModifierData),
// SDNA_DEFAULT_DECL(DataTransferModifierData),
SDNA_DEFAULT_DECL(DecimateModifierData),
SDNA_DEFAULT_DECL(DisplaceModifierData),
SDNA_DEFAULT_DECL(DynamicPaintModifierData),
SDNA_DEFAULT_DECL(EdgeSplitModifierData),
SDNA_DEFAULT_DECL(ExplodeModifierData),
/* Fluid modifier skipped for now. */
SDNA_DEFAULT_DECL(HookModifierData),
SDNA_DEFAULT_DECL(LaplacianDeformModifierData),
SDNA_DEFAULT_DECL(LaplacianSmoothModifierData),
SDNA_DEFAULT_DECL(LatticeModifierData),
SDNA_DEFAULT_DECL(MaskModifierData),
SDNA_DEFAULT_DECL(MeshCacheModifierData),
SDNA_DEFAULT_DECL(MeshDeformModifierData),
SDNA_DEFAULT_DECL(MeshSeqCacheModifierData),
SDNA_DEFAULT_DECL(MirrorModifierData),
SDNA_DEFAULT_DECL(MultiresModifierData),
SDNA_DEFAULT_DECL(NormalEditModifierData),
SDNA_DEFAULT_DECL(OceanModifierData),
SDNA_DEFAULT_DECL(ParticleInstanceModifierData),
SDNA_DEFAULT_DECL(ParticleSystemModifierData),
SDNA_DEFAULT_DECL(RemeshModifierData),
SDNA_DEFAULT_DECL(ScrewModifierData),
/* Shape key modifier has no items. */
SDNA_DEFAULT_DECL(ShrinkwrapModifierData),
SDNA_DEFAULT_DECL(SimpleDeformModifierData),
SDNA_DEFAULT_DECL(SimulationModifierData),
SDNA_DEFAULT_DECL(SkinModifierData),
SDNA_DEFAULT_DECL(SmoothModifierData),
/* Softbody modifier skipped for now. */
SDNA_DEFAULT_DECL(SolidifyModifierData),
SDNA_DEFAULT_DECL(SubsurfModifierData),
SDNA_DEFAULT_DECL(SurfaceModifierData),
SDNA_DEFAULT_DECL(SurfaceDeformModifierData),
SDNA_DEFAULT_DECL(TriangulateModifierData),
SDNA_DEFAULT_DECL(UVProjectModifierData),
SDNA_DEFAULT_DECL(UVWarpModifierData),
SDNA_DEFAULT_DECL(WarpModifierData),
SDNA_DEFAULT_DECL(WaveModifierData),
SDNA_DEFAULT_DECL(WeightedNormalModifierData),
SDNA_DEFAULT_DECL(WeightVGEditModifierData),
SDNA_DEFAULT_DECL(WeightVGMixModifierData),
SDNA_DEFAULT_DECL(WeightVGProximityModifierData),
SDNA_DEFAULT_DECL(WeldModifierData),
SDNA_DEFAULT_DECL(WireframeModifierData),
};
#undef SDNA_DEFAULT_DECL
#undef SDNA_DEFAULT_DECL_EX

View File

@ -3742,7 +3742,6 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna)
prop = RNA_def_property(srna, "particle_amount", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_range(prop, 0.0, 1.0);
RNA_def_property_ui_text(prop, "Particle Amount", "Amount of particles to use for instancing");
RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "particle_offset", PROP_FLOAT, PROP_FACTOR);
@ -3751,7 +3750,6 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna)
"Particle Offset",
"Relative offset of particles to use for instancing, to avoid overlap "
"of multiple instances");
RNA_def_property_float_default(prop, 0.0f);
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "index_layer_name", PROP_STRING, PROP_NONE);
@ -4515,7 +4513,6 @@ static void rna_def_modifier_simpledeform(BlenderRNA *brna)
prop = RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE);
RNA_def_property_float_sdna(prop, NULL, "factor");
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
RNA_def_property_float_default(prop, DEG2RADF(45.0f));
RNA_def_property_ui_range(prop, DEG2RAD(-360.0), DEG2RAD(360.0), 10.0, 3);
RNA_def_property_ui_text(prop, "Angle", "Angle of deformation");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@ -6685,7 +6682,7 @@ static void rna_def_modifier_datatransfer(BlenderRNA *brna)
prop = RNA_def_float_factor(
srna,
"mix_factor",
1.0f,
0.0f,
0.0f,
1.0f,
"Mix Factor",
@ -6775,27 +6772,15 @@ static void rna_def_modifier_normaledit(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Mix Mode", "How to mix generated normals with existing ones");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_float(srna,
"mix_factor",
1.0f,
0.0f,
1.0f,
"Mix Factor",
"How much of generated normals to mix with exiting ones",
0.0f,
1.0f);
prop = RNA_def_property(srna, "mix_factor", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_range(prop, 0.0, 1.0);
RNA_def_property_ui_text(
prop, "Mix Factor", "How much of generated normals to mix with exiting ones");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_float(srna,
"mix_limit",
1.0f,
0.0f,
DEG2RADF(180.0f),
"Max Angle",
"Maximum angle between old and new normals",
0.0f,
DEG2RADF(180.0f));
RNA_def_property_subtype(prop, PROP_ANGLE);
prop = RNA_def_property(srna, "mix_limit", PROP_FLOAT, PROP_ANGLE);
RNA_def_property_range(prop, 0.0, DEG2RADF(180.0f));
RNA_def_property_ui_text(prop, "Max Angle", "Maximum angle between old and new normals");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "no_polynors_fix", PROP_BOOLEAN, PROP_NONE);

View File

@ -203,4 +203,5 @@ blender_add_lib(bf_modifiers "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
# Some modifiers include BLO_read_write.h, which includes dna_type_offsets.h
# which is generated by bf_dna. Need to ensure compilaiton order here.
# Also needed so we can use dna_type_offsets.h for defaults initialization.
add_dependencies(bf_modifiers bf_dna)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_armature_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@ -65,7 +66,9 @@ static void initData(ModifierData *md)
{
ArmatureModifierData *amd = (ArmatureModifierData *)md;
amd->deformflag = ARM_DEF_VGROUP;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(amd, modifier));
MEMCPY_STRUCT_AFTER(amd, DNA_struct_default_get(ArmatureModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)

View File

@ -32,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_curve_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -63,19 +64,9 @@ static void initData(ModifierData *md)
{
ArrayModifierData *amd = (ArrayModifierData *)md;
/* default to 2 duplicates distributed along the x-axis by an
* offset of 1 object-width
*/
amd->start_cap = amd->end_cap = amd->curve_ob = amd->offset_ob = NULL;
amd->count = 2;
zero_v3(amd->offset);
amd->scale[0] = 1;
amd->scale[1] = amd->scale[2] = 0;
amd->length = 0;
amd->merge_dist = 0.01;
amd->fit_type = MOD_ARR_FIXEDCOUNT;
amd->offset_type = MOD_ARR_OFF_RELATIVE;
amd->flags = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(amd, modifier));
MEMCPY_STRUCT_AFTER(amd, DNA_struct_default_get(ArrayModifierData), modifier);
/* Open the first subpanel by default, it corresspnds to Relative offset which is enabled too. */
md->ui_expand_flag = (1 << 0) | (1 << 1);

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_curveprofile_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -63,22 +64,10 @@ static void initData(ModifierData *md)
{
BevelModifierData *bmd = (BevelModifierData *)md;
bmd->value = 0.1f;
bmd->res = 1;
bmd->flags = 0;
bmd->val_flags = MOD_BEVEL_AMT_OFFSET;
bmd->lim_flags = 0;
bmd->e_flags = 0;
bmd->edge_flags = 0;
bmd->face_str_mode = MOD_BEVEL_FACE_STRENGTH_NONE;
bmd->miter_inner = MOD_BEVEL_MITER_SHARP;
bmd->miter_outer = MOD_BEVEL_MITER_SHARP;
bmd->affect_type = MOD_BEVEL_AFFECT_EDGES;
bmd->spread = 0.1f;
bmd->mat = -1;
bmd->profile = 0.5f;
bmd->bevel_angle = DEG2RADF(30.0f);
bmd->defgrp_name[0] = '\0';
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(bmd, modifier));
MEMCPY_STRUCT_AFTER(bmd, DNA_struct_default_get(BevelModifierData), modifier);
bmd->custom_profile = BKE_curveprofile_add(PROF_PRESET_LINE);
}

View File

@ -35,6 +35,7 @@
#include "BLT_translation.h"
#include "DNA_collection_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -79,10 +80,9 @@ static void initData(ModifierData *md)
{
BooleanModifierData *bmd = (BooleanModifierData *)md;
bmd->double_threshold = 1e-6f;
bmd->operation = eBooleanModifierOp_Difference;
bmd->solver = eBooleanModifierSolver_Exact;
bmd->flag = eBooleanModifierFlag_Object;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(bmd, modifier));
MEMCPY_STRUCT_AFTER(bmd, DNA_struct_default_get(BooleanModifierData), modifier);
}
static bool isDisabled(const struct Scene *UNUSED(scene),

View File

@ -29,6 +29,7 @@
#include "BLI_math_vector.h"
#include "BLI_rand.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -55,8 +56,9 @@ static void initData(ModifierData *md)
{
BuildModifierData *bmd = (BuildModifierData *)md;
bmd->start = 1.0;
bmd->length = 100.0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(bmd, modifier));
MEMCPY_STRUCT_AFTER(bmd, DNA_struct_default_get(BuildModifierData), modifier);
}
static bool dependsOnTime(ModifierData *UNUSED(md))

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -56,13 +57,9 @@ static void initData(ModifierData *md)
{
CastModifierData *cmd = (CastModifierData *)md;
cmd->fac = 0.5f;
cmd->radius = 0.0f;
cmd->size = 0.0f;
cmd->flag = MOD_CAST_X | MOD_CAST_Y | MOD_CAST_Z | MOD_CAST_SIZE_FROM_RADIUS;
cmd->type = MOD_CAST_TYPE_SPHERE;
cmd->defgrp_name[0] = '\0';
cmd->object = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cmd, modifier));
MEMCPY_STRUCT_AFTER(cmd, DNA_struct_default_get(CastModifierData), modifier);
}
static bool isDisabled(const struct Scene *UNUSED(scene),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -62,16 +63,9 @@ static void initData(ModifierData *md)
{
CollisionModifierData *collmd = (CollisionModifierData *)md;
collmd->x = NULL;
collmd->xnew = NULL;
collmd->current_x = NULL;
collmd->current_xnew = NULL;
collmd->current_v = NULL;
collmd->time_x = collmd->time_xnew = -1000;
collmd->mvert_num = 0;
collmd->tri_num = 0;
collmd->is_static = false;
collmd->bvhtree = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(collmd, modifier));
MEMCPY_STRUCT_AFTER(collmd, DNA_struct_default_get(CollisionModifierData), modifier);
}
static void freeData(ModifierData *md)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -56,8 +57,6 @@
#include "BLO_read_write.h"
#include "BLI_strict_flags.h"
#include "DEG_depsgraph_query.h"
// #define DEBUG_TIME
@ -74,20 +73,15 @@ static void initData(ModifierData *md)
{
CorrectiveSmoothModifierData *csmd = (CorrectiveSmoothModifierData *)md;
csmd->bind_coords = NULL;
csmd->bind_coords_num = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(csmd, modifier));
csmd->lambda = 0.5f;
csmd->scale = 1.0f;
csmd->repeat = 5;
csmd->flag = 0;
csmd->smooth_type = MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE;
csmd->defgrp_name[0] = '\0';
MEMCPY_STRUCT_AFTER(csmd, DNA_struct_default_get(CorrectiveSmoothModifierData), modifier);
csmd->delta_cache.deltas = NULL;
}
#include "BLI_strict_flags.h"
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
{
const CorrectiveSmoothModifierData *csmd = (const CorrectiveSmoothModifierData *)md;

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@ -60,7 +61,9 @@ static void initData(ModifierData *md)
{
CurveModifierData *cmd = (CurveModifierData *)md;
cmd->defaxis = MOD_CURVE_POSX;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cmd, modifier));
MEMCPY_STRUCT_AFTER(cmd, DNA_struct_default_get(CurveModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -63,9 +64,9 @@ static void initData(ModifierData *md)
{
DecimateModifierData *dmd = (DecimateModifierData *)md;
dmd->percent = 1.0;
dmd->angle = DEG2RADF(5.0f);
dmd->defgrp_factor = 1.0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(dmd, modifier));
MEMCPY_STRUCT_AFTER(dmd, DNA_struct_default_get(DecimateModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -28,6 +28,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -68,11 +69,9 @@ static void initData(ModifierData *md)
{
DisplaceModifierData *dmd = (DisplaceModifierData *)md;
dmd->texture = NULL;
dmd->strength = 1;
dmd->direction = MOD_DISP_DIR_NOR;
dmd->midlevel = 0.5;
dmd->space = MOD_DISP_SPACE_LOCAL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(dmd, modifier));
MEMCPY_STRUCT_AFTER(dmd, DNA_struct_default_get(DisplaceModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -19,12 +19,14 @@
*/
#include <stddef.h>
#include <string.h>
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_dynamicpaint_types.h"
#include "DNA_mesh_types.h"
#include "DNA_object_force_types.h"
@ -57,9 +59,9 @@ static void initData(ModifierData *md)
{
DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md;
pmd->canvas = NULL;
pmd->brush = NULL;
pmd->type = MOD_DYNAMICPAINT_TYPE_CANVAS;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(pmd, modifier));
MEMCPY_STRUCT_AFTER(pmd, DNA_struct_default_get(DynamicPaintModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)

View File

@ -32,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@ -119,9 +120,9 @@ static void initData(ModifierData *md)
{
EdgeSplitModifierData *emd = (EdgeSplitModifierData *)md;
/* default to 30-degree split angle, sharpness from both angle & flag */
emd->split_angle = DEG2RADF(30.0f);
emd->flags = MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(emd, modifier));
MEMCPY_STRUCT_AFTER(emd, DNA_struct_default_get(EdgeSplitModifierData), modifier);
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -64,8 +65,9 @@ static void initData(ModifierData *md)
{
ExplodeModifierData *emd = (ExplodeModifierData *)md;
emd->facepa = NULL;
emd->flag |= eExplodeFlag_Unborn + eExplodeFlag_Alive + eExplodeFlag_Dead;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(emd, modifier));
MEMCPY_STRUCT_AFTER(emd, DNA_struct_default_get(ExplodeModifierData), modifier);
}
static void freeData(ModifierData *md)
{

View File

@ -28,6 +28,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -63,10 +64,11 @@ static void initData(ModifierData *md)
{
HookModifierData *hmd = (HookModifierData *)md;
hmd->force = 1.0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(hmd, modifier));
MEMCPY_STRUCT_AFTER(hmd, DNA_struct_default_get(HookModifierData), modifier);
hmd->curfalloff = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
hmd->falloff_type = eHook_Falloff_Smooth;
hmd->flag = 0;
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
@ -731,12 +732,10 @@ static void LaplacianDeformModifier_do(
static void initData(ModifierData *md)
{
LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
lmd->anchor_grp_name[0] = '\0';
lmd->total_verts = 0;
lmd->repeat = 1;
lmd->vertexco = NULL;
lmd->cache_system = NULL;
lmd->flag = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(lmd, modifier));
MEMCPY_STRUCT_AFTER(lmd, DNA_struct_default_get(LaplacianDeformModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -497,12 +498,10 @@ static void laplaciansmoothModifier_do(
static void init_data(ModifierData *md)
{
LaplacianSmoothModifierData *smd = (LaplacianSmoothModifierData *)md;
smd->lambda = 0.01f;
smd->lambda_border = 0.01f;
smd->repeat = 1;
smd->flag = MOD_LAPLACIANSMOOTH_X | MOD_LAPLACIANSMOOTH_Y | MOD_LAPLACIANSMOOTH_Z |
MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME | MOD_LAPLACIANSMOOTH_NORMALIZED;
smd->defgrp_name[0] = '\0';
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(LaplacianSmoothModifierData), modifier);
}
static bool is_disabled(const struct Scene *UNUSED(scene),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@ -55,7 +56,10 @@
static void initData(ModifierData *md)
{
LatticeModifierData *lmd = (LatticeModifierData *)md;
lmd->strength = 1.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(lmd, modifier));
MEMCPY_STRUCT_AFTER(lmd, DNA_struct_default_get(LatticeModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_armature_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -68,6 +69,15 @@ using blender::MutableSpan;
using blender::Span;
using blender::Vector;
static void initData(ModifierData *md)
{
MaskModifierData *mmd = (MaskModifierData *)md;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MaskModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
ModifierData *UNUSED(md),
CustomData_MeshMasks *r_cddata_masks)
@ -455,7 +465,7 @@ ModifierTypeInfo modifierType_Mask = {
/* modifyPointCloud */ NULL,
/* modifyVolume */ NULL,
/* initData */ NULL,
/* initData */ initData,
/* requiredDataMask */ requiredDataMask,
/* freeData */ NULL,
/* isDisabled */ isDisabled,

View File

@ -28,6 +28,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -57,16 +58,9 @@ static void initData(ModifierData *md)
{
MeshCacheModifierData *mcmd = (MeshCacheModifierData *)md;
mcmd->flag = 0;
mcmd->type = MOD_MESHCACHE_TYPE_MDD;
mcmd->interp = MOD_MESHCACHE_INTERP_LINEAR;
mcmd->frame_scale = 1.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mcmd, modifier));
mcmd->factor = 1.0f;
/* (Y, Z). Blender default */
mcmd->forward_axis = 1;
mcmd->up_axis = 2;
MEMCPY_STRUCT_AFTER(mcmd, DNA_struct_default_get(MeshCacheModifierData), modifier);
}
static bool dependsOnTime(ModifierData *md)

View File

@ -28,6 +28,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -68,7 +69,9 @@ static void initData(ModifierData *md)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData *)md;
mmd->gridsize = 5;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MeshDeformModifierData), modifier);
}
static void freeData(ModifierData *md)

View File

@ -26,6 +26,7 @@
#include "BLT_translation.h"
#include "DNA_cachefile_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -64,15 +65,9 @@ static void initData(ModifierData *md)
{
MeshSeqCacheModifierData *mcmd = (MeshSeqCacheModifierData *)md;
mcmd->cache_file = NULL;
mcmd->object_path[0] = '\0';
mcmd->read_flag = MOD_MESHSEQ_READ_ALL | MOD_MESHSEQ_INTERPOLATE_VERTICES;
mcmd->velocity_scale = 1.0f;
mcmd->vertex_velocities = NULL;
mcmd->num_vertices = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mcmd, modifier));
mcmd->reader = NULL;
mcmd->reader_object_path[0] = '\0';
MEMCPY_STRUCT_AFTER(mcmd, DNA_struct_default_get(MeshSeqCacheModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)

View File

@ -25,6 +25,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -59,9 +60,9 @@ static void initData(ModifierData *md)
{
MirrorModifierData *mmd = (MirrorModifierData *)md;
mmd->flag |= (MOD_MIR_AXIS_X | MOD_MIR_VGROUP);
mmd->tolerance = 0.001;
mmd->mirror_ob = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MirrorModifierData), modifier);
}
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@ -68,14 +69,9 @@ static void initData(ModifierData *md)
{
MultiresModifierData *mmd = (MultiresModifierData *)md;
mmd->lvl = 0;
mmd->sculptlvl = 0;
mmd->renderlvl = 0;
mmd->totlvl = 0;
mmd->uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS;
mmd->boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL;
mmd->quality = 4;
mmd->flags |= (eMultiresModifierFlag_UseCrease | eMultiresModifierFlag_ControlEdges);
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MultiresModifierData), modifier);
/* Open subdivision panels by default. */
md->ui_expand_flag = (1 << 0) | (1 << 1);

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -646,11 +647,9 @@ static void initData(ModifierData *md)
{
NormalEditModifierData *enmd = (NormalEditModifierData *)md;
enmd->mode = MOD_NORMALEDIT_MODE_RADIAL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(enmd, modifier));
enmd->mix_mode = MOD_NORMALEDIT_MIX_COPY;
enmd->mix_factor = 1.0f;
enmd->mix_limit = M_PI;
MEMCPY_STRUCT_AFTER(enmd, DNA_struct_default_get(NormalEditModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_customdata_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -87,54 +88,17 @@ static void initData(ModifierData *md)
#ifdef WITH_OCEANSIM
OceanModifierData *omd = (OceanModifierData *)md;
/* Render resolution */
omd->resolution = 7;
/* Display resolution for the non-render case */
omd->viewport_resolution = 7;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(omd, modifier));
omd->spatial_size = 50;
omd->wave_alignment = 0.0;
omd->wind_velocity = 30.0;
omd->damp = 0.5;
omd->smallest_wave = 0.01;
omd->wave_direction = 0.0;
omd->depth = 200.0;
omd->wave_scale = 1.0;
omd->chop_amount = 1.0;
omd->foam_coverage = 0.0;
omd->seed = 0;
omd->time = 1.0;
omd->spectrum = MOD_OCEAN_SPECTRUM_PHILLIPS;
omd->sharpen_peak_jonswap = 0.0f;
omd->fetch_jonswap = 120.0f;
omd->size = 1.0;
omd->repeat_x = 1;
omd->repeat_y = 1;
MEMCPY_STRUCT_AFTER(omd, DNA_struct_default_get(OceanModifierData), modifier);
BKE_modifier_path_init(omd->cachepath, sizeof(omd->cachepath), "cache_ocean");
omd->cached = 0;
omd->bakestart = 1;
omd->bakeend = 250;
omd->oceancache = NULL;
omd->foam_fade = 0.98;
omd->foamlayername[0] = '\0'; /* layer name empty by default */
omd->spraylayername[0] = '\0'; /* layer name empty by default */
omd->ocean = BKE_ocean_add();
BKE_ocean_init_from_modifier(omd->ocean, omd, omd->viewport_resolution);
simulate_ocean_modifier(omd);
#else /* WITH_OCEANSIM */
/* unused */
(void)md;
UNUSED_VARS(md);
#endif /* WITH_OCEANSIM */
}

View File

@ -32,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
@ -61,17 +62,9 @@ static void initData(ModifierData *md)
{
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *)md;
pimd->flag = eParticleInstanceFlag_Parents | eParticleInstanceFlag_Unborn |
eParticleInstanceFlag_Alive | eParticleInstanceFlag_Dead;
pimd->psys = 1;
pimd->position = 1.0f;
pimd->axis = 2;
pimd->space = eParticleInstanceSpace_World;
pimd->particle_amount = 1.0f;
pimd->particle_offset = 0.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(pimd, modifier));
STRNCPY(pimd->index_layer_name, "");
STRNCPY(pimd->value_layer_name, "");
MEMCPY_STRUCT_AFTER(pimd, DNA_struct_default_get(ParticleInstanceModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -22,11 +22,13 @@
*/
#include <stddef.h>
#include <string.h>
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_screen_types.h"
@ -54,10 +56,10 @@
static void initData(ModifierData *md)
{
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *)md;
psmd->psys = NULL;
psmd->mesh_final = NULL;
psmd->mesh_original = NULL;
psmd->totdmvert = psmd->totdmedge = psmd->totdmface = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(psmd, modifier));
MEMCPY_STRUCT_AFTER(psmd, DNA_struct_default_get(ParticleSystemModifierData), modifier);
}
static void freeData(ModifierData *md)
{

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -63,14 +64,9 @@ static void initData(ModifierData *md)
{
RemeshModifierData *rmd = (RemeshModifierData *)md;
rmd->scale = 0.9;
rmd->depth = 4;
rmd->hermite_num = 1;
rmd->flag = MOD_REMESH_FLOOD_FILL;
rmd->mode = MOD_REMESH_VOXEL;
rmd->threshold = 1;
rmd->voxel_size = 0.1f;
rmd->adaptivity = 0.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(rmd, modifier));
MEMCPY_STRUCT_AFTER(rmd, DNA_struct_default_get(RemeshModifierData), modifier);
}
#ifdef WITH_MOD_REMESH

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -54,6 +55,15 @@
#include "MOD_modifiertypes.h"
#include "MOD_ui_common.h"
static void initData(ModifierData *md)
{
ScrewModifierData *ltmd = (ScrewModifierData *)md;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(ltmd, modifier));
MEMCPY_STRUCT_AFTER(ltmd, DNA_struct_default_get(ScrewModifierData), modifier);
}
#include "BLI_strict_flags.h"
/* used for gathering edge connectivity */
@ -177,19 +187,6 @@ static Mesh *mesh_remove_doubles_on_axis(Mesh *result,
return result;
}
static void initData(ModifierData *md)
{
ScrewModifierData *ltmd = (ScrewModifierData *)md;
ltmd->ob_axis = NULL;
ltmd->angle = (float)(M_PI * 2.0);
ltmd->axis = 2;
ltmd->flag = MOD_SCREW_SMOOTH_SHADING;
ltmd->steps = 16;
ltmd->render_steps = 16;
ltmd->iter = 1;
ltmd->merge_dist = 0.01f;
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *meshData)
{
Mesh *mesh = meshData;

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@ -56,12 +57,10 @@ static bool dependsOnNormals(ModifierData *md);
static void initData(ModifierData *md)
{
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md;
smd->shrinkType = MOD_SHRINKWRAP_NEAREST_SURFACE;
smd->shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR;
smd->keepDist = 0.0f;
smd->target = NULL;
smd->auxTarget = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(ShrinkwrapModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -378,14 +379,9 @@ static void initData(ModifierData *md)
{
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
smd->mode = MOD_SIMPLEDEFORM_MODE_TWIST;
smd->axis = 0;
smd->deform_axis = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
smd->origin = NULL;
smd->factor = DEG2RADF(45.0f);
smd->limit[0] = 0.0f;
smd->limit[1] = 1.0f;
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SimpleDeformModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -32,6 +32,7 @@
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -64,6 +65,15 @@
using blender::float3;
static void initData(ModifierData *md)
{
SimulationModifierData *smd = (SimulationModifierData *)md;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SimulationModifierData), modifier);
}
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
@ -201,7 +211,7 @@ ModifierTypeInfo modifierType_Simulation = {
/* modifyPointCloud */ modifyPointCloud,
/* modifyVolume */ NULL,
/* initData */ NULL,
/* initData */ initData,
/* requiredDataMask */ NULL,
/* freeData */ freeData,
/* isDisabled */ isDisabled,

View File

@ -63,6 +63,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -1925,12 +1926,12 @@ static void initData(ModifierData *md)
{
SkinModifierData *smd = (SkinModifierData *)md;
/* Enable in editmode by default */
md->mode |= eModifierMode_Editmode;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
smd->branch_smoothing = 0;
smd->flag = 0;
smd->symmetry_axes = MOD_SKIN_SYMM_X;
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SkinModifierData), modifier);
/* Enable in editmode by default. */
md->mode |= eModifierMode_Editmode;
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
@ -55,10 +56,9 @@ static void initData(ModifierData *md)
{
SmoothModifierData *smd = (SmoothModifierData *)md;
smd->fac = 0.5f;
smd->repeat = 1;
smd->flag = MOD_SMOOTH_X | MOD_SMOOTH_Y | MOD_SMOOTH_Z;
smd->defgrp_name[0] = '\0';
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SmoothModifierData), modifier);
}
static bool isDisabled(const struct Scene *UNUSED(scene),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_screen_types.h"
@ -44,10 +45,6 @@
#include "MOD_solidify_util.h"
#ifdef __GNUC__
# pragma GCC diagnostic error "-Wsign-conversion"
#endif
static bool dependsOnNormals(ModifierData *md)
{
const SolidifyModifierData *smd = (SolidifyModifierData *)md;
@ -60,16 +57,16 @@ static bool dependsOnNormals(ModifierData *md)
static void initData(ModifierData *md)
{
SolidifyModifierData *smd = (SolidifyModifierData *)md;
smd->offset = 0.01f;
smd->offset_fac = -1.0f;
smd->flag = MOD_SOLIDIFY_RIM;
smd->mode = MOD_SOLIDIFY_MODE_EXTRUDE;
smd->nonmanifold_offset_mode = MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS;
smd->nonmanifold_boundary_mode = MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE;
smd->merge_tolerance = 0.0001f;
smd->bevel_convex = 0.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SolidifyModifierData), modifier);
}
#ifdef __GNUC__
# pragma GCC diagnostic error "-Wsign-conversion"
#endif
static void requiredDataMask(Object *UNUSED(ob),
ModifierData *md,
CustomData_MeshMasks *r_cddata_masks)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@ -71,12 +72,9 @@ static void initData(ModifierData *md)
{
SubsurfModifierData *smd = (SubsurfModifierData *)md;
smd->levels = 1;
smd->renderLevels = 2;
smd->uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS;
smd->boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL;
smd->quality = 3;
smd->flags |= (eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges);
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SubsurfModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -59,10 +60,9 @@ static void initData(ModifierData *md)
{
SurfaceModifierData *surmd = (SurfaceModifierData *)md;
surmd->bvhtree = NULL;
surmd->mesh = NULL;
surmd->x = NULL;
surmd->v = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(surmd, modifier));
MEMCPY_STRUCT_AFTER(surmd, DNA_struct_default_get(SurfaceModifierData), modifier);
}
static void copyData(const ModifierData *md_src, ModifierData *md_dst, const int flag)

View File

@ -26,6 +26,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -150,11 +151,10 @@ enum {
static void initData(ModifierData *md)
{
SurfaceDeformModifierData *smd = (SurfaceDeformModifierData *)md;
smd->target = NULL;
smd->verts = NULL;
smd->flags = 0;
smd->falloff = 4.0f;
smd->strength = 1.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SurfaceDeformModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -18,12 +18,15 @@
* \ingroup modifiers
*/
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -107,11 +110,12 @@ static void initData(ModifierData *md)
{
TriangulateModifierData *tmd = (TriangulateModifierData *)md;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(tmd, modifier));
MEMCPY_STRUCT_AFTER(tmd, DNA_struct_default_get(TriangulateModifierData), modifier);
/* Enable in editmode by default */
md->mode |= eModifierMode_Editmode;
tmd->quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE;
tmd->ngon_method = MOD_TRIANGULATE_NGON_BEAUTY;
tmd->min_vertices = 4;
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_camera_types.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -61,9 +62,9 @@ static void initData(ModifierData *md)
{
UVProjectModifierData *umd = (UVProjectModifierData *)md;
umd->num_projectors = 1;
umd->aspectx = umd->aspecty = 1.0f;
umd->scalex = umd->scaley = 1.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(umd, modifier));
MEMCPY_STRUCT_AFTER(umd, DNA_struct_default_get(UVProjectModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -63,10 +64,10 @@ static void uv_warp_from_mat4_pair(float uv_dst[2],
static void initData(ModifierData *md)
{
UVWarpModifierData *umd = (UVWarpModifierData *)md;
umd->axis_u = 0;
umd->axis_v = 1;
copy_v2_fl(umd->center, 0.5f);
copy_v2_fl(umd->scale, 1.0f);
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(umd, modifier));
MEMCPY_STRUCT_AFTER(umd, DNA_struct_default_get(UVWarpModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -28,6 +28,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -65,12 +66,11 @@ static void initData(ModifierData *md)
{
WarpModifierData *wmd = (WarpModifierData *)md;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WarpModifierData), modifier);
wmd->curfalloff = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
wmd->texture = NULL;
wmd->strength = 1.0f;
wmd->falloff_radius = 1.0f;
wmd->falloff_type = eWarp_Falloff_Smooth;
wmd->flag = 0;
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)

View File

@ -27,6 +27,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -63,21 +64,9 @@ static void initData(ModifierData *md)
{
WaveModifierData *wmd = (WaveModifierData *)md; // whadya know, moved here from Iraq
wmd->flag |= (MOD_WAVE_X | MOD_WAVE_Y | MOD_WAVE_CYCL | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y |
MOD_WAVE_NORM_Z);
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
wmd->objectcenter = NULL;
wmd->texture = NULL;
wmd->map_object = NULL;
wmd->height = 0.5f;
wmd->width = 1.5f;
wmd->speed = 0.25f;
wmd->narrow = 1.5f;
wmd->lifetime = 0.0f;
wmd->damp = 10.0f;
wmd->falloff = 0.0f;
wmd->texmapping = MOD_DISP_MAP_LOCAL;
wmd->defgrp_name[0] = 0;
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WaveModifierData), modifier);
}
static bool dependsOnTime(ModifierData *UNUSED(md))

View File

@ -26,6 +26,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@ -686,10 +687,10 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
static void initData(ModifierData *md)
{
WeightedNormalModifierData *wnmd = (WeightedNormalModifierData *)md;
wnmd->mode = MOD_WEIGHTEDNORMAL_MODE_FACE;
wnmd->weight = 50;
wnmd->thresh = 1e-2f;
wnmd->flag = 0;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wnmd, modifier));
MEMCPY_STRUCT_AFTER(wnmd, DNA_struct_default_get(WeightedNormalModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -21,6 +21,8 @@
* \ingroup modifiers
*/
#include <string.h>
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
@ -30,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_color_types.h" /* CurveMapping. */
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -67,19 +70,13 @@
static void initData(ModifierData *md)
{
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *)md;
wmd->edit_flags = 0;
wmd->falloff_type = MOD_WVG_MAPPING_NONE;
wmd->default_weight = 0.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeightVGEditModifierData), modifier);
wmd->cmap_curve = BKE_curvemapping_add(1, 0.0, 0.0, 1.0, 1.0);
BKE_curvemapping_init(wmd->cmap_curve);
wmd->rem_threshold = 0.01f;
wmd->add_threshold = 0.01f;
wmd->mask_constant = 1.0f;
wmd->mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
wmd->mask_tex_mapping = MOD_DISP_MAP_LOCAL;
}
static void freeData(ModifierData *md)

View File

@ -28,6 +28,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -131,14 +132,9 @@ static void initData(ModifierData *md)
{
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *)md;
wmd->default_weight_a = 0.0f;
wmd->default_weight_b = 0.0f;
wmd->mix_mode = MOD_WVG_MIX_SET;
wmd->mix_set = MOD_WVG_SET_AND;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
wmd->mask_constant = 1.0f;
wmd->mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
wmd->mask_tex_mapping = MOD_DISP_MAP_LOCAL;
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeightVGMixModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -316,15 +317,9 @@ static void initData(ModifierData *md)
{
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *)md;
wmd->proximity_mode = MOD_WVG_PROXIMITY_OBJECT;
wmd->proximity_flags = MOD_WVG_PROXIMITY_GEOM_VERTS;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
wmd->falloff_type = MOD_WVG_MAPPING_NONE;
wmd->mask_constant = 1.0f;
wmd->mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
wmd->mask_tex_mapping = MOD_DISP_MAP_LOCAL;
wmd->max_dist = 1.0f; /* vert arbitrary distance, but don't use 0 */
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeightVGProximityModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -42,6 +42,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@ -1913,8 +1914,9 @@ static void initData(ModifierData *md)
{
WeldModifierData *wmd = (WeldModifierData *)md;
wmd->merge_dist = 0.001f;
wmd->defgrp_name[0] = '\0';
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeldModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),

View File

@ -24,6 +24,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@ -47,9 +48,10 @@
static void initData(ModifierData *md)
{
WireframeModifierData *wmd = (WireframeModifierData *)md;
wmd->offset = 0.02f;
wmd->flag = MOD_WIREFRAME_REPLACE | MOD_WIREFRAME_OFS_EVEN;
wmd->crease_weight = 1.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WireframeModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),