[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [61042] trunk/blender/source/blender: Fix [#37266] Skin modifier can't be copied.
Bastien Montagne
montagne29 at wanadoo.fr
Fri Nov 1 09:31:36 CET 2013
Revision: 61042
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=61042
Author: mont29
Date: 2013-11-01 08:31:36 +0000 (Fri, 01 Nov 2013)
Log Message:
-----------
Fix [#37266] Skin modifier can't be copied.
Patch by Martin Felke, many thanks.
When copying that modifier across objects, we also have to ensure that a skin CDLayer is present in dest objects (just as when adding it).
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_modifier.h
trunk/blender/source/blender/blenkernel/intern/object.c
trunk/blender/source/blender/editors/object/object_modifier.c
Modified: trunk/blender/source/blender/blenkernel/BKE_modifier.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_modifier.h 2013-11-01 08:03:25 UTC (rev 61041)
+++ trunk/blender/source/blender/blenkernel/BKE_modifier.h 2013-11-01 08:31:36 UTC (rev 61042)
@@ -357,6 +357,7 @@
bool modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
void modifier_freeTemporaryData(struct ModifierData *md);
bool modifiers_isPreview(struct Object *ob);
+void modifier_skin_customdata_ensure(struct Object *ob);
typedef struct CDMaskLink {
struct CDMaskLink *next;
Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c 2013-11-01 08:03:25 UTC (rev 61041)
+++ trunk/blender/source/blender/blenkernel/intern/object.c 2013-11-01 08:31:36 UTC (rev 61042)
@@ -32,7 +32,7 @@
#include <string.h>
#include <math.h>
-#include <stdio.h>
+#include <stdio.h>
#include "MEM_guardedalloc.h"
@@ -256,6 +256,11 @@
if (!BKE_object_support_modifier_type_check(ob_dst, md->type))
continue;
+
+ if (md->type == eModifierType_Skin) {
+ /* ensure skin-node customdata exists */
+ modifier_skin_customdata_ensure(ob_dst);
+ }
nmd = modifier_new(md->type);
BLI_strncpy(nmd->name, md->name, sizeof(nmd->name));
Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c 2013-11-01 08:03:25 UTC (rev 61041)
+++ trunk/blender/source/blender/editors/object/object_modifier.c 2013-11-01 08:31:36 UTC (rev 61042)
@@ -87,7 +87,6 @@
#include "object_intern.h"
-static void modifier_skin_customdata_ensure(struct Object *ob);
static void modifier_skin_customdata_delete(struct Object *ob);
/******************************** API ****************************/
@@ -1434,7 +1433,7 @@
/************************** skin modifier ***********************/
-static void modifier_skin_customdata_ensure(Object *ob)
+void modifier_skin_customdata_ensure(Object *ob)
{
Mesh *me = ob->data;
BMesh *bm = me->edit_btmesh ? me->edit_btmesh->bm : NULL;
More information about the Bf-blender-cvs
mailing list