Blender V5.0
blender::deg::DepsgraphNodeBuilder Class Reference

#include <deg_builder_nodes.h>

Inherits blender::deg::DepsgraphBuilder.

Classes

struct  IDInfo
struct  BuilderWalkUserData

Public Member Functions

 DepsgraphNodeBuilder (Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache)
 ~DepsgraphNodeBuilder ()
IDget_cow_id (const ID *id_orig) const
IDensure_cow_id (ID *id_orig)
template<typename T>
Tget_cow_datablock (const T *orig) const
template<typename T>
Tget_orig_datablock (const T *cow) const
virtual void begin_build ()
virtual void end_build ()
int foreach_id_cow_detect_need_for_update_callback (ID *id_cow_self, ID *id_pointer)
IDNodeadd_id_node (ID *id)
IDNodefind_id_node (const ID *id)
TimeSourceNodeadd_time_source ()
ComponentNodeadd_component_node (ID *id, NodeType comp_type, const char *comp_name="")
ComponentNodefind_component_node (const ID *id, NodeType comp_type, const char *comp_name="")
OperationNodeadd_operation_node (ComponentNode *comp_node, OperationCode opcode, const DepsEvalOperationCb &op=nullptr, const char *name="", int name_tag=-1)
OperationNodeadd_operation_node (ID *id, NodeType comp_type, const char *comp_name, OperationCode opcode, const DepsEvalOperationCb &op=nullptr, const char *name="", int name_tag=-1)
OperationNodeadd_operation_node (ID *id, NodeType comp_type, OperationCode opcode, const DepsEvalOperationCb &op=nullptr, const char *name="", int name_tag=-1)
OperationNodeensure_operation_node (ID *id, NodeType comp_type, const char *comp_name, OperationCode opcode, const DepsEvalOperationCb &op=nullptr, const char *name="", int name_tag=-1)
OperationNodeensure_operation_node (ID *id, NodeType comp_type, OperationCode opcode, const DepsEvalOperationCb &op=nullptr, const char *name="", int name_tag=-1)
bool has_operation_node (ID *id, NodeType comp_type, const char *comp_name, OperationCode opcode, const char *name="", int name_tag=-1)
bool has_operation_node (ID *id, NodeType comp_type, OperationCode opcode)
OperationNodefind_operation_node (const ID *id, NodeType comp_type, const char *comp_name, OperationCode opcode, const char *name="", int name_tag=-1)
OperationNodefind_operation_node (const ID *id, NodeType comp_type, OperationCode opcode, const char *name="", int name_tag=-1)
OperationNodefind_operation_node (const OperationKey &key)
virtual void build_id (ID *id, bool force_be_visible=false)
virtual void build_generic_id (ID *id)
virtual void build_idproperties (IDProperty *id_property)
virtual void build_scene_render (Scene *scene, ViewLayer *view_layer)
virtual void build_scene_camera (Scene *scene)
virtual void build_scene_parameters (Scene *scene)
virtual void build_scene_compositor (Scene *scene)
virtual void build_layer_collections (ListBase *lb)
virtual void build_view_layer (Scene *scene, ViewLayer *view_layer, eDepsNode_LinkedState_Type linked_state)
virtual void build_collection (LayerCollection *from_layer_collection, Collection *collection)
virtual void build_object (int base_index, Object *object, eDepsNode_LinkedState_Type linked_state, bool is_visible)
virtual void build_object_instance_collection (Object *object, bool is_object_visible)
virtual void build_object_from_layer (int base_index, Object *object, eDepsNode_LinkedState_Type linked_state)
virtual void build_object_flags (int base_index, Object *object, eDepsNode_LinkedState_Type linked_state)
virtual void build_object_modifiers (Object *object)
virtual void build_object_data (Object *object)
virtual void build_object_data_camera (Object *object)
virtual void build_object_data_geometry (Object *object)
virtual void build_object_data_geometry_datablock (ID *obdata)
virtual void build_object_data_light (Object *object)
virtual void build_object_data_lightprobe (Object *object)
virtual void build_object_data_speaker (Object *object)
virtual void build_object_data_grease_pencil (Object *object)
virtual void build_object_transform (Object *object)
virtual void build_object_constraints (Object *object)
virtual void build_object_pointcache (Object *object)
virtual void build_object_shading (Object *object)
virtual void build_object_light_linking (Object *object)
virtual void build_light_linking_collection (Collection *collection)
virtual void build_pose_constraints (Object *object, bPoseChannel *pchan, int pchan_index)
virtual void build_rigidbody (Scene *scene)
virtual void build_particle_systems (Object *object, bool is_object_visible)
virtual void build_particle_settings (ParticleSettings *part)
virtual void build_animdata (ID *id)
virtual void build_animdata_nlastrip_targets (ListBase *strips)
virtual void build_animation_images (ID *id)
virtual void build_action (bAction *action)
virtual void build_animdata_drivers (ID *id, AnimData *adt)
virtual void build_driver (ID *id, FCurve *fcurve, int driver_index)
virtual void build_driver_variables (ID *id, FCurve *fcurve)
virtual void build_driver_scene_camera_variable (Scene *scene, const char *camera_path)
virtual void build_driver_id_property (const PointerRNA &target_prop, const char *rna_path_from_target_prop)
virtual void build_parameters (ID *id)
virtual void build_dimensions (Object *object)
virtual void build_ik_pose (Object *object, bPoseChannel *pchan, bConstraint *con)
virtual void build_splineik_pose (Object *object, bPoseChannel *pchan, bConstraint *con)
virtual void build_rig (Object *object)
virtual void build_armature (bArmature *armature)
virtual void build_armature_bones (ListBase *bones)
virtual void build_armature_bone_collections (blender::Span< BoneCollection * > collections)
virtual void build_shapekeys (Key *key)
virtual void build_camera (Camera *camera)
virtual void build_light (Light *lamp)
virtual void build_nodetree (bNodeTree *ntree)
virtual void build_nodetree_socket (bNodeSocket *socket)
virtual void build_material (Material *ma)
virtual void build_materials (Material **materials, int num_materials)
virtual void build_freestyle_lineset (FreestyleLineSet *fls)
virtual void build_freestyle_linestyle (FreestyleLineStyle *linestyle)
virtual void build_texture (Tex *tex)
virtual void build_image (Image *image)
virtual void build_world (World *world)
virtual void build_cachefile (CacheFile *cache_file)
virtual void build_mask (Mask *mask)
virtual void build_movieclip (MovieClip *clip)
virtual void build_lightprobe (LightProbe *probe)
virtual void build_speaker (Speaker *speaker)
virtual void build_sound (bSound *sound)
virtual void build_scene_sequencer (Scene *scene)
virtual void build_scene_audio (Scene *scene)
virtual void build_scene_speakers (Scene *scene, ViewLayer *view_layer)
virtual void build_vfont (VFont *vfont)
Public Member Functions inherited from blender::deg::DepsgraphBuilder
virtual ~DepsgraphBuilder ()=default
virtual bool need_pull_base_into_graph (const Base *base)
virtual bool is_object_visibility_animated (const Object *object)
virtual bool is_modifier_visibility_animated (const Object *object, const ModifierData *modifier)
virtual bool check_pchan_has_bbone (const Object *object, const bPoseChannel *pchan)
virtual bool check_pchan_has_bbone_segments (const Object *object, const bPoseChannel *pchan)
virtual bool check_pchan_has_bbone_segments (const Object *object, const char *bone_name)

