Mesh Modifiers: refactor copying using a generic function

This commit is contained in:
Campbell Barton 2013-12-22 04:35:52 +11:00
parent 87cc890aef
commit 158b4e61a0
38 changed files with 122 additions and 285 deletions

View File

@ -318,6 +318,7 @@ void modifier_free(struct ModifierData *md);
void modifier_unique_name(struct ListBase *modifiers, struct ModifierData *md);
void modifier_copyData_generic(const struct ModifierData *md, struct ModifierData *target);
void modifier_copyData(struct ModifierData *md, struct ModifierData *target);
bool modifier_dependsOnTime(struct ModifierData *md);
bool modifier_supportsMapping(struct ModifierData *md);

View File

@ -253,6 +253,19 @@ void modifiers_foreachTexLink(Object *ob, TexWalkFunc walk, void *userData)
}
}
/* callback's can use this
* to avoid copying every member.
*/
void modifier_copyData_generic(const ModifierData *md_src, ModifierData *md_dst)
{
ModifierTypeInfo *mti = modifierType_getInfo(md_src->type);
const size_t data_size = sizeof(ModifierData);
const char *md_src_data = ((char *)md_src) + data_size;
char *md_dst_data = ((char *)md_dst) + data_size;
BLI_assert(data_size <= (size_t)mti->structSize);
memcpy(md_dst_data, md_src_data, (size_t)mti->structSize - data_size);
}
void modifier_copyData(ModifierData *md, ModifierData *target)
{
ModifierTypeInfo *mti = modifierType_getInfo(md->type);

View File

@ -646,7 +646,7 @@ typedef struct ParticleSystemModifierData {
struct ParticleSystem *psys;
struct DerivedMesh *dm;
int totdmvert, totdmedge, totdmface;
short flag, rt;
short flag, pad;
} ParticleSystemModifierData;
typedef enum {
@ -670,7 +670,7 @@ typedef struct ParticleInstanceModifierData {
ModifierData modifier;
struct Object *ob;
short psys, flag, axis, rt;
short psys, flag, axis, pad;
float position, random_position;
} ParticleInstanceModifierData;

View File

@ -84,21 +84,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
ArrayModifierData *amd = (ArrayModifierData *) md;
ArrayModifierData *tamd = (ArrayModifierData *) target;
tamd->start_cap = amd->start_cap;
tamd->end_cap = amd->end_cap;
tamd->curve_ob = amd->curve_ob;
tamd->offset_ob = amd->offset_ob;
tamd->count = amd->count;
copy_v3_v3(tamd->offset, amd->offset);
copy_v3_v3(tamd->scale, amd->scale);
tamd->length = amd->length;
tamd->merge_dist = amd->merge_dist;
tamd->fit_type = amd->fit_type;
tamd->offset_type = amd->offset_type;
tamd->flags = amd->flags;
#endif
modifier_copyData_generic(md, target);
}
static void foreachObjectLink(

View File

@ -52,11 +52,11 @@
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
BooleanModifierData *bmd = (BooleanModifierData *) md;
BooleanModifierData *tbmd = (BooleanModifierData *) target;
tbmd->object = bmd->object;
tbmd->operation = bmd->operation;
#endif
modifier_copyData_generic(md, target);
}
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))

View File

@ -62,13 +62,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
BuildModifierData *bmd = (BuildModifierData *) md;
BuildModifierData *tbmd = (BuildModifierData *) target;
tbmd->start = bmd->start;
tbmd->length = bmd->length;
tbmd->randomize = bmd->randomize;
tbmd->seed = bmd->seed;
#endif
modifier_copyData_generic(md, target);
}
static bool dependsOnTime(ModifierData *UNUSED(md))

View File

@ -66,16 +66,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
CastModifierData *cmd = (CastModifierData *) md;
CastModifierData *tcmd = (CastModifierData *) target;
tcmd->fac = cmd->fac;
tcmd->radius = cmd->radius;
tcmd->size = cmd->size;
tcmd->flag = cmd->flag;
tcmd->type = cmd->type;
tcmd->object = cmd->object;
BLI_strncpy(tcmd->defgrp_name, cmd->defgrp_name, sizeof(tcmd->defgrp_name));
#endif
modifier_copyData_generic(md, target);
}
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))

