25 : base_flag(0), base_local_view_bits(0)
35 if (object->light_linking) {
57 if (modifier_data->runtime ==
nullptr) {
62 modifier_data->runtime =
nullptr;
68 if (object->pose !=
nullptr) {
70 const SessionUID &session_uid = pchan->runtime.session_uid;
81 ID *data_orig =
object->
runtime->data_orig;
83 std::optional<Bounds<float3>> bounds =
object->
runtime->bounds_eval;
86 object->
runtime->bounds_eval = bounds;
95 object->data = data_orig;
103 if (
GS(((
ID *)object->data)->name) ==
GS(data_eval->
name)) {
104 object->data = data_eval;
111 Mesh *mesh_eval = (
Mesh *)data_eval;
112 Mesh *mesh_orig = (
Mesh *)data_orig;
120 object->data = data_orig;
124 object->data =
object->runtime->data_eval;
131 if (!object->light_linking) {
132 object->light_linking = MEM_cnew<LightLinking>(__func__);
150 modifier_data->persistent_uid);
151 if (backup.has_value()) {
152 modifier_data->runtime = backup->runtime;
164 if (mesh->runtime->subsurf_runtime_data == backup.runtime) {
165 mesh->runtime->subsurf_runtime_data =
nullptr;
174 if (object->pose !=
nullptr) {
176 const SessionUID &session_uid = pchan->runtime.session_uid;
Blender kernel action and pose functionality.
void BKE_pose_channel_runtime_free(bPoseChannel_Runtime *runtime) ATTR_NONNULL(1)
void BKE_pose_channel_runtime_reset(bPoseChannel_Runtime *runtime) ATTR_NONNULL(1)
const ModifierTypeInfo * BKE_modifier_get_info(ModifierType type)
General operations, lookup, etc. for blender objects.
void BKE_object_runtime_reset(Object *object)
void BKE_object_free_derived_caches(Object *ob)
#define LISTBASE_FOREACH(type, var, list)
bool BLI_session_uid_is_generated(const SessionUID *uid)
std::optional< Value > pop_try(const Key &key)
bool add(const Key &key, const Value &value)
ValueIterator values() const
unsigned short base_local_view_bits
Map< SessionUID, bPoseChannel_Runtime > pose_channel_runtime_data
bke::ObjectRuntime runtime
void init_from_object(Object *object)
optional< LightLinkingRuntime > light_linking_runtime
ObjectRuntimeBackup(const Depsgraph *depsgraph)
void backup_modifier_runtime_data(Object *object)
Map< int, ModifierDataBackup > modifier_runtime_data
void restore_to_object(Object *object)
void backup_pose_channel_runtime_data(Object *object)
void restore_modifier_runtime_data(Object *object)
void restore_pose_channel_runtime_data(Object *object)
struct ID_Runtime runtime
MeshRuntimeHandle * runtime
void(* free_runtime_data)(void *runtime_data)
std::optional< Bounds< float3 > > bounds_eval