Protected Member Functions

void tag_previously_tagged_nodes ()
void update_invalid_cow_pointers ()
 DepsgraphBuilder (Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache)

Static Protected Member Functions

static void modifier_walk (void *user_data, struct Object *object, struct ID **idpoin, LibraryForeachIDCallbackFlag cb_flag)
static void constraint_walk (bConstraint *constraint, ID **idpoin, bool is_reference, void *user_data)

Protected Attributes

Vector< PersistentOperationKeysaved_entry_tags_
Vector< PersistentOperationKeyneeds_update_operations_
Scenescene_
ViewLayerview_layer_
int view_layer_index_
bool is_parent_collection_visible_
Map< uint, IDInfoid_info_hash_
BuilderMap built_map_
Protected Attributes inherited from blender::deg::DepsgraphBuilder
Mainbmain_
Depsgraphgraph_
DepsgraphBuilderCachecache_

Additional Inherited Members

static const char * get_rna_path_relative_to_scene_camera (const Scene *scene, const PointerRNA &target_prop, const char *rna_path)

Detailed Description

Definition at line 68 of file deg_builder_nodes.h.

Constructor & Destructor Documentation

◆ DepsgraphNodeBuilder()

blender::deg::DepsgraphNodeBuilder::DepsgraphNodeBuilder ( Main * bmain,
Depsgraph * graph,
DepsgraphBuilderCache * cache )