View File

@ -59,12 +59,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
CurveModifierData *cmd = (CurveModifierData *) md;
CurveModifierData *tcmd = (CurveModifierData *) target;
tcmd->defaxis = cmd->defaxis;
tcmd->object = cmd->object;
BLI_strncpy(tcmd->name, cmd->name, sizeof(tcmd->name));
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -70,15 +70,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
DecimateModifierData *dmd = (DecimateModifierData *) md;
DecimateModifierData *tdmd = (DecimateModifierData *) target;
tdmd->percent = dmd->percent;
tdmd->iter = dmd->iter;
tdmd->angle = dmd->angle;
BLI_strncpy(tdmd->defgrp_name, dmd->defgrp_name, sizeof(tdmd->defgrp_name));
tdmd->flag = dmd->flag;
tdmd->mode = dmd->mode;
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -69,17 +69,12 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
#endif
DisplaceModifierData *tdmd = (DisplaceModifierData *) target;
tdmd->texture = dmd->texture;
tdmd->strength = dmd->strength;
tdmd->direction = dmd->direction;
BLI_strncpy(tdmd->defgrp_name, dmd->defgrp_name, sizeof(tdmd->defgrp_name));
tdmd->midlevel = dmd->midlevel;
tdmd->texmapping = dmd->texmapping;
tdmd->map_object = dmd->map_object;
BLI_strncpy(tdmd->uvlayer_name, dmd->uvlayer_name, sizeof(tdmd->uvlayer_name));
modifier_copyData_generic(md, target);
if (tdmd->texture) {
id_us_plus(&tdmd->texture->id);

View File

@ -113,11 +113,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
EdgeSplitModifierData *emd = (EdgeSplitModifierData *) md;
EdgeSplitModifierData *temd = (EdgeSplitModifierData *) target;
temd->split_angle = emd->split_angle;
temd->flags = emd->flags;
#endif
modifier_copyData_generic(md, target);
}
static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), DerivedMesh *dm,

View File

@ -72,13 +72,14 @@ static void freeData(ModifierData *md)
}
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
ExplodeModifierData *emd = (ExplodeModifierData *) md;
#endif
ExplodeModifierData *temd = (ExplodeModifierData *) target;
modifier_copyData_generic(md, target);
temd->facepa = NULL;
temd->flag = emd->flag;
temd->protect = emd->protect;
temd->vgroup = emd->vgroup;
}
static bool dependsOnTime(ModifierData *UNUSED(md))
{

View File

@ -64,15 +64,9 @@ static void copyData(ModifierData *md, ModifierData *target)
HookModifierData *hmd = (HookModifierData *) md;
HookModifierData *thmd = (HookModifierData *) target;
copy_v3_v3(thmd->cent, hmd->cent);
thmd->falloff = hmd->falloff;
thmd->force = hmd->force;
thmd->object = hmd->object;
thmd->totindex = hmd->totindex;
modifier_copyData_generic(md, target);
thmd->indexar = MEM_dupallocN(hmd->indexar);
memcpy(thmd->parentinv, hmd->parentinv, sizeof(hmd->parentinv));
BLI_strncpy(thmd->name, hmd->name, sizeof(thmd->name));
BLI_strncpy(thmd->subtarget, hmd->subtarget, sizeof(thmd->subtarget));
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -797,12 +797,11 @@ static void copyData(ModifierData *md, ModifierData *target)
{
LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
LaplacianDeformModifierData *tlmd = (LaplacianDeformModifierData *)target;
tlmd->total_verts = lmd->total_verts;
tlmd->repeat = lmd->repeat;
BLI_strncpy(tlmd->anchor_grp_name, lmd->anchor_grp_name, sizeof(tlmd->anchor_grp_name));
modifier_copyData_generic(md, target);
tlmd->vertexco = MEM_dupallocN(lmd->vertexco);
tlmd->cache_system = MEM_dupallocN(lmd->cache_system);
tlmd->flag = lmd->flag;
}
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))

View File

