[Bf-blender-cvs] [b0034576fd3] soc-2019-bevel-profiles: Merge branch 'master' into soc-2019-bevel-profiles
Hans Goudey
noreply at git.blender.org
Thu Aug 1 19:33:21 CEST 2019
Commit: b0034576fd3cc9f2b30bf8956fd130d2b7ac74ac
Author: Hans Goudey
Date: Thu Aug 1 09:33:09 2019 -0400
Branches: soc-2019-bevel-profiles
https://developer.blender.org/rBb0034576fd3cc9f2b30bf8956fd130d2b7ac74ac
Merge branch 'master' into soc-2019-bevel-profiles
===================================================================
===================================================================
diff --cc source/blender/blenloader/intern/versioning_280.c
index 153eb37e6aa,1a79b7c9b5a..181c2a129b0
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -3534,32 -3533,23 +3534,48 @@@ void blo_do_versions_280(FileData *fd,
}
}
+ if (!MAIN_VERSION_ATLEAST(bmain, 281, 1)) {
+ LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
+ for (ModifierData *md = ob->modifiers.first; md; md = md->next) {
+ if (md->type == eModifierType_DataTransfer) {
+ /* Now datatransfer's mix factor is multiplied with weights when any,
+ * instead of being ignored,
+ * we need to take care of that to keep 'old' files compatible. */
+ DataTransferModifierData *dtmd = (DataTransferModifierData *)md;
+ if (dtmd->defgrp_name[0] != '\0') {
+ dtmd->mix_factor = 1.0f;
+ }
+ }
+ }
+ }
+ }
+
{
/* Versioning code until next subversion bump goes here. */
+
+ /* Add custom profile widget to toolsettings for bevel tool */
+ if (!DNA_struct_elem_find(
+ fd->filesdna, "ToolSettings", "ProfileWidget", "prwdgt")) {
+ for (Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) {
+ ToolSettings *ts = scene->toolsettings;
+ if ((ts) && (ts->prwdgt == NULL)) {
+ ts->prwdgt = profilewidget_add(PROF_PRESET_LINE);
+ }
+ }
+ }
+
+ /* Add custom profile widget to bevel modifier */
+ if (!DNA_struct_elem_find(fd->filesdna, "BevelModifier", "ProfileWidget", "prwdgt")) {
+ for (Object *object = bmain->objects.first; object != NULL; object = object->id.next) {
+ for (ModifierData *md = object->modifiers.first; md; md = md->next) {
+ if (md->type == eModifierType_Bevel) {
+ BevelModifierData *bmd = (BevelModifierData *)md;
+ if (!bmd->prwdgt) {
+ bmd->prwdgt = profilewidget_add(PROF_PRESET_LINE);
+ }
+ }
+ }
+ }
+ }
}
}
diff --cc source/blender/blenloader/intern/versioning_defaults.c
index 16cbf06bb1b,14230752d1f..e6e4764959a
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@@ -47,11 -45,8 +45,9 @@@
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_node.h"
- #include "BKE_paint.h"
#include "BKE_screen.h"
- #include "BKE_studiolight.h"
#include "BKE_workspace.h"
+#include "BKE_profile_widget.h"
#include "BLO_readfile.h"
@@@ -360,10 -286,19 +287,24 @@@ static void blo_update_defaults_scene(M
CURVEMAP_SLOPE_POSITIVE);
}
+ /* Correct default startup UV's. */
+ Mesh *me = BLI_findstring(&bmain->meshes, "Cube", offsetof(ID, name) + 2);
+ if (me && (me->totloop == 24) && (me->mloopuv != NULL)) {
+ const float uv_values[24][2] = {
+ {0.625, 0.50}, {0.875, 0.50}, {0.875, 0.75}, {0.625, 0.75}, {0.375, 0.75}, {0.625, 0.75},
+ {0.625, 1.00}, {0.375, 1.00}, {0.375, 0.00}, {0.625, 0.00}, {0.625, 0.25}, {0.375, 0.25},
+ {0.125, 0.50}, {0.375, 0.50}, {0.375, 0.75}, {0.125, 0.75}, {0.375, 0.50}, {0.625, 0.50},
+ {0.625, 0.75}, {0.375, 0.75}, {0.375, 0.25}, {0.625, 0.25}, {0.625, 0.50}, {0.375, 0.50},
+ };
+ for (int i = 0; i < ARRAY_SIZE(uv_values); i++) {
+ copy_v2_v2(me->mloopuv[i].uv, uv_values[i]);
+ }
+ }
++
+ /* Make sure that the profile widget is initialized */
+ if (ts->prwdgt == NULL) {
+ ts->prwdgt = profilewidget_add(PROF_PRESET_LINE);
+ }
}
/**
diff --cc source/blender/bmesh/tools/bmesh_bevel.c
index 3d42501f320,94935f2090b..d78870c7106
--- a/source/blender/bmesh/tools/bmesh_bevel.c
+++ b/source/blender/bmesh/tools/bmesh_bevel.c
@@@ -2390,12 -2295,14 +2390,12 @@@ static void build_boundary_terminal_edg
else {
adjust_bound_vert(e->rightv, co);
}
- /* make artifical extra point along unbeveled edge, and form triangle */
+ /* make artificial extra point along unbeveled edge, and form triangle */
slide_dist(e->next, bv->v, e->offset_l, co);
if (construct) {
- v = add_new_bound_vert(mem_arena, vm, co);
- v->efirst = v->elast = e->next;
- e->next->leftv = e->next->rightv = v;
- /* could use M_POLY too, but tri-fan looks nicer)*/
- vm->mesh_kind = M_TRI_FAN;
+ bndv = add_new_bound_vert(mem_arena, vm, co);
+ bndv->efirst = bndv->elast = e->next;
+ e->next->leftv = e->next->rightv = bndv;
set_bound_vert_seams(bv, bp->mark_seam, bp->mark_sharp);
}
else {
More information about the Bf-blender-cvs
mailing list