◆ ~DepsgraphNodeBuilder()

blender::deg::DepsgraphNodeBuilder::~DepsgraphNodeBuilder ( )

Member Function Documentation

◆ add_component_node()

ComponentNode * blender::deg::DepsgraphNodeBuilder::add_component_node ( ID * id,
NodeType comp_type,
const char * comp_name = "" )

◆ add_id_node()

◆ add_operation_node() [1/3]

OperationNode * blender::deg::DepsgraphNodeBuilder::add_operation_node ( ComponentNode * comp_node,
OperationCode opcode,
const DepsEvalOperationCb & op = nullptr,
const char * name = "",
int name_tag = -1 )

◆ add_operation_node() [2/3]

OperationNode * blender::deg::DepsgraphNodeBuilder::add_operation_node ( ID * id,
NodeType comp_type,
const char * comp_name,
OperationCode opcode,
const DepsEvalOperationCb & op = nullptr,
const char * name = "",
int name_tag = -1 )

Definition at line 265 of file deg_builder_nodes.cc.

References add_component_node(), add_operation_node(), and name.

◆ add_operation_node() [3/3]

OperationNode * blender::deg::DepsgraphNodeBuilder::add_operation_node ( ID * id,
NodeType comp_type,
OperationCode opcode,
const DepsEvalOperationCb & op = nullptr,
const char * name = "",
int name_tag = -1 )

Definition at line 277 of file deg_builder_nodes.cc.

References add_operation_node(), and name.

◆ add_time_source()

TimeSourceNode * blender::deg::DepsgraphNodeBuilder::add_time_source ( )

Definition at line 217 of file deg_builder_nodes.cc.

References blender::deg::DepsgraphBuilder::graph_.

Referenced by build_scene_render(), and build_view_layer().

◆ begin_build()

◆ build_action()

◆ build_animation_images()

void blender::deg::DepsgraphNodeBuilder::build_animation_images ( ID * id)
virtual

◆ build_animdata()

◆ build_animdata_drivers()

◆ build_animdata_nlastrip_targets()

void blender::deg::DepsgraphNodeBuilder::build_animdata_nlastrip_targets ( ListBase * strips)
virtual

◆ build_armature()

◆ build_armature_bone_collections()

void blender::deg::DepsgraphNodeBuilder::build_armature_bone_collections ( blender::Span< BoneCollection * > collections)
virtual

Definition at line 1908 of file deg_builder_nodes.cc.

References build_idproperties().

Referenced by build_armature().

◆ build_armature_bones()

void blender::deg::DepsgraphNodeBuilder::build_armature_bones ( ListBase * bones)
virtual

◆ build_cachefile()

◆ build_camera()

◆ build_collection()

◆ build_dimensions()

void blender::deg::DepsgraphNodeBuilder::build_dimensions ( Object * object)
virtual