@ -642,14 +642,12 @@ static void init_data(ModifierData *md)
static void copy_data(ModifierData *md, ModifierData *target)
{
#if 0
LaplacianSmoothModifierData *smd = (LaplacianSmoothModifierData *) md;
LaplacianSmoothModifierData *tsmd = (LaplacianSmoothModifierData *) target;
#endif
tsmd->lambda = smd->lambda;
tsmd->lambda_border = smd->lambda_border;
tsmd->repeat = smd->repeat;
tsmd->flag = smd->flag;
BLI_strncpy(tsmd->defgrp_name, smd->defgrp_name, sizeof(tsmd->defgrp_name));
modifier_copyData_generic(md, target);
}
static bool is_disabled(ModifierData *md, int UNUSED(useRenderParams))

View File

@ -56,11 +56,12 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
LatticeModifierData *lmd = (LatticeModifierData *) md;
LatticeModifierData *tlmd = (LatticeModifierData *) target;
#endif
tlmd->object = lmd->object;
BLI_strncpy(tlmd->name, lmd->name, sizeof(tlmd->name));
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -57,13 +57,11 @@
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
MaskModifierData *mmd = (MaskModifierData *) md;
MaskModifierData *tmmd = (MaskModifierData *) target;
BLI_strncpy(tmmd->vgroup, mmd->vgroup, sizeof(tmmd->vgroup));
tmmd->flag = mmd->flag;
tmmd->mode = mmd->mode;
tmmd->ob_arm = mmd->ob_arm;
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md))

View File

@ -68,32 +68,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
MeshCacheModifierData *mcmd = (MeshCacheModifierData *)md;
MeshCacheModifierData *tmcmd = (MeshCacheModifierData *)target;
tmcmd->flag = mcmd->flag;
tmcmd->type = mcmd->type;
tmcmd->time_mode = mcmd->time_mode;
tmcmd->play_mode = mcmd->play_mode;
tmcmd->forward_axis = mcmd->forward_axis;
tmcmd->up_axis = mcmd->up_axis;
tmcmd->flip_axis = mcmd->flip_axis;
tmcmd->interp = mcmd->interp;
tmcmd->frame_start = mcmd->frame_start;
tmcmd->frame_scale = mcmd->frame_scale;
tmcmd->factor = mcmd->factor;
tmcmd->deform_mode = mcmd->deform_mode;
tmcmd->eval_frame = mcmd->eval_frame;
tmcmd->eval_time = mcmd->eval_time;
tmcmd->eval_factor = mcmd->eval_factor;
BLI_strncpy(tmcmd->filepath, mcmd->filepath, sizeof(tmcmd->filepath));
#endif
modifier_copyData_generic(md, target);
}
static bool dependsOnTime(ModifierData *md)

View File

@ -59,12 +59,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
MirrorModifierData *mmd = (MirrorModifierData *) md;
MirrorModifierData *tmmd = (MirrorModifierData *) target;
tmmd->flag = mmd->flag;
tmmd->tolerance = mmd->tolerance;
tmmd->mirror_ob = mmd->mirror_ob;
#endif
modifier_copyData_generic(md, target);
}
static void foreachObjectLink(ModifierData *md, Object *ob,

View File

@ -61,15 +61,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
MultiresModifierData *mmd = (MultiresModifierData *) md;
MultiresModifierData *tmmd = (MultiresModifierData *) target;
tmmd->lvl = mmd->lvl;
tmmd->sculptlvl = mmd->sculptlvl;
tmmd->renderlvl = mmd->renderlvl;
tmmd->totlvl = mmd->totlvl;
tmmd->simple = mmd->simple;
tmmd->flags = mmd->flags;
#endif
modifier_copyData_generic(md, target);
}
static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,

View File

@ -66,15 +66,11 @@ static void initData(ModifierData *md)
}
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
ParticleInstanceModifierData *tpimd = (ParticleInstanceModifierData *) target;
tpimd->ob = pimd->ob;
tpimd->psys = pimd->psys;
tpimd->flag = pimd->flag;
tpimd->axis = pimd->axis;
tpimd->position = pimd->position;
tpimd->random_position = pimd->random_position;
#endif
modifier_copyData_generic(md, target);
}
static bool isDisabled(ModifierData *md, int useRenderParams)

View File

