Blender  V3.3
Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
blender::deg::DepsgraphNodeBuilder Class Reference

#include <deg_builder_nodes.h>

Inheritance diagram for blender::deg::DepsgraphNodeBuilder:
blender::deg::DepsgraphBuilder

Classes

struct  BuilderWalkUserData
 
struct  IDInfo
 
struct  SavedEntryTag
 

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 (ID *id)
 
TimeSourceNodeadd_time_source ()
 
ComponentNodeadd_component_node (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)
 
OperationNodefind_operation_node (ID *id, NodeType comp_type, const char *comp_name, OperationCode opcode, const char *name="", int name_tag=-1)
 
OperationNodefind_operation_node (ID *id, NodeType comp_type, OperationCode opcode, const char *name="", int name_tag=-1)
 
virtual void build_id (ID *id)
 
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_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_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_transform (Object *object)
 
virtual void build_object_constraints (Object *object)
 
virtual void build_object_pointcache (Object *object)
 
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_driver (ID *id, FCurve *fcurve, int driver_index)
 
virtual void build_driver_variables (ID *id, FCurve *fcurve)
 
virtual void build_driver_id_property (ID *id, const char *rna_path)
 
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_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_simulation (Simulation *simulation)
 
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 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 ()
 
- Protected Member Functions inherited from blender::deg::DepsgraphBuilder
 DepsgraphBuilder (Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache)
 

Static Protected Member Functions

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

Protected Attributes

Vector< SavedEntryTagsaved_entry_tags_
 
Scenescene_
 
ViewLayerview_layer_
 
int view_layer_index_
 
Collectioncollection_
 
bool is_parent_collection_visible_
 
Map< uint, IDInfo * > id_info_hash_
 
BuilderMap built_map_
 
- Protected Attributes inherited from blender::deg::DepsgraphBuilder
Mainbmain_
 
Depsgraphgraph_
 
DepsgraphBuilderCachecache_
 

Detailed Description

Definition at line 62 of file deg_builder_nodes.h.

Constructor & Destructor Documentation

◆ DepsgraphNodeBuilder()

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

Definition at line 125 of file deg_builder_nodes.cc.

◆ ~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()

IDNode * blender::deg::DepsgraphNodeBuilder::add_id_node ( ID id)

◆ 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 253 of file deg_builder_nodes.cc.

References add_component_node(), and add_operation_node().

◆ 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 265 of file deg_builder_nodes.cc.

References add_operation_node().

◆ add_time_source()

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

◆ begin_build()

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

◆ build_action()

void blender::deg::DepsgraphNodeBuilder::build_action ( bAction action)
virtual

◆ build_animation_images()

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

◆ build_animdata()

void blender::deg::DepsgraphNodeBuilder::build_animdata ( ID id)
virtual

◆ build_animdata_nlastrip_targets()

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

Definition at line 1085 of file deg_builder_nodes.cc.

References build_action(), and LISTBASE_FOREACH.

Referenced by build_animdata().

◆ build_armature()

void blender::deg::DepsgraphNodeBuilder::build_armature ( bArmature armature)
virtual

◆ build_armature_bones()

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

Definition at line 1630 of file deg_builder_nodes.cc.

References build_idproperties(), and LISTBASE_FOREACH.

Referenced by build_armature().

◆ build_cachefile()

void blender::deg::DepsgraphNodeBuilder::build_cachefile ( CacheFile cache_file)
virtual

◆ build_camera()

void blender::deg::DepsgraphNodeBuilder::build_camera ( Camera camera)
virtual

◆ build_collection()

void blender::deg::DepsgraphNodeBuilder::build_collection ( LayerCollection from_layer_collection,
Collection collection 
)
virtual

◆ 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 1129 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().

◆ build_driver_id_property()

void blender::deg::DepsgraphNodeBuilder::build_driver_id_property ( ID id,
const char *  rna_path 
)
virtual

◆ build_driver_variables()

void blender::deg::DepsgraphNodeBuilder::build_driver_variables ( ID id,
FCurve fcurve 
)
virtual

◆ 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()

void blender::deg::DepsgraphNodeBuilder::build_id ( ID id)
virtual

◆ build_idproperties()

void blender::deg::DepsgraphNodeBuilder::build_idproperties ( IDProperty id_property)
virtual

◆ build_ik_pose()

void blender::deg::DepsgraphNodeBuilder::build_ik_pose ( Object object,
bPoseChannel pchan,
bConstraint con 
)
virtual

◆ build_image()

void blender::deg::DepsgraphNodeBuilder::build_image ( Image image)
virtual

◆ build_layer_collections()

void blender::deg::DepsgraphNodeBuilder::build_layer_collections ( ListBase lb)
virtual

◆ build_light()

void blender::deg::DepsgraphNodeBuilder::build_light ( Light lamp)
virtual

◆ build_lightprobe()

void blender::deg::DepsgraphNodeBuilder::build_lightprobe ( LightProbe probe)
virtual

◆ build_mask()

void blender::deg::DepsgraphNodeBuilder::build_mask ( Mask mask)
virtual

◆ build_material()

void blender::deg::DepsgraphNodeBuilder::build_material ( Material ma)
virtual

◆ build_materials()

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

Definition at line 1801 of file deg_builder_nodes.cc.

References build_material(), and materials.

Referenced by build_object_data(), and build_object_data_geometry().

◆ build_movieclip()

void blender::deg::DepsgraphNodeBuilder::build_movieclip ( MovieClip clip)
virtual

◆ build_nodetree()

void blender::deg::DepsgraphNodeBuilder::build_nodetree ( bNodeTree ntree)
virtual

◆ 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

◆ 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 1016 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()

void blender::deg::DepsgraphNodeBuilder::build_object_data ( Object object)
virtual

◆ build_object_data_camera()

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

Definition at line 930 of file deg_builder_nodes.cc.

References build_camera(), camera, and Object::data.

Referenced by build_object_data().

◆ build_object_data_geometry()

void blender::deg::DepsgraphNodeBuilder::build_object_data_geometry ( Object object)
virtual

◆ build_object_data_geometry_datablock()

void blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock ( ID obdata)
virtual

◆ build_object_data_light()

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

Definition at line 936 of file deg_builder_nodes.cc.

References build_light(), Object::data, and lamp.

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()

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

◆ build_object_instance_collection()

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

◆ build_object_pointcache()

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

◆ build_object_transform()

void blender::deg::DepsgraphNodeBuilder::build_object_transform ( Object object)
virtual

◆ build_parameters()

void blender::deg::DepsgraphNodeBuilder::build_parameters ( ID id)
virtual

◆ build_particle_settings()

void blender::deg::DepsgraphNodeBuilder::build_particle_settings ( ParticleSettings part)
virtual

◆ 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 1339 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 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 132 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 1252 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, scene, blender::deg::OperationNode::set_as_entry(), blender::deg::OperationNode::set_as_exit(), and blender::deg::TRANSFORM.

Referenced by build_view_layer().

◆ build_scene_audio()

void blender::deg::DepsgraphNodeBuilder::build_scene_audio ( Scene scene)
virtual

◆ build_scene_compositor()

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

◆ build_scene_parameters()

void blender::deg::DepsgraphNodeBuilder::build_scene_parameters ( Scene scene)
virtual

◆ build_scene_render()

void blender::deg::DepsgraphNodeBuilder::build_scene_render ( Scene scene,
ViewLayer view_layer 
)
virtual

◆ build_scene_sequencer()

void blender::deg::DepsgraphNodeBuilder::build_scene_sequencer ( Scene scene)
virtual

◆ build_scene_speakers()

void blender::deg::DepsgraphNodeBuilder::build_scene_speakers ( Scene scene,
ViewLayer view_layer 
)
virtual

◆ build_shapekeys()

void blender::deg::DepsgraphNodeBuilder::build_shapekeys ( Key key)
virtual

◆ build_simulation()

void blender::deg::DepsgraphNodeBuilder::build_simulation ( Simulation simulation)
virtual

◆ build_sound()

void blender::deg::DepsgraphNodeBuilder::build_sound ( bSound sound)
virtual

◆ build_speaker()

void blender::deg::DepsgraphNodeBuilder::build_speaker ( Speaker speaker)
virtual

◆ build_splineik_pose()

void blender::deg::DepsgraphNodeBuilder::build_splineik_pose ( Object object,
bPoseChannel pchan,
bConstraint con 
)
virtual

◆ build_texture()

void blender::deg::DepsgraphNodeBuilder::build_texture ( Tex tex)
virtual

◆ 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)

Definition at line 336 of file deg_builder_nodes.cc.

References add_id_node(), id_node, LIB_TAG_COPIED_ON_WRITE, and ID::tag.

Referenced by build_mask(), and build_movieclip().

◆ 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 
)

Definition at line 275 of file deg_builder_nodes.cc.

References add_operation_node(), and find_operation_node().

Referenced by build_driver(), and build_driver_id_property().

◆ 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 290 of file deg_builder_nodes.cc.

References add_operation_node(), and find_operation_node().

◆ find_id_node()

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

◆ find_operation_node() [1/2]

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

◆ find_operation_node() [2/2]

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

Definition at line 325 of file deg_builder_nodes.cc.

References find_operation_node().

◆ 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()

template<typename T >
T* blender::deg::DepsgraphNodeBuilder::get_cow_datablock ( const T orig) const
inline

◆ get_cow_id()

ID * blender::deg::DepsgraphNodeBuilder::get_cow_id ( const ID id_orig) const

◆ get_orig_datablock()

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

Definition at line 80 of file deg_builder_nodes.h.

References T.

◆ has_operation_node()

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 
)

Definition at line 304 of file deg_builder_nodes.cc.

References find_operation_node().

Referenced by build_ik_pose(), and build_splineik_pose().

◆ modifier_walk()

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

Definition at line 2097 of file deg_builder_nodes.cc.

References data, blender::deg::DEG_ID_LINKED_INDIRECTLY, GS, id, ID_OB, ID::name, and user_data.

Referenced by build_object().

◆ tag_previously_tagged_nodes()

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

◆ update_invalid_cow_pointers()

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

Check for IDs that need to be flushed (COW-updated) because the depsgraph itself created or removed some of their evaluated dependencies.

Definition at line 451 of file deg_builder_nodes.cc.

References BKE_library_foreach_ID_link(), ELEM, blender::deg::foreach_id_cow_detect_need_for_update_callback(), blender::deg::DepsgraphBuilder::graph_, id_node, blender::deg::Depsgraph::id_nodes, ID_RECALC_COPY_ON_WRITE, IDWALK_IGNORE_EMBEDDED_ID, IDWALK_READONLY, and LIB_EMBEDDED_DATA.

Referenced by end_build().

Member Data Documentation

◆ built_map_

BuilderMap blender::deg::DepsgraphNodeBuilder::built_map_
protected

◆ collection_

Collection* blender::deg::DepsgraphNodeBuilder::collection_
protected

Definition at line 294 of file deg_builder_nodes.h.

Referenced by build_collection().

◆ id_info_hash_

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

Definition at line 301 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

Definition at line 298 of file deg_builder_nodes.h.

Referenced by build_collection(), and build_object_instance_collection().

◆ saved_entry_tags_

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

Definition at line 267 of file deg_builder_nodes.h.

Referenced by begin_build(), and tag_previously_tagged_nodes().

◆ scene_

Scene* blender::deg::DepsgraphNodeBuilder::scene_
protected

◆ view_layer_

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

Definition at line 290 of file deg_builder_nodes.h.

Referenced by build_scene_render(), and build_view_layer().

◆ view_layer_index_

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

Definition at line 291 of file deg_builder_nodes.h.

Referenced by build_object_flags(), and build_view_layer().


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