◆ build_driver()

void blender::deg::DepsgraphNodeBuilder::build_driver ( ID * id,
FCurve * fcurve,
int driver_index )
virtual

Build graph node(s) for Driver

Parameters
idID-Block that driver is attached to
fcurveDriver-FCurve
driver_indexIndex in animation data drivers list

Definition at line 1348 of file deg_builder_nodes.cc.

References FCurve::array_index, BKE_animsys_eval_driver(), build_driver_variables(), depsgraph, blender::deg::DRIVER, ensure_operation_node(), get_cow_id(), blender::deg::PARAMETERS, and FCurve::rna_path.

Referenced by build_animdata_drivers().

◆ build_driver_id_property()

void blender::deg::DepsgraphNodeBuilder::build_driver_id_property ( const PointerRNA & target_prop,
const char * rna_path_from_target_prop )
virtual

◆ build_driver_scene_camera_variable()

void blender::deg::DepsgraphNodeBuilder::build_driver_scene_camera_variable ( Scene * scene,
const char * camera_path )
virtual

◆ build_driver_variables()

◆ build_freestyle_lineset()

void blender::deg::DepsgraphNodeBuilder::build_freestyle_lineset ( FreestyleLineSet * fls)
virtual

◆ build_freestyle_linestyle()

void blender::deg::DepsgraphNodeBuilder::build_freestyle_linestyle ( FreestyleLineStyle * linestyle)
virtual

◆ build_generic_id()

void blender::deg::DepsgraphNodeBuilder::build_generic_id ( ID * id)
virtual

◆ build_id()

◆ build_idproperties()

◆ build_ik_pose()

◆ build_image()

◆ build_layer_collections()

◆ build_light()

◆ build_light_linking_collection()

void blender::deg::DepsgraphNodeBuilder::build_light_linking_collection ( Collection * collection)
virtual

◆ build_lightprobe()

◆ build_mask()

◆ build_material()

◆ build_materials()

void blender::deg::DepsgraphNodeBuilder::build_materials ( Material ** materials,
int num_materials )
virtual

Definition at line 2102 of file deg_builder_nodes.cc.

References build_material(), and i.

Referenced by build_object_data(), and build_object_data_geometry().

◆ build_movieclip()

◆ build_nodetree()

◆ build_nodetree_socket()

void blender::deg::DepsgraphNodeBuilder::build_nodetree_socket ( bNodeSocket * socket)
virtual

◆ build_object()

void blender::deg::DepsgraphNodeBuilder::build_object ( int base_index,
Object * object,
eDepsNode_LinkedState_Type linked_state,
bool is_visible )
virtual

Definition at line 753 of file deg_builder_nodes.cc.

References add_id_node(), add_operation_node(), BKE_constraints_id_loop(), BKE_gpencil_modifiers_foreach_ID_link(), BKE_shaderfx_foreach_ID_link(), build_animdata(), build_idproperties(), build_object(), build_object_data(), build_object_flags(), build_object_from_layer(), build_object_instance_collection(), build_object_light_linking(), build_object_modifiers(), build_object_shading(), build_object_transform(), build_parameters(), build_particle_systems(), build_texture(), built_map_, constraint_walk(), Object::constraints, data, blender::deg::DEG_ID_LINKED_INDIRECTLY, depsgraph, blender::deg::DEPSOP_FLAG_PINNED, find_id_node(), ListBase::first, blender::deg::OperationNode::flag, PartDeflect::forcefield, get_cow_datablock(), Object::greasepencil_modifiers, blender::deg::IDNode::has_base, blender::deg::HIERARCHY, Object::id, IDWALK_NOP, blender::deg::INSTANCE, Object::instance_collection, blender::deg::INSTANCE_GEOMETRY, blender::deg::INSTANCER, blender::deg::INSTANCING, blender::deg::IDNode::is_visible_on_build, blender::deg::IDNode::linked_state, modifier_walk(), Object::parent, Object::particlesystem, Object::pd, PFIELD_TEXTURE, ID::properties, scene_, Object::shader_fx, blender::deg::SYNCHRONIZATION, blender::deg::SYNCHRONIZE_TO_ORIGINAL, ID::system_properties, and PartDeflect::tex.

