static void copyData(ModifierData *md, ModifierData *target) { WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md; WeightVGEditModifierData *twmd = (WeightVGEditModifierData *) target; modifier_copyData_generic(md, target); twmd->cmap_curve = curvemapping_copy(wmd->cmap_curve); if (twmd->mask_texture) { id_us_plus(&twmd->mask_texture->id); } }
PointDensity *BKE_texture_pointdensity_copy(const PointDensity *pd, const int UNUSED(flag)) { PointDensity *pdn; pdn = MEM_dupallocN(pd); pdn->point_tree = NULL; pdn->point_data = NULL; if (pdn->coba) { pdn->coba = MEM_dupallocN(pdn->coba); } pdn->falloff_curve = curvemapping_copy(pdn->falloff_curve); /* can be NULL */ return pdn; }
static void copyData(ModifierData *md, ModifierData *target) { WarpModifierData *wmd = (WarpModifierData *) md; WarpModifierData *twmd = (WarpModifierData *) target; if (twmd->curfalloff != NULL) { curvemapping_free(twmd->curfalloff); } modifier_copyData_generic(md, target); twmd->curfalloff = curvemapping_copy(wmd->curfalloff); }
void BKE_color_managed_view_settings_copy(ColorManagedViewSettings *new_settings, const ColorManagedViewSettings *settings) { BLI_strncpy(new_settings->look, settings->look, sizeof(new_settings->look)); BLI_strncpy(new_settings->view_transform, settings->view_transform, sizeof(new_settings->view_transform)); new_settings->flag = settings->flag; new_settings->exposure = settings->exposure; new_settings->gamma = settings->gamma; if (settings->curve_mapping) new_settings->curve_mapping = curvemapping_copy(settings->curve_mapping); else new_settings->curve_mapping = NULL; }
/** * Only copy internal data of Light ID from source * to already allocated/initialized destination. * You probably never want to use that directly, * use #BKE_id_copy or #BKE_id_copy_ex for typical needs. * * WARNING! This function will not handle ID user count! * * \param flag: Copying options (see BKE_library.h's LIB_ID_COPY_... flags for more). */ void BKE_light_copy_data(Main *bmain, Light *la_dst, const Light *la_src, const int flag) { la_dst->curfalloff = curvemapping_copy(la_src->curfalloff); if (la_src->nodetree) { /* Note: nodetree is *not* in bmain, however this specific case is handled at lower level * (see BKE_libblock_copy_ex()). */ BKE_id_copy_ex(bmain, (ID *)la_src->nodetree, (ID **)&la_dst->nodetree, flag); } if ((flag & LIB_ID_COPY_NO_PREVIEW) == 0) { BKE_previewimg_id_copy(&la_dst->id, &la_src->id); } else { la_dst->preview = NULL; } }
/** * Only copy internal data of Brush ID from source to already allocated/initialized destination. * You probably nerver want to use that directly, use id_copy or BKE_id_copy_ex for typical needs. * * WARNING! This function will not handle ID user count! * * \param flag Copying options (see BKE_library.h's LIB_ID_COPY_... flags for more). */ void BKE_brush_copy_data(Main *UNUSED(bmain), Brush *brush_dst, const Brush *brush_src, const int flag) { if (brush_src->icon_imbuf) { brush_dst->icon_imbuf = IMB_dupImBuf(brush_src->icon_imbuf); } if ((flag & LIB_ID_COPY_NO_PREVIEW) == 0) { BKE_previewimg_id_copy(&brush_dst->id, &brush_src->id); } else { brush_dst->preview = NULL; } brush_dst->curve = curvemapping_copy(brush_src->curve); /* enable fake user by default */ id_fake_user_set(&brush_dst->id); }
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; 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; }
Brush *copy_brush(Brush *brush) { Brush *brushn; brushn= copy_libblock(&brush->id); if (brush->mtex.tex) id_us_plus((ID*)brush->mtex.tex); if (brush->icon_imbuf) brushn->icon_imbuf= IMB_dupImBuf(brush->icon_imbuf); brushn->preview = NULL; brushn->curve= curvemapping_copy(brush->curve); /* enable fake user by default */ if (!(brushn->id.flag & LIB_FAKEUSER)) { brushn->id.flag |= LIB_FAKEUSER; brushn->id.us++; } return brushn; }
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)); 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)); }
void node_copy_curves(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node) { dest_node->storage = curvemapping_copy(src_node->storage); }
LineStyleModifier *BKE_copy_linestyle_thickness_modifier(FreestyleLineStyle *linestyle, LineStyleModifier *m) { LineStyleModifier *new_m; new_m = alloc_thickness_modifier(m->type); if (!new_m) return NULL; new_m->influence = m->influence; new_m->flags = m->flags; new_m->blend = m->blend; switch (m->type) { case LS_MODIFIER_ALONG_STROKE: { LineStyleThicknessModifier_AlongStroke *p = (LineStyleThicknessModifier_AlongStroke *)m; LineStyleThicknessModifier_AlongStroke *q = (LineStyleThicknessModifier_AlongStroke *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_DISTANCE_FROM_CAMERA: { LineStyleThicknessModifier_DistanceFromCamera *p = (LineStyleThicknessModifier_DistanceFromCamera *)m; LineStyleThicknessModifier_DistanceFromCamera *q = (LineStyleThicknessModifier_DistanceFromCamera *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->range_min = p->range_min; q->range_max = p->range_max; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_DISTANCE_FROM_OBJECT: { LineStyleThicknessModifier_DistanceFromObject *p = (LineStyleThicknessModifier_DistanceFromObject *)m; LineStyleThicknessModifier_DistanceFromObject *q = (LineStyleThicknessModifier_DistanceFromObject *)new_m; if (p->target) p->target->id.us++; q->target = p->target; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->range_min = p->range_min; q->range_max = p->range_max; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_MATERIAL: { LineStyleThicknessModifier_Material *p = (LineStyleThicknessModifier_Material *)m; LineStyleThicknessModifier_Material *q = (LineStyleThicknessModifier_Material *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->mat_attr = p->mat_attr; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_CALLIGRAPHY: { LineStyleThicknessModifier_Calligraphy *p = (LineStyleThicknessModifier_Calligraphy *)m; LineStyleThicknessModifier_Calligraphy *q = (LineStyleThicknessModifier_Calligraphy *)new_m; q->min_thickness = p->min_thickness; q->max_thickness = p->max_thickness; q->orientation = p->orientation; break; } default: return NULL; /* unknown modifier type */ } add_to_modifier_list(&linestyle->thickness_modifiers, new_m); return new_m; }
void node_copy_curves(bNode *orig_node, bNode *new_node) { new_node->storage= curvemapping_copy(orig_node->storage); }
LineStyleModifier *BKE_linestyle_thickness_modifier_copy(FreestyleLineStyle *linestyle, LineStyleModifier *m) { LineStyleModifier *new_m; new_m = alloc_thickness_modifier(m->name, m->type); if (!new_m) return NULL; new_m->influence = m->influence; new_m->flags = m->flags; new_m->blend = m->blend; switch (m->type) { case LS_MODIFIER_ALONG_STROKE: { LineStyleThicknessModifier_AlongStroke *p = (LineStyleThicknessModifier_AlongStroke *)m; LineStyleThicknessModifier_AlongStroke *q = (LineStyleThicknessModifier_AlongStroke *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_DISTANCE_FROM_CAMERA: { LineStyleThicknessModifier_DistanceFromCamera *p = (LineStyleThicknessModifier_DistanceFromCamera *)m; LineStyleThicknessModifier_DistanceFromCamera *q = (LineStyleThicknessModifier_DistanceFromCamera *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->range_min = p->range_min; q->range_max = p->range_max; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_DISTANCE_FROM_OBJECT: { LineStyleThicknessModifier_DistanceFromObject *p = (LineStyleThicknessModifier_DistanceFromObject *)m; LineStyleThicknessModifier_DistanceFromObject *q = (LineStyleThicknessModifier_DistanceFromObject *)new_m; if (p->target) id_us_plus(&p->target->id); q->target = p->target; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->range_min = p->range_min; q->range_max = p->range_max; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_MATERIAL: { LineStyleThicknessModifier_Material *p = (LineStyleThicknessModifier_Material *)m; LineStyleThicknessModifier_Material *q = (LineStyleThicknessModifier_Material *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->mat_attr = p->mat_attr; q->value_min = p->value_min; q->value_max = p->value_max; break; } case LS_MODIFIER_CALLIGRAPHY: { LineStyleThicknessModifier_Calligraphy *p = (LineStyleThicknessModifier_Calligraphy *)m; LineStyleThicknessModifier_Calligraphy *q = (LineStyleThicknessModifier_Calligraphy *)new_m; q->min_thickness = p->min_thickness; q->max_thickness = p->max_thickness; q->orientation = p->orientation; break; } case LS_MODIFIER_TANGENT: { LineStyleThicknessModifier_Tangent *p = (LineStyleThicknessModifier_Tangent *)m; LineStyleThicknessModifier_Tangent *q = (LineStyleThicknessModifier_Tangent *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->min_thickness = p->min_thickness; q->max_thickness = p->max_thickness; break; } case LS_MODIFIER_NOISE: { LineStyleThicknessModifier_Noise *p = (LineStyleThicknessModifier_Noise *)m; LineStyleThicknessModifier_Noise *q = (LineStyleThicknessModifier_Noise *)new_m; q->amplitude = p->amplitude; q->period = p->period; q->seed = p->seed; q->flags = p->flags; break; } case LS_MODIFIER_CURVATURE_3D: { LineStyleThicknessModifier_Curvature_3D *p = (LineStyleThicknessModifier_Curvature_3D *)m; LineStyleThicknessModifier_Curvature_3D *q = (LineStyleThicknessModifier_Curvature_3D *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->min_curvature = p->min_curvature; q->max_curvature = p->max_curvature; q->min_thickness = p->min_thickness; q->max_thickness = p->max_thickness; break; } case LS_MODIFIER_CREASE_ANGLE: { LineStyleThicknessModifier_CreaseAngle *p = (LineStyleThicknessModifier_CreaseAngle *)m; LineStyleThicknessModifier_CreaseAngle *q = (LineStyleThicknessModifier_CreaseAngle *)new_m; q->curve = curvemapping_copy(p->curve); q->flags = p->flags; q->min_angle = p->min_angle; q->max_angle = p->max_angle; q->min_thickness = p->min_thickness; q->max_thickness = p->max_thickness; break; } default: return NULL; /* unknown modifier type */ } add_to_modifier_list(&linestyle->thickness_modifiers, new_m); return new_m; }