@ -73,15 +73,15 @@ static void freeData(ModifierData *md)
}
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md;
#endif
ParticleSystemModifierData *tpsmd = (ParticleSystemModifierData *) target;
modifier_copyData_generic(md, target);
tpsmd->dm = NULL;
tpsmd->totdmvert = tpsmd->totdmedge = tpsmd->totdmface = 0;
//tpsmd->facepa = 0;
tpsmd->flag = psmd->flag;
/* need to keep this to recognise a bit later in BKE_object_copy */
tpsmd->psys = psmd->psys;
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -62,15 +62,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
RemeshModifierData *rmd = (RemeshModifierData *) md;
RemeshModifierData *trmd = (RemeshModifierData *) target;
trmd->threshold = rmd->threshold;
trmd->scale = rmd->scale;
trmd->hermite_num = rmd->hermite_num;
trmd->depth = rmd->depth;
trmd->flag = rmd->flag;
trmd->mode = rmd->mode;
#endif
modifier_copyData_generic(md, target);
}
#ifdef WITH_MOD_REMESH

View File

@ -124,17 +124,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
ScrewModifierData *sltmd = (ScrewModifierData *) md;
ScrewModifierData *tltmd = (ScrewModifierData *) target;
tltmd->ob_axis = sltmd->ob_axis;
tltmd->angle = sltmd->angle;
tltmd->axis = sltmd->axis;
tltmd->flag = sltmd->flag;
tltmd->steps = sltmd->steps;
tltmd->render_steps = sltmd->render_steps;
tltmd->screw_ofs = sltmd->screw_ofs;
tltmd->iter = sltmd->iter;
#endif
modifier_copyData_generic(md, target);
}
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,

View File

@ -64,19 +64,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md;
ShrinkwrapModifierData *tsmd = (ShrinkwrapModifierData *)target;
tsmd->target = smd->target;
tsmd->auxTarget = smd->auxTarget;
BLI_strncpy(tsmd->vgroup_name, smd->vgroup_name, sizeof(tsmd->vgroup_name));
tsmd->keepDist = smd->keepDist;
tsmd->shrinkType = smd->shrinkType;
tsmd->shrinkOpts = smd->shrinkOpts;
tsmd->projAxis = smd->projAxis;
tsmd->subsurfLevels = smd->subsurfLevels;
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -255,15 +255,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
SimpleDeformModifierData *tsmd = (SimpleDeformModifierData *)target;
tsmd->mode = smd->mode;
tsmd->axis = smd->axis;
tsmd->origin = smd->origin;
tsmd->factor = smd->factor;
copy_v2_v2(tsmd->limit, smd->limit);
BLI_strncpy(tsmd->vgroup_name, smd->vgroup_name, sizeof(tsmd->vgroup_name));
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -1835,10 +1835,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
SkinModifierData *smd = (SkinModifierData *) md;
SkinModifierData *tsmd = (SkinModifierData *) target;
*tsmd = *smd;
#endif
modifier_copyData_generic(md, target);
}
static DerivedMesh *applyModifier(ModifierData *md,

View File

@ -61,13 +61,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
SmoothModifierData *smd = (SmoothModifierData *) md;
SmoothModifierData *tsmd = (SmoothModifierData *) target;
tsmd->fac = smd->fac;
tsmd->repeat = smd->repeat;
tsmd->flag = smd->flag;
BLI_strncpy(tsmd->defgrp_name, smd->defgrp_name, sizeof(tsmd->defgrp_name));
#endif
modifier_copyData_generic(md, target);
}
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))

View File

@ -176,19 +176,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
SolidifyModifierData *smd = (SolidifyModifierData *) md;
SolidifyModifierData *tsmd = (SolidifyModifierData *) target;
tsmd->offset = smd->offset;
tsmd->offset_fac = smd->offset_fac;
tsmd->offset_fac_vg = smd->offset_fac_vg;
tsmd->offset_clamp = smd->offset_clamp;
tsmd->crease_inner = smd->crease_inner;
tsmd->crease_outer = smd->crease_outer;
tsmd->crease_rim = smd->crease_rim;
tsmd->flag = smd->flag;
tsmd->mat_ofs = smd->mat_ofs;
tsmd->mat_ofs_rim = smd->mat_ofs_rim;
BLI_strncpy(tsmd->defgrp_name, smd->defgrp_name, sizeof(tsmd->defgrp_name));
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -60,13 +60,15 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
SubsurfModifierData *smd = (SubsurfModifierData *) md;
#endif
SubsurfModifierData *tsmd = (SubsurfModifierData *) target;
tsmd->flags = smd->flags;
tsmd->levels = smd->levels;
tsmd->renderLevels = smd->renderLevels;
tsmd->subdivType = smd->subdivType;
modifier_copyData_generic(md, target);
tsmd->emCache = tsmd->mCache = NULL;
}
static void freeData(ModifierData *md)