Referenced by build_camera(), build_collection(), build_id(), build_nodetree(), build_object(), build_object_data_geometry_datablock(), build_object_data_grease_pencil(), build_particle_systems(), build_rig(), build_rigidbody(), build_scene_camera(), build_scene_speakers(), and build_view_layer().

◆ build_object_constraints()

void blender::deg::DepsgraphNodeBuilder::build_object_constraints ( Object * object)
virtual

Constraints Graph Notes

For constraints, we currently only add a operation node to the Transform or Bone components (depending on whichever type of owner we have). This represents the entire constraints stack, which is for now just executed as a single monolithic block. At least initially, this should be sufficient for ensuring that the porting/refactoring process remains manageable.

However, when the time comes for developing "node-based" constraints, we'll need to split this up into pre/post nodes for "constraint stack evaluation" + operation nodes for each constraint (i.e. the contents of the loop body used in the current "solve_constraints()" operation).

– Aligorith, August 2013

Definition at line 1141 of file deg_builder_nodes.cc.

References add_operation_node(), depsgraph, get_cow_datablock(), Object::id, scene_, blender::deg::TRANSFORM, and blender::deg::TRANSFORM_CONSTRAINTS.

Referenced by build_object_transform().

◆ build_object_data()

◆ build_object_data_camera()

void blender::deg::DepsgraphNodeBuilder::build_object_data_camera ( Object * object)
virtual

Definition at line 1041 of file deg_builder_nodes.cc.

References build_camera(), and Object::data.

Referenced by build_object_data().

◆ build_object_data_geometry()

◆ build_object_data_geometry_datablock()

◆ build_object_data_grease_pencil()

void blender::deg::DepsgraphNodeBuilder::build_object_data_grease_pencil ( Object * object)
virtual

◆ build_object_data_light()

void blender::deg::DepsgraphNodeBuilder::build_object_data_light ( Object * object)
virtual

Definition at line 1047 of file deg_builder_nodes.cc.

References build_light(), and Object::data.

Referenced by build_object_data().

◆ build_object_data_lightprobe()

void blender::deg::DepsgraphNodeBuilder::build_object_data_lightprobe ( Object * object)
virtual

◆ build_object_data_speaker()

void blender::deg::DepsgraphNodeBuilder::build_object_data_speaker ( Object * object)
virtual

◆ build_object_flags()

void blender::deg::DepsgraphNodeBuilder::build_object_flags ( int base_index,
Object * object,
eDepsNode_LinkedState_Type linked_state )
virtual

◆ build_object_from_layer()

◆ build_object_instance_collection()

void blender::deg::DepsgraphNodeBuilder::build_object_instance_collection ( Object * object,
bool is_object_visible )
virtual

◆ build_object_light_linking()

◆ build_object_modifiers()

◆ build_object_pointcache()

void blender::deg::DepsgraphNodeBuilder::build_object_pointcache ( Object * object)
virtual

◆ build_object_shading()

void blender::deg::DepsgraphNodeBuilder::build_object_shading ( Object * object)
virtual

◆ build_object_transform()

◆ build_parameters()

◆ build_particle_settings()

◆ build_particle_systems()

void blender::deg::DepsgraphNodeBuilder::build_particle_systems ( Object * object,
bool is_object_visible )
virtual

Particle Systems Nodes

There are two types of nodes associated with representing particle systems: 1) Component (EVAL_PARTICLES) - This is the particle-system evaluation context for an object. It acts as the container for all the nodes associated with a particular set of particle systems. 2) Particle System Evaluation Operation - This operation node acts as a black-box evaluation step for one particle system referenced by the particle systems stack. All dependencies link to this operation.

