[Bf-blender-cvs] [ef90a8e12ca] blender2.8: Cleanup: data transfer: get rid of dual destination mesh.

Bastien Montagne noreply at git.blender.org
Thu Jun 21 15:33:38 CEST 2018


Commit: ef90a8e12cafb50454b96e8f888fc62285539427
Author: Bastien Montagne
Date:   Thu Jun 21 15:17:40 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBef90a8e12cafb50454b96e8f888fc62285539427

Cleanup: data transfer: get rid of dual destination mesh.

Not needed anymore, we only actually need to know wether it's orig mesh
or eval one in a few places...

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

M	source/blender/blenkernel/BKE_data_transfer.h
M	source/blender/blenkernel/intern/data_transfer.c

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

diff --git a/source/blender/blenkernel/BKE_data_transfer.h b/source/blender/blenkernel/BKE_data_transfer.h
index 3186e4ffe06..4acf1dfa8eb 100644
--- a/source/blender/blenkernel/BKE_data_transfer.h
+++ b/source/blender/blenkernel/BKE_data_transfer.h
@@ -145,7 +145,7 @@ bool BKE_object_data_transfer_mesh(
         struct ReportList *reports);
 bool BKE_object_data_transfer_dm(
         struct Depsgraph *depsgraph, struct Scene *scene,
-        struct Object *ob_src, struct Object *ob_dst, struct Mesh *dm_dst,
+        struct Object *ob_src, struct Object *ob_dst, struct Mesh *me_dst,
         const int data_types, bool use_create,
         const int map_vert_mode, const int map_edge_mode, const int map_loop_mode, const int map_poly_mode,
         struct SpaceTransform *space_transform, const bool auto_transform,
diff --git a/source/blender/blenkernel/intern/data_transfer.c b/source/blender/blenkernel/intern/data_transfer.c
index 78838c7f4ed..675344025e2 100644
--- a/source/blender/blenkernel/intern/data_transfer.c
+++ b/source/blender/blenkernel/intern/data_transfer.c
@@ -310,21 +310,21 @@ static void data_transfer_dtdata_type_preprocess(
 }
 
 static void data_transfer_dtdata_type_postprocess(
-        Object *UNUSED(ob_src), Object *UNUSED(ob_dst), Mesh *UNUSED(dm_src), Mesh *dm_dst, Mesh *me_dst,
+        Object *UNUSED(ob_src), Object *UNUSED(ob_dst), Mesh *UNUSED(dm_src), Mesh *me_dst,
         const int dtdata_type, const bool changed)
 {
 	if (dtdata_type == DT_TYPE_LNOR) {
 		/* Bake edited destination loop normals into custom normals again. */
-		MVert *verts_dst = dm_dst ? dm_dst->mvert : me_dst->mvert;
-		const int num_verts_dst = dm_dst ? dm_dst->totvert : me_dst->totvert;
-		MEdge *edges_dst = dm_dst ? dm_dst->medge : me_dst->medge;
-		const int num_edges_dst = dm_dst ? dm_dst->totedge : me_dst->totedge;
-		MPoly *polys_dst = dm_dst ? dm_dst->mpoly : me_dst->mpoly;
-		const int num_polys_dst = dm_dst ? dm_dst->totpoly : me_dst->totpoly;
-		MLoop *loops_dst = dm_dst ? dm_dst->mloop : me_dst->mloop;
-		const int num_loops_dst = dm_dst ? dm_dst->totloop : me_dst->totloop;
-		CustomData *pdata_dst = dm_dst ? &dm_dst->pdata : &me_dst->pdata;
-		CustomData *ldata_dst = dm_dst ? &dm_dst->ldata : &me_dst->ldata;
+		MVert *verts_dst = me_dst->mvert;
+		const int num_verts_dst = me_dst->totvert;
+		MEdge *edges_dst = me_dst->medge;
+		const int num_edges_dst = me_dst->totedge;
+		MPoly *polys_dst = me_dst->mpoly;
+		const int num_polys_dst = me_dst->totpoly;
+		MLoop *loops_dst = me_dst->mloop;
+		const int num_loops_dst = me_dst->totloop;
+		CustomData *pdata_dst = &me_dst->pdata;
+		CustomData *ldata_dst = &me_dst->ldata;
 
 		const float (*poly_nors_dst)[3] = CustomData_get_layer(pdata_dst, CD_NORMAL);
 		float (*loop_nors_dst)[3] = CustomData_get_layer(ldata_dst, CD_NORMAL);
@@ -760,7 +760,7 @@ static bool data_transfer_layersmapping_cdlayers(
 }
 
 static bool data_transfer_layersmapping_generate(
-        ListBase *r_map, Object *ob_src, Object *ob_dst, Mesh *dm_src, Mesh *dm_dst, Mesh *me_dst,
+        ListBase *r_map, Object *ob_src, Object *ob_dst, Mesh *dm_src, Mesh *me_dst,
         const int elem_type, int cddata_type, int mix_mode, float mix_factor, const float *mix_weights,
         const int num_elem_dst, const bool use_create, const bool use_delete, const int fromlayers, const int tolayers,
         SpaceTransform *space_transform)
@@ -773,11 +773,11 @@ static bool data_transfer_layersmapping_generate(
 	if (elem_type == ME_VERT) {
 		if (!(cddata_type & CD_FAKE)) {
 			cd_src = &dm_src->vdata;
-			cd_dst = dm_dst ? &dm_dst->vdata : &me_dst->vdata;
+			cd_dst = &me_dst->vdata;
 
 			if (!data_transfer_layersmapping_cdlayers(r_map, cddata_type, mix_mode, mix_factor, mix_weights,
 			                                          num_elem_dst, use_create, use_delete,
-			                                          cd_src, cd_dst, dm_dst != NULL,
+			                                          cd_src, cd_dst, me_dst != ob_dst->data,
 			                                          fromlayers, tolayers,
 			                                          interp, interp_data))
 			{
@@ -793,23 +793,16 @@ static bool data_transfer_layersmapping_generate(
 			const uint64_t data_flag = 0;
 
 			if (!(dm_src->cd_flag & ME_CDFLAG_VERT_BWEIGHT)) {
-				if (use_delete && !dm_dst) {
+				if (use_delete) {
 					me_dst->cd_flag &= ~ME_CDFLAG_VERT_BWEIGHT;
 				}
 				return true;
 			}
-			if (dm_dst) {
-				dm_dst->cd_flag |= ME_CDFLAG_VERT_BWEIGHT;
-			}
-			else {
-				me_dst->cd_flag |= ME_CDFLAG_VERT_BWEIGHT;
-			}
+			me_dst->cd_flag |= ME_CDFLAG_VERT_BWEIGHT;
 			if (r_map) {
 				data_transfer_layersmapping_add_item(r_map, cddata_type, mix_mode, mix_factor, mix_weights,
-				                                     dm_src->mvert,
-				                                     dm_dst ? dm_dst->mvert : me_dst->mvert,
-				                                     dm_src->totvert,
-				                                     dm_dst ? dm_dst->totvert : me_dst->totvert,
+				                                     dm_src->mvert, me_dst->mvert,
+				                                     dm_src->totvert, me_dst->totvert,
 				                                     elem_size, data_size, data_offset, data_flag,
 				                                     data_transfer_interp_char, interp_data);
 			}
@@ -819,11 +812,11 @@ static bool data_transfer_layersmapping_generate(
 			bool ret;
 
 			cd_src = &dm_src->vdata;
-			cd_dst = dm_dst ? &dm_dst->vdata : &me_dst->vdata;
+			cd_dst = &me_dst->vdata;
 
 			ret = data_transfer_layersmapping_vgroups(r_map, mix_mode, mix_factor, mix_weights,
 			                                          num_elem_dst, use_create, use_delete,
-			                                          ob_src, ob_dst, cd_src, cd_dst, dm_dst != NULL,
+			                                          ob_src, ob_dst, cd_src, cd_dst, me_dst != ob_dst->data,
 			                                          fromlayers, tolayers);
 
 			/* Mesh stores its dvert in a specific pointer too. :( */
@@ -838,11 +831,11 @@ static bool data_transfer_layersmapping_generate(
 	else if (elem_type == ME_EDGE) {
 		if (!(cddata_type & CD_FAKE)) {  /* Unused for edges, currently... */
 			cd_src = &dm_src->edata;
-			cd_dst = dm_dst ? &dm_dst->edata : &me_dst->edata;
+			cd_dst = &me_dst->edata;
 
 			if (!data_transfer_layersmapping_cdlayers(r_map, cddata_type, mix_mode, mix_factor, mix_weights,
 			                                          num_elem_dst, use_create, use_delete,
-			                                          cd_src, cd_dst, dm_dst != NULL,
+			                                          cd_src, cd_dst, me_dst != ob_dst->data,
 			                                          fromlayers, tolayers,
 			                                          interp, interp_data))
 			{
@@ -858,23 +851,16 @@ static bool data_transfer_layersmapping_generate(
 			const uint64_t data_flag = 0;
 
 			if (!(dm_src->cd_flag & ME_CDFLAG_EDGE_CREASE)) {
-				if (use_delete && !dm_dst) {
+				if (use_delete && !me_dst) {
 					me_dst->cd_flag &= ~ME_CDFLAG_EDGE_CREASE;
 				}
 				return true;
 			}
-			if (dm_dst) {
-				dm_dst->cd_flag |= ME_CDFLAG_EDGE_CREASE;
-			}
-			else {
-				me_dst->cd_flag |= ME_CDFLAG_EDGE_CREASE;
-			}
+			me_dst->cd_flag |= ME_CDFLAG_EDGE_CREASE;
 			if (r_map) {
 				data_transfer_layersmapping_add_item(r_map, cddata_type, mix_mode, mix_factor, mix_weights,
-				                                     dm_src->medge,
-				                                     dm_dst ? dm_dst->medge : me_dst->medge,
-				                                     dm_src->totedge,
-				                                     dm_dst ? dm_dst->totedge : me_dst->totedge,
+				                                     dm_src->medge, me_dst->medge,
+				                                     dm_src->totedge, me_dst->totedge,
 				                                     elem_size, data_size, data_offset, data_flag,
 				                                     data_transfer_interp_char, interp_data);
 			}
@@ -887,23 +873,16 @@ static bool data_transfer_layersmapping_generate(
 			const uint64_t data_flag = 0;
 
 			if (!(dm_src->cd_flag & ME_CDFLAG_EDGE_BWEIGHT)) {
-				if (use_delete && !dm_dst) {
+				if (use_delete && !me_dst) {
 					me_dst->cd_flag &= ~ME_CDFLAG_EDGE_BWEIGHT;
 				}
 				return true;
 			}
-			if (dm_dst) {
-				dm_dst->cd_flag |= ME_CDFLAG_EDGE_BWEIGHT;
-			}
-			else {
-				me_dst->cd_flag |= ME_CDFLAG_EDGE_BWEIGHT;
-			}
+			me_dst->cd_flag |= ME_CDFLAG_EDGE_BWEIGHT;
 			if (r_map) {
 				data_transfer_layersmapping_add_item(r_map, cddata_type, mix_mode, mix_factor, mix_weights,
-				                                     dm_src->medge,
-				                                     dm_dst ? dm_dst->medge : me_dst->medge,
-				                                     dm_src->totedge,
-				                                     dm_dst ? dm_dst->totedge : me_dst->totedge,
+				                                     dm_src->medge, me_dst->medge,
+				                                     dm_src->totedge, me_dst->totedge,
 				                                     elem_size, data_size, data_offset, data_flag,
 				                                     data_transfer_interp_char, interp_data);
 			}
@@ -917,10 +896,8 @@ static bool data_transfer_layersmapping_generate(
 
 			data_transfer_layersmapping_add_item(
 			        r_map, cddata_type, mix_mode, mix_factor, mix_weights,
-			        dm_src->medge,
-			        dm_dst ? dm_dst->medge : me_dst->medge,
-			        dm_src->totedge,
-			        dm_dst ? dm_dst->totedge : me_dst->totedge,
+			        dm_src->medge, me_dst->medge,
+			        dm_src->totedge, me_dst->totedge,
 			        elem_size, data_size, data_offset, data_flag, NULL, interp_data);
 			return true;
 		}
@@ -941,11 +918,11 @@ static bool data_transfer_layersmapping_generate(
 
 		if (!(cddata_type & CD_FAKE)) {
 			cd_src = &dm_src->ldata;
-			cd_dst = dm_dst ? &dm_dst->ldata : &me_dst->ldata;
+			cd_dst = &me_dst->ldata;
 
 			if (!data_transfer_layersmapping_cdlayers(
 			        r_map, cddata_type, mix_mode, mix_factor, mix_weights,
-			        num_elem_dst, use_create, use_delete, cd_src, cd_dst, dm_dst != NULL,
+

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list