[Bf-blender-cvs] [f7ea1ee] mesh-transfer-data: Add 'face smooth' flag transfer, and some minor cleanup.

Bastien Montagne noreply at git.blender.org
Wed Oct 15 13:11:22 CEST 2014


Commit: f7ea1eeb6442db2ed792aa98f4f7f4d4c0b9b239
Author: Bastien Montagne
Date:   Tue Oct 14 16:23:59 2014 +0200
Branches: mesh-transfer-data
https://developer.blender.org/rBf7ea1eeb6442db2ed792aa98f4f7f4d4c0b9b239

Add 'face smooth' flag transfer, and some minor cleanup.

===================================================================

M	source/blender/editors/object/object_transfer_data.c

===================================================================

diff --git a/source/blender/editors/object/object_transfer_data.c b/source/blender/editors/object/object_transfer_data.c
index 53051f9..769a7e1 100644
--- a/source/blender/editors/object/object_transfer_data.c
+++ b/source/blender/editors/object/object_transfer_data.c
@@ -109,6 +109,7 @@ static EnumPropertyItem MDT_layer_items[] = {
 	{CD_FAKE_BWEIGHT, "BEVEL_WEIGHT", 0, "Bevel Weight", "Transfer bevel weights"},
 	{0, "", 0, "Face Data", ""},
 	{CD_FAKE_UV, "UV", 0, "UVs", "Transfer UV layers"},
+	{CD_FAKE_SHARP, "SMOOTH", 0, "Smooth", "Transfer flat/smooth flag"},
 	{0, "", 0, "Face Corner Data", ""},
 	/* TODO */
 	{0, NULL, 0, NULL, NULL}
@@ -188,7 +189,8 @@ static EnumPropertyItem MDT_fromlayers_select_items[] = {
 	{0, NULL, 0, NULL, NULL}
 };
 
-static EnumPropertyItem *mdt_fromlayers_select_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), bool *r_free)
+static EnumPropertyItem *mdt_fromlayers_select_itemf(
+        bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), bool *r_free)
 {
 	EnumPropertyItem *item = NULL;
 	int totitem = 0;
@@ -225,7 +227,8 @@ static EnumPropertyItem MDT_tolayers_select_items[] = {
 	{0, NULL, 0, NULL, NULL}
 };
 
-static EnumPropertyItem *mdt_tolayers_select_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), bool *r_free)
+static EnumPropertyItem *mdt_tolayers_select_itemf(
+        bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), bool *r_free)
 {
 	EnumPropertyItem *item = NULL;
 	int totitem = 0;
@@ -620,6 +623,16 @@ static bool data_transfer_layersmapping_generate(
 			}
 			return true;
 		}
+		else if (data_type == CD_FAKE_SHARP) {
+			const size_t elem_size = sizeof(*((MPoly *)NULL));
+			const size_t data_size = sizeof(((MPoly *)NULL)->flag);
+			const size_t data_offset = offsetof(MPoly, flag);
+			const uint64_t data_flag = ME_SMOOTH;
+			data_transfer_layersmapping_add_item(r_map, data_type, dm_src->getPolyArray(dm_src), me_dst->mpoly,
+			                                     dm_src->getNumPolys(dm_src), me_dst->totpoly,
+			                                     elem_size, data_size, data_offset, data_flag, NULL);
+			return true;
+		}
 		else {
 			return false;
 		}




More information about the Bf-blender-cvs mailing list