View File

@ -76,10 +76,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
TriangulateModifierData *smd = (TriangulateModifierData *) md;
TriangulateModifierData *tsmd = (TriangulateModifierData *) target;
*tsmd = *smd;
#endif
modifier_copyData_generic(md, target);
}
static DerivedMesh *applyModifier(ModifierData *md,

View File

@ -59,11 +59,7 @@
static void initData(ModifierData *md)
{
UVProjectModifierData *umd = (UVProjectModifierData *) md;
int i;
for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
umd->projectors[i] = NULL;
umd->image = NULL;
umd->flags = 0;
umd->num_projectors = 1;
umd->aspectx = umd->aspecty = 1.0f;
@ -72,20 +68,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
UVProjectModifierData *umd = (UVProjectModifierData *) md;
UVProjectModifierData *tumd = (UVProjectModifierData *) target;
int i;
for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
tumd->projectors[i] = umd->projectors[i];
tumd->image = umd->image;
tumd->flags = umd->flags;
tumd->num_projectors = umd->num_projectors;
tumd->aspectx = umd->aspectx;
tumd->aspecty = umd->aspecty;
tumd->scalex = umd->scalex;
tumd->scaley = umd->scaley;
BLI_strncpy(tumd->uvlayer_name, umd->uvlayer_name, sizeof(umd->uvlayer_name));
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md))

View File

@ -68,18 +68,11 @@ static void initData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
UVWarpModifierData *umd = (UVWarpModifierData *)md;
UVWarpModifierData *tumd = (UVWarpModifierData *)target;
tumd->axis_u = umd->axis_u;
tumd->axis_v = umd->axis_v;
copy_v2_v2(tumd->center, umd->center);
tumd->object_src = umd->object_src;
BLI_strncpy(tumd->bone_src, umd->bone_src, sizeof(tumd->bone_src));
tumd->object_dst = umd->object_dst;
BLI_strncpy(tumd->bone_dst, umd->bone_dst, sizeof(tumd->bone_dst));
BLI_strncpy(tumd->vgroup_name, umd->vgroup_name, sizeof(tumd->vgroup_name));
BLI_strncpy(tumd->uvlayer_name, umd->uvlayer_name, sizeof(umd->uvlayer_name));
#endif
modifier_copyData_generic(md, target);
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -66,20 +66,9 @@ static void copyData(ModifierData *md, ModifierData *target)
WarpModifierData *wmd = (WarpModifierData *) md;
WarpModifierData *twmd = (WarpModifierData *) target;
twmd->object_from = wmd->object_from;
twmd->object_to = wmd->object_to;
modifier_copyData_generic(md, target);
twmd->strength = wmd->strength;
twmd->falloff_radius = wmd->falloff_radius;
twmd->falloff_type = wmd->falloff_type;
BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
twmd->curfalloff = curvemapping_copy(wmd->curfalloff);
/* map info */
twmd->texture = wmd->texture;
twmd->map_object = wmd->map_object;
BLI_strncpy(twmd->uvlayer_name, wmd->uvlayer_name, sizeof(twmd->uvlayer_name));
twmd->texmapping = wmd->texmapping;
}
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)

View File

