25#include "RNA_prototypes.hh"
45 return id_node !=
nullptr;
52 if (id_node ==
nullptr) {
73 if (!
graph_->use_visibility_optimization || (base->
flag & base_flag)) {
96 return cache_->isPropertyAnimated(&object->
id, property_id);
105 &object->
id, &RNA_Modifier, (
void *)
modifier,
"show_viewport");
114 return cache_->isPropertyAnimated(&object->
id, property_id);
120 if (pchan ==
nullptr || pchan->
bone ==
nullptr) {
133 return cache_->isPropertyAnimated(&object->
id, property_id) ||
134 cache_->isPropertyAnimated(&armature->
id, property_id);
151 const char *rna_path)
153 if (rna_path ==
nullptr || target_prop.
data != scene || target_prop.
type != &RNA_Scene ||
160 switch (rna_path[6]) {
201 if (id_type ==
ID_OB) {
204 if (id_type ==
ID_NT) {
209 if (id_type ==
ID_GR) {
215 else if (id_type ==
ID_SCE) {
Blender kernel action and pose functionality.
bPoseChannel * BKE_pose_channel_find_name(const bPose *pose, const char *name)
void BKE_collection_object_cache_free(const Main *bmain, Collection *collection, const int id_create_flag)
@ LIB_ID_CREATE_NO_DEG_TAG
#define BLI_assert_msg(a, msg)
int bool BLI_str_startswith(const char *__restrict str, const char *__restrict start) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
ID and Library types, which are fundamental for SDNA.
@ ID_RECALC_SEQUENCER_STRIPS
Object is a sort of wrapper for general info.
DepsgraphBuilderCache * cache_
virtual bool check_pchan_has_bbone_segments(const Object *object, const bPoseChannel *pchan)
virtual bool need_pull_base_into_graph(const Base *base)
virtual bool check_pchan_has_bbone(const Object *object, const bPoseChannel *pchan)
virtual bool is_object_visibility_animated(const Object *object)
static const char * get_rna_path_relative_to_scene_camera(const Scene *scene, const PointerRNA &target_prop, const char *rna_path)
DepsgraphBuilder(Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache)
virtual bool is_modifier_visibility_animated(const Object *object, const ModifierData *modifier)
void deg_graph_remove_unused_noops(Depsgraph *graph)
bool deg_check_base_in_depsgraph(const Depsgraph *graph, Base *base)
bool deg_eval_copy_is_expanded(const ID *id_cow)
void deg_graph_flush_visibility_flags(Depsgraph *graph)
void deg_graph_build_finalize(Main *bmain, Depsgraph *graph)
bool deg_check_id_in_depsgraph(const Depsgraph *graph, ID *id_orig)
void graph_id_tag_update(Main *bmain, Depsgraph *graph, ID *id, uint flags, eUpdateSource update_source)
@ DEG_UPDATE_SOURCE_RELATIONS
IDNode * find_id_node(const ID *id) const
DEGCustomDataMeshMasks customdata_masks
DEGCustomDataMeshMasks previous_customdata_masks
void finalize_build(Depsgraph *graph)
uint32_t previous_eval_flags