Fix T55204: proxy object disappearing randomly.

The problem was a missing depsgraph relation between the transforms of
the object and its proxy, it was only there for the pose.
This commit is contained in:
Brecht Van Lommel 2018-05-28 23:18:47 +02:00
parent 9b1a15d8f8
commit 359469a39a
Notes: blender-bot 2023-02-14 09:43:37 +01:00
Referenced by issue #55204, The case of the disappearing prop
2 changed files with 7 additions and 2 deletions

View File

@ -276,11 +276,12 @@ void BKE_object_handle_data_update(
/* quick cache removed */
}
bool BKE_object_eval_proxy_copy(Depsgraph *UNUSED(depsgraph),
bool BKE_object_eval_proxy_copy(Depsgraph *depsgraph,
Object *object)
{
/* Handle proxy copy for target, */
if (ID_IS_LINKED(object) && object->proxy_from) {
DEG_debug_print_eval(depsgraph, __func__, object->id.name, object);
if (object->proxy_from->proxy_group) {
/* Transform proxy into group space. */
Object *obg = object->proxy_from->proxy_group;

View File

@ -549,7 +549,11 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object)
*/
ComponentKey ob_pose_key(&object->id, DEG_NODE_TYPE_EVAL_POSE);
ComponentKey proxy_pose_key(&object->proxy->id, DEG_NODE_TYPE_EVAL_POSE);
add_relation(ob_pose_key, proxy_pose_key, "Proxy");
add_relation(ob_pose_key, proxy_pose_key, "Proxy Pose");
ComponentKey ob_transform_key(&object->id, DEG_NODE_TYPE_TRANSFORM);
ComponentKey proxy_transform_key(&object->proxy->id, DEG_NODE_TYPE_TRANSFORM);
add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform");
}
/* Object dupligroup. */
if (object->dup_group != NULL) {