Fix #109928: issues adding rigid bodies via just the world collection #109961
|
@ -93,7 +93,9 @@ struct RigidBodyCon *BKE_rigidbody_create_constraint(struct Scene *scene,
|
|||
/**
|
||||
* Ensure newly set collections' objects all have required data.
|
||||
*/
|
||||
void BKE_rigidbody_objects_collection_validate(struct Scene *scene, struct RigidBodyWorld *rbw);
|
||||
void BKE_rigidbody_objects_collection_validate(struct Main *bmain,
|
||||
struct Scene *scene,
|
||||
struct RigidBodyWorld *rbw);
|
||||
void BKE_rigidbody_constraints_collection_validate(struct Scene *scene,
|
||||
struct RigidBodyWorld *rbw);
|
||||
|
||||
|
|
|
@ -1339,7 +1339,7 @@ RigidBodyCon *BKE_rigidbody_create_constraint(Scene *scene, Object *ob, short ty
|
|||
return rbc;
|
||||
}
|
||||
|
||||
void BKE_rigidbody_objects_collection_validate(Scene *scene, RigidBodyWorld *rbw)
|
||||
void BKE_rigidbody_objects_collection_validate(Main *bmain, Scene *scene, RigidBodyWorld *rbw)
|
||||
{
|
||||
if (rbw->group != NULL) {
|
||||
FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (rbw->group, object) {
|
||||
|
@ -1347,8 +1347,10 @@ void BKE_rigidbody_objects_collection_validate(Scene *scene, RigidBodyWorld *rbw
|
|||
continue;
|
||||
}
|
||||
object->rigidbody_object = BKE_rigidbody_create_object(scene, object, RBO_TYPE_ACTIVE);
|
||||
DEG_id_tag_update(&object->id, ID_RECALC_TRANSFORM);
|
||||
}
|
||||
FOREACH_COLLECTION_OBJECT_RECURSIVE_END;
|
||||
DEG_relations_tag_update(bmain);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2344,7 +2346,7 @@ void BKE_rigidbody_cache_reset(RigidBodyWorld *rbw) {}
|
|||
void BKE_rigidbody_rebuild_world(Depsgraph *depsgraph, Scene *scene, float ctime) {}
|
||||
void BKE_rigidbody_do_simulation(Depsgraph *depsgraph, Scene *scene, float ctime) {}
|
||||
void BKE_rigidbody_objects_collection_validate(Scene *scene, RigidBodyWorld *rbw) {}
|
||||
void BKE_rigidbody_constraints_collection_validate(Scene *scene, RigidBodyWorld *rbw) {}
|
||||
void BKE_rigidbody_constraints_collection_validate(Main *bmain, Scene *scene, RigidBodyWorld *rbw) {}
|
||||
void BKE_rigidbody_main_collection_object_add(Main *bmain, Collection *collection, Object *object)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -2742,7 +2742,7 @@ void do_versions_after_linking_280(FileData *fd, Main *bmain)
|
|||
continue;
|
||||
}
|
||||
|
||||
BKE_rigidbody_objects_collection_validate(scene, rbw);
|
||||
BKE_rigidbody_objects_collection_validate(bmain, scene, rbw);
|
||||
BKE_rigidbody_constraints_collection_validate(scene, rbw);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -186,7 +186,7 @@ static void rna_RigidBodyWorld_objects_collection_update(Main *bmain,
|
|||
PointerRNA *ptr)
|
||||
{
|
||||
RigidBodyWorld *rbw = (RigidBodyWorld *)ptr->data;
|
||||
BKE_rigidbody_objects_collection_validate(scene, rbw);
|
||||
BKE_rigidbody_objects_collection_validate(bmain, scene, rbw);
|
||||
rna_RigidBodyWorld_reset(bmain, scene, ptr);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue