25#include "RNA_prototypes.hh"
46 return (
ID *)
id->orig_id;
51 const ID *const_id = id;
64 if (id_node ==
nullptr) {
72 const ID *const_id = id;
83 return deg_graph->
scene;
95 return deg_graph->
bmain;
101 return deg_graph->
mode;
107 return deg_graph->
ctime;
138 if (graph ==
nullptr) {
149 if (id_node ==
nullptr) {
161 if (graph ==
nullptr) {
172 if (id_node ==
nullptr) {
198 if (scene_cow ==
nullptr) {
207 return view_layer_cow;
224 if ((
ptr ==
nullptr) || (r_ptr_eval ==
nullptr)) {
227 ID *orig_id =
ptr->owner_id;
229 if (
ptr->owner_id ==
ptr->data) {
232 r_ptr_eval->
data = (
void *)cow_id;
235 else if (
ptr->type == &RNA_PoseBone) {
243 r_ptr_eval->
data = (
void *)pchan_eval;
257 "%s: Couldn't resolve RNA path ('%s') relative to evaluated ID (%p) for '%s'\n",
267 "%s: Couldn't get RNA path for %s relative to %s\n",
287 return id.runtime->depsgraph;
371 if (!component_node) {
375 if (!operation_node) {
Blender kernel action and pose functionality.
bPoseChannel * BKE_pose_channel_find_name(const bPose *pose, const char *name)
int BKE_idtype_idcode_to_index(short idcode)
void * BLI_findstring(const ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
T * DEG_get_original(T *id)
@ ID_TAG_COPIED_ON_EVAL_FINAL_RESULT
Object is a sort of wrapper for general info.
BPy_StructRNA * depsgraph
float DEG_get_ctime(const Depsgraph *graph)
bool DEG_object_transform_is_evaluated(const Object &object)
uint32_t DEG_get_eval_flags_for_id(const Depsgraph *graph, const ID *id)
bool DEG_id_is_fully_evaluated(const Depsgraph *depsgraph, const ID *id_eval)
bool DEG_is_fully_evaluated(const Depsgraph *depsgraph)
bool DEG_is_evaluated_id(const ID *id)
void DEG_get_customdata_mask_for_object(const Depsgraph *graph, Object *ob, CustomData_MeshMasks *r_mask)
Scene * DEG_get_evaluated_scene(const Depsgraph *graph)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
bool DEG_is_original_id(const ID *id)
ID * DEG_get_original_id(ID *id)
Depsgraph * DEG_get_depsgraph_by_id(const ID &id)
bool DEG_object_geometry_is_evaluated(const Object &object)
ViewLayer * DEG_get_evaluated_view_layer(const Depsgraph *graph)
ViewLayer * DEG_get_input_view_layer(const Depsgraph *graph)
Main * DEG_get_bmain(const Depsgraph *graph)
static bool operation_needs_update(const ID &id, const deg::NodeType component_type, const deg::OperationCode opcode)
Scene * DEG_get_input_scene(const Depsgraph *graph)
bool DEG_id_type_any_exists(const Depsgraph *depsgraph, short id_type)
void DEG_get_evaluated_rna_pointer(const Depsgraph *depsgraph, PointerRNA *ptr, PointerRNA *r_ptr_eval)
ID * DEG_get_evaluated_id(const Depsgraph *depsgraph, ID *id)
bool DEG_collection_geometry_is_evaluated(const Collection &collection)
bool DEG_id_type_updated(const Depsgraph *graph, short id_type)
bool DEG_id_type_any_updated(const Depsgraph *graph)
bool deg_eval_copy_is_expanded(const ID *id_cow)
static const ID * get_evaluated_id(const Depsgraph *deg_graph, const ID *id)
static const ID * get_original_id(const ID *id)
@ DEPSOP_FLAG_NEEDS_UPDATE
const char * RNA_struct_identifier(const StructRNA *type)
PointerRNA RNA_id_pointer_create(ID *id)
std::optional< std::string > RNA_path_from_ID_to_struct(const PointerRNA *ptr)
bool RNA_path_resolve(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
OperationNode * find_operation(OperationIDKey key) const
IDNode * find_id_node(const ID *id) const
char id_type_updated[INDEX_ID_MAX]
char id_type_exist[INDEX_ID_MAX]
Set< OperationNode * > entry_tags
bool need_update_relations
DEGCustomDataMeshMasks customdata_masks
Map< ComponentIDKey, ComponentNode * > components
ComponentNode * find_component(NodeType type, StringRef name="") const