@ -89,25 +89,12 @@ static void freeData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
WaveModifierData *wmd = (WaveModifierData *) md;
#endif
WaveModifierData *twmd = (WaveModifierData *) target;
twmd->damp = wmd->damp;
twmd->flag = wmd->flag;
twmd->height = wmd->height;
twmd->lifetime = wmd->lifetime;
twmd->narrow = wmd->narrow;
twmd->speed = wmd->speed;
twmd->startx = wmd->startx;
twmd->starty = wmd->starty;
twmd->timeoffs = wmd->timeoffs;
twmd->width = wmd->width;
twmd->falloff = wmd->falloff;
twmd->objectcenter = wmd->objectcenter;
twmd->texture = wmd->texture;
twmd->map_object = wmd->map_object;
twmd->texmapping = wmd->texmapping;
BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
modifier_copyData_generic(md, target);
if (twmd->texture) {
id_us_plus(&twmd->texture->id);

View File

@ -89,24 +89,9 @@ static void copyData(ModifierData *md, ModifierData *target)
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
WeightVGEditModifierData *twmd = (WeightVGEditModifierData *) target;
BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
modifier_copyData_generic(md, target);
twmd->edit_flags = wmd->edit_flags;
twmd->falloff_type = wmd->falloff_type;
twmd->default_weight = wmd->default_weight;
twmd->cmap_curve = curvemapping_copy(wmd->cmap_curve);
twmd->add_threshold = wmd->add_threshold;
twmd->rem_threshold = wmd->rem_threshold;
twmd->mask_constant = wmd->mask_constant;
BLI_strncpy(twmd->mask_defgrp_name, wmd->mask_defgrp_name, sizeof(twmd->mask_defgrp_name));
twmd->mask_texture = wmd->mask_texture;
twmd->mask_tex_use_channel = wmd->mask_tex_use_channel;
twmd->mask_tex_mapping = wmd->mask_tex_mapping;
twmd->mask_tex_map_obj = wmd->mask_tex_map_obj;
BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name));
twmd->cmap_curve = curvemapping_copy(wmd->cmap_curve);
if (twmd->mask_texture) {
id_us_plus(&twmd->mask_texture->id);

View File

@ -134,23 +134,12 @@ static void freeData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
#endif
WeightVGMixModifierData *twmd = (WeightVGMixModifierData *) target;
BLI_strncpy(twmd->defgrp_name_a, wmd->defgrp_name_a, sizeof(twmd->defgrp_name_a));
BLI_strncpy(twmd->defgrp_name_b, wmd->defgrp_name_b, sizeof(twmd->defgrp_name_b));
twmd->default_weight_a = wmd->default_weight_a;
twmd->default_weight_b = wmd->default_weight_b;
twmd->mix_mode = wmd->mix_mode;
twmd->mix_set = wmd->mix_set;
twmd->mask_constant = wmd->mask_constant;
BLI_strncpy(twmd->mask_defgrp_name, wmd->mask_defgrp_name, sizeof(twmd->mask_defgrp_name));
twmd->mask_texture = wmd->mask_texture;
twmd->mask_tex_use_channel = wmd->mask_tex_use_channel;
twmd->mask_tex_mapping = wmd->mask_tex_mapping;
twmd->mask_tex_map_obj = wmd->mask_tex_map_obj;
BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name));
modifier_copyData_generic(md, target);
if (twmd->mask_texture) {
id_us_plus(&twmd->mask_texture->id);

View File

@ -254,25 +254,12 @@ static void freeData(ModifierData *md)
static void copyData(ModifierData *md, ModifierData *target)
{
#if 0
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
#endif
WeightVGProximityModifierData *twmd = (WeightVGProximityModifierData *) target;
BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
twmd->proximity_mode = wmd->proximity_mode;
twmd->proximity_flags = wmd->proximity_flags;
twmd->proximity_ob_target = wmd->proximity_ob_target;
twmd->falloff_type = wmd->falloff_type;
twmd->mask_constant = wmd->mask_constant;
BLI_strncpy(twmd->mask_defgrp_name, wmd->mask_defgrp_name, sizeof(twmd->mask_defgrp_name));
twmd->mask_texture = wmd->mask_texture;
twmd->mask_tex_use_channel = wmd->mask_tex_use_channel;
twmd->mask_tex_mapping = wmd->mask_tex_mapping;
twmd->mask_tex_map_obj = wmd->mask_tex_map_obj;
BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name));
twmd->min_dist = wmd->min_dist;
twmd->max_dist = wmd->max_dist;
modifier_copyData_generic(md, target);
if (twmd->mask_texture) {
id_us_plus(&twmd->mask_texture->id);