Definition at line 1603 of file deg_builder_nodes.cc.

References add_component_node(), add_operation_node(), BKE_particle_system_eval_init(), build_collection(), build_object(), build_particle_settings(), blender::deg::DEG_ID_LINKED_INDIRECTLY, depsgraph, ELEM, get_cow_datablock(), Object::id, ParticleSettings::instance_collection, ParticleSettings::instance_object, LISTBASE_FOREACH, PART_DRAW_GR, PART_DRAW_OB, PART_PHYS_BOIDS, PART_PHYS_KEYED, blender::deg::PARTICLE_SYSTEM, blender::deg::PARTICLE_SYSTEM_DONE, blender::deg::PARTICLE_SYSTEM_EVAL, blender::deg::PARTICLE_SYSTEM_INIT, Object::particlesystem, ParticleSettings::phystype, ParticleSettings::ren_as, blender::deg::OperationNode::set_as_entry(), and blender::deg::OperationNode::set_as_exit().

Referenced by build_object().

◆ build_pose_constraints()

void blender::deg::DepsgraphNodeBuilder::build_pose_constraints ( Object * object,
bPoseChannel * pchan,
int pchan_index )
virtual

◆ build_rig()

void blender::deg::DepsgraphNodeBuilder::build_rig ( Object * object)
virtual

Pose/Armature Bones Graph.

Pose Rig Graph

Pose Component:

  • Mainly used for referencing Bone components.
  • This is where the evaluation operations for init/exec/cleanup (ik) solvers live, and are later hooked up (so that they can be interleaved during runtime) with bone-operations they depend on/affect.
  • init_pose_eval() and cleanup_pose_eval() are absolute first and last steps of pose eval process. ALL bone operations must be performed between these two...

Bone Component:

  • Used for representing each bone within the rig
  • Acts to encapsulate the evaluation operations (base matrix + parenting, and constraint stack) so that they can be easily found.
  • Everything else which depends on bone-results hook up to the component only so that we can redirect those to point at either the post-IK/post-constraint/post-matrix steps, as needed.

IK Solvers.

  • These require separate processing steps are pose-level to be executed between chains of bones (i.e. once the base transforms of a bunch of bones is done)

Unsolved Issues:

  • Care is needed to ensure that multi-headed trees work out the same as in ik-tree building
  • Animated chain-lengths are a problem.

Definition at line 124 of file deg_builder_nodes_rig.cc.

References add_operation_node(), BKE_pose_channels_hash_ensure(), BKE_pose_rebuild(), BKE_pose_update_constraint_flags(), blender::deg::BONE, blender::deg::BONE_DONE, blender::deg::BONE_LOCAL, blender::deg::BONE_POSE_PARENT, blender::deg::BONE_READY, blender::deg::BONE_SEGMENTS, build_armature(), build_idproperties(), build_ik_pose(), build_object(), build_pose_constraints(), build_splineik_pose(), bPose::chanbase, blender::deg::DepsgraphBuilder::check_pchan_has_bbone(), CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_SPLINEIK, Object::data, blender::deg::DEG_ID_LINKED_INDIRECTLY, depsgraph, blender::deg::EVAL_POSE, bPose::flag, get_cow_datablock(), Object::id, LISTBASE_FOREACH, blender::deg::PARAMETERS, blender::deg::PARAMETERS_EVAL, Object::pose, blender::deg::POSE_CLEANUP, POSE_CONSTRAINTS_NEED_UPDATE_FLAGS, blender::deg::POSE_DONE, blender::deg::POSE_INIT, blender::deg::POSE_INIT_IK, POSE_RECALC, scene_, blender::deg::OperationNode::set_as_entry(), and blender::deg::OperationNode::set_as_exit().

Referenced by build_object_data().

◆ build_rigidbody()

void blender::deg::DepsgraphNodeBuilder::build_rigidbody ( Scene * scene)
virtual

Rigidbody Simulation Nodes

There are 3 nodes related to Rigidbody Simulation: 1) "Initialize/Rebuild World" - this is called sparingly, only when the simulation needs to be rebuilt (mainly after file reload, or moving back to start frame) 2) "Do Simulation" - perform a simulation step - interleaved between the evaluation steps for clusters of objects (i.e. between those affected and/or not affected by the sim for instance).

3) "Pull Results" - grab the specific transforms applied for a specific object - performed as part of object's transform-stack building.

Definition at line 1516 of file deg_builder_nodes.cc.

References add_operation_node(), build_collection(), build_object(), RigidBodyWorld::constraints, blender::deg::DEG_ID_LINKED_INDIRECTLY, depsgraph, blender::deg::ComponentNode::entry_operation, FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN, FOREACH_COLLECTION_OBJECT_RECURSIVE_END, get_cow_datablock(), RigidBodyWorld::group, Scene::id, RigidBodyCon::ob1, RigidBodyCon::ob2, OB_MESH, blender::deg::OperationNode::owner, RBO_TYPE_PASSIVE, blender::deg::RIGIDBODY_REBUILD, blender::deg::RIGIDBODY_SIM, blender::deg::RIGIDBODY_TRANSFORM_COPY, Scene::rigidbody_world, blender::deg::OperationNode::set_as_entry(), blender::deg::OperationNode::set_as_exit(), and blender::deg::TRANSFORM.

Referenced by build_view_layer().

◆ build_scene_audio()

◆ build_scene_camera()

void blender::deg::DepsgraphNodeBuilder::build_scene_camera ( Scene * scene)
virtual

◆ build_scene_compositor()

void blender::deg::DepsgraphNodeBuilder::build_scene_compositor ( Scene * scene)
virtual

◆ build_scene_parameters()

◆ build_scene_render()

◆ build_scene_sequencer()

◆ build_scene_speakers()

◆ build_shapekeys()

◆ build_sound()

◆ build_speaker()

◆ build_splineik_pose()

◆ build_texture()

◆ build_vfont()

void blender::deg::DepsgraphNodeBuilder::build_vfont ( VFont * vfont)
virtual

◆ build_view_layer()

void blender::deg::DepsgraphNodeBuilder::build_view_layer ( Scene * scene,
ViewLayer * view_layer,
eDepsNode_LinkedState_Type linked_state )
virtual

◆ build_world()

void blender::deg::DepsgraphNodeBuilder::build_world ( World * world)
virtual

◆ constraint_walk()

void blender::deg::DepsgraphNodeBuilder::constraint_walk ( bConstraint * constraint,
ID ** idpoin,
bool is_reference,
void * user_data )
staticprotected

◆ end_build()

void blender::deg::DepsgraphNodeBuilder::end_build ( )
virtual

◆ ensure_cow_id()

ID * blender::deg::DepsgraphNodeBuilder::ensure_cow_id ( ID * id_orig)

◆ ensure_operation_node() [1/2]

OperationNode * blender::deg::DepsgraphNodeBuilder::ensure_operation_node ( ID * id,
NodeType comp_type,
const char * comp_name,
OperationCode opcode,
const DepsEvalOperationCb & op = nullptr,
const char * name = "",
int name_tag = -1 )

◆ ensure_operation_node() [2/2]

OperationNode * blender::deg::DepsgraphNodeBuilder::ensure_operation_node ( ID * id,
NodeType comp_type,
OperationCode opcode,
const DepsEvalOperationCb & op = nullptr,
const char * name = "",
int name_tag = -1 )

Definition at line 302 of file deg_builder_nodes.cc.

References add_operation_node(), find_operation_node(), and name.

◆ find_component_node()

ComponentNode * blender::deg::DepsgraphNodeBuilder::find_component_node ( const ID * id,
NodeType comp_type,
const char * comp_name = "" )

Definition at line 232 of file deg_builder_nodes.cc.

References blender::deg::IDNode::find_component(), and find_id_node().

Referenced by find_operation_node().

◆ find_id_node()

IDNode * blender::deg::DepsgraphNodeBuilder::find_id_node ( const ID * id)

◆ find_operation_node() [1/3]

OperationNode * blender::deg::DepsgraphNodeBuilder::find_operation_node ( const ID * id,
NodeType comp_type,
const char * comp_name,
OperationCode opcode,
const char * name = "",
int name_tag = -1 )

◆ find_operation_node() [2/3]

OperationNode * blender::deg::DepsgraphNodeBuilder::find_operation_node ( const ID * id,
NodeType comp_type,
OperationCode opcode,
const char * name = "",
int name_tag = -1 )

Definition at line 347 of file deg_builder_nodes.cc.

References find_operation_node(), and name.

◆ find_operation_node() [3/3]

◆ foreach_id_cow_detect_need_for_update_callback()

int blender::deg::DepsgraphNodeBuilder::foreach_id_cow_detect_need_for_update_callback ( ID * id_cow_self,
ID * id_pointer )

◆ get_cow_datablock()

◆ get_cow_id()

◆ get_orig_datablock()

template<typename T>
T * blender::deg::DepsgraphNodeBuilder::get_orig_datablock ( const T * cow) const
inline

Definition at line 86 of file deg_builder_nodes.h.

References T.

◆ has_operation_node() [1/2]

bool blender::deg::DepsgraphNodeBuilder::has_operation_node ( ID * id,
NodeType comp_type,
const char * comp_name,
OperationCode opcode,
const char * name = "",
int name_tag = -1 )

◆ has_operation_node() [2/2]

bool blender::deg::DepsgraphNodeBuilder::has_operation_node ( ID * id,
NodeType comp_type,
OperationCode opcode )

Definition at line 326 of file deg_builder_nodes.cc.

References find_operation_node().

◆ modifier_walk()

void blender::deg::DepsgraphNodeBuilder::modifier_walk ( void * user_data,
struct Object * object,
struct ID ** idpoin,
LibraryForeachIDCallbackFlag cb_flag )
staticprotected

◆ tag_previously_tagged_nodes()

◆ update_invalid_cow_pointers()

void blender::deg::DepsgraphNodeBuilder::update_invalid_cow_pointers ( )
protected

Member Data Documentation

◆ built_map_

◆ id_info_hash_

Map<uint, IDInfo> blender::deg::DepsgraphNodeBuilder::id_info_hash_
protected

Definition at line 342 of file deg_builder_nodes.h.

Referenced by add_id_node(), begin_build(), and ~DepsgraphNodeBuilder().

◆ is_parent_collection_visible_

bool blender::deg::DepsgraphNodeBuilder::is_parent_collection_visible_
protected

◆ needs_update_operations_

Vector<PersistentOperationKey> blender::deg::DepsgraphNodeBuilder::needs_update_operations_
protected

Definition at line 309 of file deg_builder_nodes.h.

Referenced by begin_build(), and tag_previously_tagged_nodes().

◆ saved_entry_tags_

Vector<PersistentOperationKey> blender::deg::DepsgraphNodeBuilder::saved_entry_tags_
protected

Definition at line 308 of file deg_builder_nodes.h.

Referenced by begin_build(), and tag_previously_tagged_nodes().

◆ scene_

◆ view_layer_

ViewLayer* blender::deg::DepsgraphNodeBuilder::view_layer_
protected

Definition at line 332 of file deg_builder_nodes.h.

Referenced by build_scene_render(), build_view_layer(), and DepsgraphNodeBuilder().

◆ view_layer_index_

int blender::deg::DepsgraphNodeBuilder::view_layer_index_
protected

Definition at line 333 of file deg_builder_nodes.h.

Referenced by build_object_flags(), build_view_layer(), and DepsgraphNodeBuilder().


The documentation for this class was generated from the following files: