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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to