[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