Commit: 86079ea033d635ed272dce33e698b8f422b26e3d Author: Gaia Clary Date: Mon Apr 8 19:09:34 2019 +0200 Branches: collada https://developer.blender.org/rB86079ea033d635ed272dce33e698b8f422b26e3d
reefactor: replace own function for parenting by a call to ED_object_parent_set() =================================================================== M source/blender/collada/collada_utils.cpp =================================================================== diff --git a/source/blender/collada/collada_utils.cpp b/source/blender/collada/collada_utils.cpp index 57394a90831..c39005a5040 100644 --- a/source/blender/collada/collada_utils.cpp +++ b/source/blender/collada/collada_utils.cpp @@ -126,43 +126,19 @@ bool bc_validateConstraints(bConstraint *con) return true; } -// a shortened version of parent_set_exec() -// if is_parent_space is true then ob->obmat will be multiplied by par->obmat before parenting bool bc_set_parent(Object *ob, Object *par, bContext *C, bool is_parent_space) { - Object workob; - Depsgraph *depsgraph = CTX_data_depsgraph(C); - Scene *sce = CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); + int partype = PAR_OBJECT; + const bool xmirror = false; + const bool keep_transform = false; - if (!par || bc_test_parent_loop(par, ob)) - return false; - - ob->parent = par; - ob->partype = PAROBJECT; - - ob->parsubstr[0] = 0; - - if (is_parent_space) { - float mat[4][4]; - // calc par->obmat - BKE_object_where_is_calc(depsgraph, sce, par); - - // move child obmat into world space - mul_m4_m4m4(mat, par->obmat, ob->obmat); - copy_m4_m4(ob->obmat, mat); + if (par && is_parent_space) { + mul_m4_m4m4(ob->obmat, par->obmat, ob->obmat); } - // apply child obmat (i.e. decompose it into rot/loc/size) - BKE_object_apply_mat4(ob, ob->obmat, 0, 0); - - // compute parentinv - BKE_object_workob_calc_parent(depsgraph, sce, ob, &workob); - invert_m4_m4(ob->parentinv, workob.obmat); - - DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY); - DEG_id_tag_update(&par->id, ID_RECALC_TRANSFORM); - - return true; + bool ok = ED_object_parent_set(NULL, C, scene, ob, par, partype, xmirror, keep_transform, NULL); + return ok; } std::vector<bAction *> bc_getSceneActions(const bContext *C, Object *ob, bool all_actions) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs