[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