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

#include <deg_builder_relations.h>

Inheritance diagram for blender::deg::DepsgraphRelationBuilder:
blender::deg::DepsgraphBuilder

Public Member Functions

 DepsgraphRelationBuilder (Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache)
 
void begin_build ()
 
template<typename KeyFrom , typename KeyTo >
Relation * add_relation (const KeyFrom &key_from, const KeyTo &key_to, const char *description, int flags=0)
 
template<typename KeyTo >
Relation * add_relation (const TimeSourceKey &key_from, const KeyTo &key_to, const char *description, int flags=0)
 
template<typename KeyType >
Relation * add_node_handle_relation (const KeyType &key_from, const DepsNodeHandle *handle, const char *description, int flags=0)
 
template<typename KeyTo >
Relation * add_depends_on_transform_relation (ID *id, const KeyTo &key_to, const char *description, int flags=0)
 
void add_modifier_to_transform_relation (const DepsNodeHandle *handle, const char *description)
 
void add_customdata_mask (Object *object, const DEGCustomDataMeshMasks &customdata_masks)
 
void add_special_eval_flag (ID *id, uint32_t flag)
 
virtual void build_id (ID *id)
 
virtual void build_generic_id (ID *id)
 
virtual void build_idproperties (IDProperty *id_property)
 
virtual void build_scene_camera (Scene *scene)
 
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, Object *object, Collection *collection)
 
virtual void build_object (Object *object)
 
virtual void build_object_from_view_layer_base (Object *object)
 
virtual void build_object_layer_component_relations (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_parent (Object *object)
 
virtual void build_object_pointcache (Object *object)
 
virtual void build_constraints (ID *id, NodeType component_type, const char *component_subdata, ListBase *constraints, RootPChanMap *root_map)
 
virtual void build_animdata (ID *id)
 
virtual void build_animdata_curves (ID *id)
 
virtual void build_animdata_curves_targets (ID *id, ComponentKey &adt_key, OperationNode *operation_from, ListBase *curves)
 
virtual void build_animdata_nlastrip_targets (ID *id, ComponentKey &adt_key, OperationNode *operation_from, ListBase *strips)
 
virtual void build_animdata_drivers (ID *id)
 
virtual void build_animdata_force (ID *id)
 
virtual void build_animation_images (ID *id)
 
virtual void build_action (bAction *action)
 
virtual void build_driver (ID *id, FCurve *fcurve)
 
virtual void build_driver_data (ID *id, FCurve *fcurve)
 
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_world (World *world)
 
virtual void build_rigidbody (Scene *scene)
 
virtual void build_particle_systems (Object *object)
 
virtual void build_particle_settings (ParticleSettings *part)
 
virtual void build_particle_system_visualization_object (Object *object, ParticleSystem *psys, Object *draw_object)
 
virtual void build_ik_pose (Object *object, bPoseChannel *pchan, bConstraint *con, RootPChanMap *root_map)
 
virtual void build_splineik_pose (Object *object, bPoseChannel *pchan, bConstraint *con, RootPChanMap *root_map)
 
virtual void build_inter_ik_chains (Object *object, const OperationKey &solver_key, const bPoseChannel *rootchan, const RootPChanMap *root_map)
 
virtual void build_rig (Object *object)
 
virtual void build_shapekeys (Key *key)
 
virtual void build_armature (bArmature *armature)
 
virtual void build_armature_bones (ListBase *bones)
 
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_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)
 
virtual void build_nested_datablock (ID *owner, ID *id, bool flush_cow_changes)
 
virtual void build_nested_nodetree (ID *owner, bNodeTree *ntree)
 
virtual void build_nested_shapekey (ID *owner, Key *key)
 
void add_particle_collision_relations (const OperationKey &key, Object *object, Collection *collection, const char *name)
 
void add_particle_forcefield_relations (const OperationKey &key, Object *object, ParticleSystem *psys, EffectorWeights *eff, bool add_absorption, const char *name)
 
virtual void build_copy_on_write_relations ()
 
virtual void build_copy_on_write_relations (IDNode *id_node)
 
virtual void build_driver_relations ()
 
virtual void build_driver_relations (IDNode *id_node)
 
template<typename KeyType >
OperationNode * find_operation_node (const KeyType &key)
 
Depsgraph * getGraph ()
 
- 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

TimeSourceNode * get_node (const TimeSourceKey &key) const
 
ComponentNode * get_node (const ComponentKey &key) const
 
OperationNode * get_node (const OperationKey &key) const
 
Node * get_node (const RNAPathKey &key)
 
OperationNode * find_node (const OperationKey &key) const
 
bool has_node (const OperationKey &key) const
 
Relation * add_time_relation (TimeSourceNode *timesrc, Node *node_to, const char *description, int flags=0)
 
void add_visibility_relation (ID *id_from, ID *id_to)
 
Relation * add_operation_relation (OperationNode *node_from, OperationNode *node_to, const char *description, int flags=0)
 
template<typename KeyType >
DepsNodeHandle create_node_handle (const KeyType &key, const char *default_name="")
 
template<typename KeyFrom , typename KeyTo >
bool is_same_bone_dependency (const KeyFrom &key_from, const KeyTo &key_to)
 
template<typename KeyFrom , typename KeyTo >
bool is_same_nodetree_node_dependency (const KeyFrom &key_from, const KeyTo &key_to)
 
- Protected Member Functions inherited from blender::deg::DepsgraphBuilder
 DepsgraphBuilder (Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache)
 

Additional Inherited Members

- Protected Attributes inherited from blender::deg::DepsgraphBuilder
Main * bmain_
 
Depsgraph * graph_
 
DepsgraphBuilderCache * cache_
 

Detailed Description

Definition at line 147 of file deg_builder_relations.h.

Constructor & Destructor Documentation

◆ DepsgraphRelationBuilder()

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

Definition at line 235 of file deg_builder_relations.cc.

Member Function Documentation

◆ add_customdata_mask()

void blender::deg::DepsgraphRelationBuilder::add_customdata_mask ( Object *  object,
const DEGCustomDataMeshMasks &  customdata_masks 
)

◆ add_depends_on_transform_relation()

template<typename KeyTo >
Relation * blender::deg::DepsgraphRelationBuilder::add_depends_on_transform_relation ( ID *  id,
const KeyTo &  key_to,
const char *  description,
int  flags = 0 
)

◆ add_modifier_to_transform_relation()

void blender::deg::DepsgraphRelationBuilder::add_modifier_to_transform_relation ( const DepsNodeHandle *  handle,
const char *  description 
)

◆ add_node_handle_relation()

template<typename KeyType >
Relation * blender::deg::DepsgraphRelationBuilder::add_node_handle_relation ( const KeyType &  key_from,
const DepsNodeHandle *  handle,
const char *  description,
int  flags = 0 
)

◆ add_operation_relation()

Relation * blender::deg::DepsgraphRelationBuilder::add_operation_relation ( OperationNode *  node_from,
OperationNode *  node_to,
const char *  description,
int  flags = 0 
)
protected

◆ add_particle_collision_relations()

void blender::deg::DepsgraphRelationBuilder::add_particle_collision_relations ( const OperationKey &  key,
Object *  object,
Collection *  collection,
const char *  name 
)

◆ add_particle_forcefield_relations()

void blender::deg::DepsgraphRelationBuilder::add_particle_forcefield_relations ( const OperationKey &  key,
Object *  object,
ParticleSystem *  psys,
EffectorWeights *  eff,
bool  add_absorption,
const char *  name 
)

◆ add_relation() [1/2]

template<typename KeyFrom , typename KeyTo >
Relation * blender::deg::DepsgraphRelationBuilder::add_relation ( const KeyFrom &  key_from,
const KeyTo &  key_to,
const char *  description,
int  flags = 0 
)

Definition at line 28 of file deg_builder_relations_impl.h.

References add_operation_relation(), blender::deg::Node::get_entry_operation(), blender::deg::Node::get_exit_operation(), get_node(), blender::deg::BuilderStack::is_empty(), and blender::deg::BuilderStack::print_backtrace().

Referenced by add_depends_on_transform_relation(), add_particle_collision_relations(), add_particle_forcefield_relations(), add_visibility_relation(), build_action(), build_animation_images(), build_animdata(), build_animdata_curves(), build_animdata_curves_targets(), build_animdata_drivers(), build_animdata_force(), build_animdata_nlastrip_targets(), build_cachefile(), build_camera(), build_collection(), build_constraints(), build_copy_on_write_relations(), build_dimensions(), build_driver(), build_driver_data(), build_driver_id_property(), build_driver_variables(), build_ik_pose(), build_inter_ik_chains(), build_light(), build_mask(), build_material(), build_nested_datablock(), build_nodetree(), build_object(), build_object_data(), build_object_data_camera(), build_object_data_geometry(), build_object_data_geometry_datablock(), build_object_data_light(), build_object_data_lightprobe(), build_object_data_speaker(), build_object_from_view_layer_base(), build_object_layer_component_relations(), build_object_parent(), build_object_pointcache(), build_parameters(), build_particle_settings(), build_particle_system_visualization_object(), build_particle_systems(), build_rig(), build_rigidbody(), build_scene_audio(), build_scene_parameters(), build_scene_sequencer(), build_shapekeys(), build_simulation(), build_speaker(), build_splineik_pose(), build_texture(), build_view_layer(), build_world(), and DEG_add_object_pointcache_relation().

◆ add_relation() [2/2]

template<typename KeyTo >
Relation * blender::deg::DepsgraphRelationBuilder::add_relation ( const TimeSourceKey &  key_from,
const KeyTo &  key_to,
const char *  description,
int  flags = 0 
)

◆ add_special_eval_flag()

void blender::deg::DepsgraphRelationBuilder::add_special_eval_flag ( ID *  id,
uint32_t  flag 
)

◆ add_time_relation()

Relation * blender::deg::DepsgraphRelationBuilder::add_time_relation ( TimeSourceNode *  timesrc,
Node *  node_to,
const char *  description,
int  flags = 0 
)
protected

◆ add_visibility_relation()

void blender::deg::DepsgraphRelationBuilder::add_visibility_relation ( ID *  id_from,
ID *  id_to 
)
protected

Definition at line 359 of file deg_builder_relations.cc.

References add_relation(), and blender::deg::VISIBILITY.

Referenced by build_rig().

◆ begin_build()

void blender::deg::DepsgraphRelationBuilder::begin_build ( )

Definition at line 482 of file deg_builder_relations.cc.

◆ build_action()

void blender::deg::DepsgraphRelationBuilder::build_action ( bAction *  action)
virtual

◆ build_animation_images()

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

◆ build_animdata()

void blender::deg::DepsgraphRelationBuilder::build_animdata ( ID *  id)
virtual

◆ build_animdata_curves()

void blender::deg::DepsgraphRelationBuilder::build_animdata_curves ( ID *  id)
virtual

◆ build_animdata_curves_targets()

void blender::deg::DepsgraphRelationBuilder::build_animdata_curves_targets ( ID *  id,
ComponentKey &  adt_key,
OperationNode *  operation_from,
ListBase *  curves 
)
virtual

◆ build_animdata_drivers()

void blender::deg::DepsgraphRelationBuilder::build_animdata_drivers ( ID *  id)
virtual

◆ build_animdata_force()

void blender::deg::DepsgraphRelationBuilder::build_animdata_force ( ID *  id)
virtual

◆ build_animdata_nlastrip_targets()

void blender::deg::DepsgraphRelationBuilder::build_animdata_nlastrip_targets ( ID *  id,
ComponentKey &  adt_key,
OperationNode *  operation_from,
ListBase *  strips 
)
virtual

◆ build_armature()

void blender::deg::DepsgraphRelationBuilder::build_armature ( bArmature *  armature)
virtual

◆ build_armature_bones()

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

Definition at line 2470 of file deg_builder_relations.cc.

References build_idproperties(), and LISTBASE_FOREACH.

Referenced by build_armature().

◆ build_cachefile()

void blender::deg::DepsgraphRelationBuilder::build_cachefile ( CacheFile *  cache_file)
virtual

◆ build_camera()

void blender::deg::DepsgraphRelationBuilder::build_camera ( Camera *  camera)
virtual

◆ build_collection()

void blender::deg::DepsgraphRelationBuilder::build_collection ( LayerCollection *  from_layer_collection,
Object *  object,
Collection *  collection 
)
virtual

◆ build_constraints()

void blender::deg::DepsgraphRelationBuilder::build_constraints ( ID *  id,
NodeType  component_type,
const char *  component_subdata,
ListBase *  constraints,
RootPChanMap *  root_map 
)
virtual

Definition at line 1150 of file deg_builder_relations.cc.

References add_customdata_mask(), add_relation(), add_special_eval_flag(), BKE_constraint_target_uses_bbone(), BKE_constraint_targets_flush(), BKE_constraint_targets_get(), BKE_constraint_typeinfo_get(), BKE_shrinkwrap_needs_normals(), blender::deg::BONE, blender::deg::BONE_CONSTRAINTS, blender::deg::BONE_DONE, blender::deg::BONE_SEGMENTS, blender::deg::CACHE, Scene::camera, CD_MASK_CUSTOMLOOPNORMAL, CD_MASK_MDEFORMVERT, CD_MASK_NORMAL, blender::deg::DepsgraphBuilder::check_pchan_has_bbone_segments(), CON_SHRINKWRAP_TRACK_NORMAL, CONSTRAINT_TYPE_ARMATURE, CONSTRAINT_TYPE_CAMERASOLVER, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_LOCLIKE, CONSTRAINT_TYPE_OBJECTSOLVER, CONSTRAINT_TYPE_ROTLIKE, CONSTRAINT_TYPE_SHRINKWRAP, CONSTRAINT_TYPE_SIZELIKE, CONSTRAINT_TYPE_SPLINEIK, CONSTRAINT_TYPE_TRANSFORM_CACHE, CONSTRAINT_TYPE_TRANSLIKE, constraints, DAG_EVAL_NEED_SHRINKWRAP_BOUNDARY, data, ELEM, bShrinkwrapConstraint::flag, FOLLOWTRACK_ACTIVECLIP, blender::deg::GEOMETRY, Object::id, if(), LISTBASE_FOREACH, blender::deg::DEGCustomDataMeshMasks::MaskLoop(), blender::deg::DEGCustomDataMeshMasks::MaskVert(), MOD_SHRINKWRAP_NEAREST_VERTEX, MOD_SHRINKWRAP_TARGET_PROJECT, bConstraintTypeInfo::name, OB_ARMATURE, OB_LATTICE, OB_MESH, bShrinkwrapConstraint::shrinkMode, bShrinkwrapConstraint::shrinkType, blender::deg::BuilderStack::trace(), blender::deg::TRANSFORM, blender::deg::TRANSFORM_CONSTRAINTS, blender::deg::TRANSFORM_FINAL, blender::deg::TRANSFORM_LOCAL, and bConstraintTypeInfo::type.

Referenced by build_object(), and build_rig().

◆ build_copy_on_write_relations() [1/2]

void blender::deg::DepsgraphRelationBuilder::build_copy_on_write_relations ( )
virtual

◆ build_copy_on_write_relations() [2/2]

void blender::deg::DepsgraphRelationBuilder::build_copy_on_write_relations ( IDNode *  id_node)
virtual

◆ build_dimensions()

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

◆ build_driver()

void blender::deg::DepsgraphRelationBuilder::build_driver ( ID *  id,
FCurve *  fcurve 
)
virtual

◆ build_driver_data()

void blender::deg::DepsgraphRelationBuilder::build_driver_data ( ID *  id,
FCurve *  fcurve 
)
virtual

◆ build_driver_id_property()

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

◆ build_driver_relations() [1/2]

void blender::deg::DepsgraphRelationBuilder::build_driver_relations ( )
virtual

◆ build_driver_relations() [2/2]

void blender::deg::DepsgraphRelationBuilder::build_driver_relations ( IDNode *  id_node)
virtual

◆ build_driver_variables()

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

◆ build_freestyle_lineset()

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

◆ build_freestyle_linestyle()

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

◆ build_generic_id()

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

◆ build_id()

void blender::deg::DepsgraphRelationBuilder::build_id ( ID *  id)
virtual

◆ build_idproperties()

void blender::deg::DepsgraphRelationBuilder::build_idproperties ( IDProperty *  id_property)
virtual

◆ build_ik_pose()

void blender::deg::DepsgraphRelationBuilder::build_ik_pose ( Object *  object,
bPoseChannel *  pchan,
bConstraint *  con,
RootPChanMap *  root_map 
)
virtual

◆ build_image()

void blender::deg::DepsgraphRelationBuilder::build_image ( Image *  image)
virtual

◆ build_inter_ik_chains()

void blender::deg::DepsgraphRelationBuilder::build_inter_ik_chains ( Object *  object,
const OperationKey &  solver_key,
const bPoseChannel *  rootchan,
const RootPChanMap *  root_map 
)
virtual

◆ build_layer_collections()

void blender::deg::DepsgraphRelationBuilder::build_layer_collections ( ListBase *  lb)
virtual

◆ build_light()

void blender::deg::DepsgraphRelationBuilder::build_light ( Light *  lamp)
virtual

◆ build_lightprobe()

void blender::deg::DepsgraphRelationBuilder::build_lightprobe ( LightProbe *  probe)
virtual

◆ build_mask()

void blender::deg::DepsgraphRelationBuilder::build_mask ( Mask *  mask)
virtual

◆ build_material()

void blender::deg::DepsgraphRelationBuilder::build_material ( Material *  ma)
virtual

◆ build_materials()

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

Definition at line 2708 of file deg_builder_relations.cc.

References build_material(), and materials.

Referenced by build_object_data(), and build_object_data_geometry().

◆ build_movieclip()

void blender::deg::DepsgraphRelationBuilder::build_movieclip ( MovieClip *  clip)
virtual

◆ build_nested_datablock()

void blender::deg::DepsgraphRelationBuilder::build_nested_datablock ( ID *  owner,
ID *  id,
bool  flush_cow_changes 
)
virtual

Nested datablocks (node trees, shape keys) requires special relation to ensure owner's datablock remapping happens after node tree itself is ready.

This is similar to what happens in ntree_hack_remap_pointers().

Definition at line 3059 of file deg_builder_relations.cc.

References add_relation(), blender::deg::COPY_ON_WRITE, and blender::deg::RELATION_FLAG_NO_FLUSH.

Referenced by build_nested_nodetree(), and build_nested_shapekey().

◆ build_nested_nodetree()

void blender::deg::DepsgraphRelationBuilder::build_nested_nodetree ( ID *  owner,
bNodeTree *  ntree 
)
virtual

◆ build_nested_shapekey()

void blender::deg::DepsgraphRelationBuilder::build_nested_shapekey ( ID *  owner,
Key *  key 
)
virtual

Definition at line 3082 of file deg_builder_relations.cc.

References build_nested_datablock(), and Key::id.

Referenced by build_object_data().

◆ build_nodetree()

void blender::deg::DepsgraphRelationBuilder::build_nodetree ( bNodeTree *  ntree)
virtual

◆ build_nodetree_socket()

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

◆ build_object()

void blender::deg::DepsgraphRelationBuilder::build_object ( Object *  object)
virtual

Definition at line 688 of file deg_builder_relations.cc.

References add_relation(), BKE_constraints_id_loop(), BKE_gpencil_modifiers_foreach_ID_link(), BKE_modifiers_foreach_ID_link(), BKE_shaderfx_foreach_ID_link(), build_animdata(), build_collection(), build_constraints(), build_idproperties(), build_object_data(), build_object_layer_component_relations(), build_object_parent(), build_object_pointcache(), build_parameters(), build_particle_systems(), build_texture(), blender::deg::BuilderMap::checkIsBuiltAndTag(), Object::constraints, data, ListBase::first, PartDeflect::forcefield, Object::greasepencil_modifiers, Object::id, Object::instance_collection, Object::modifiers, blender::deg::OBJECT_FROM_LAYER, Object::parent, Object::particlesystem, Object::pd, PFIELD_TEXTURE, ID::properties, Object::shader_fx, blender::deg::SYNCHRONIZATION, blender::deg::SYNCHRONIZE_TO_ORIGINAL, PartDeflect::tex, blender::deg::BuilderStack::trace(), blender::deg::TRANSFORM, blender::deg::TRANSFORM_CONSTRAINTS, blender::deg::TRANSFORM_EVAL, blender::deg::TRANSFORM_FINAL, blender::deg::TRANSFORM_INIT, blender::deg::TRANSFORM_LOCAL, blender::deg::TRANSFORM_PARENT, blender::deg::TRANSFORM_SIMULATION_INIT, and blender::deg::VISIBILITY.

Referenced by build_camera(), build_collection(), build_id(), build_nodetree(), build_nodetree_socket(), build_object_data_geometry_datablock(), build_object_from_view_layer_base(), build_particle_systems(), build_rig(), build_scene_camera(), build_scene_render(), and build_scene_speakers().

◆ build_object_data()

void blender::deg::DepsgraphRelationBuilder::build_object_data ( Object *  object)
virtual

◆ build_object_data_camera()

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

◆ build_object_data_geometry()

void blender::deg::DepsgraphRelationBuilder::build_object_data_geometry ( Object *  object)
virtual

ObData Geometry Evaluation

The evaluation of geometry on objects is as follows:

  • The actual evaluated of the derived geometry (e.g. Mesh, DispList) occurs in the Geometry component of the object which references this. This includes modifiers, and the temporary "ubereval" for geometry. Therefore, each user of a piece of shared geometry data ends up evaluating its own version of the stuff, complete with whatever modifiers it may use.
  • The data-blocks for the geometry data - "obdata" (e.g. ID_ME, ID_CU_LEGACY, ID_LT.) are used for 1) calculating the bounding boxes of the geometry data, 2) aggregating inward links from other objects (e.g. for text on curve) and also for the links coming from the shapekey data-blocks
  • Animation/Drivers affecting the parameters of the geometry are made to trigger updates on the obdata geometry component, which then trigger downstream re-evaluation of the individual instances of this geometry.

Definition at line 2185 of file deg_builder_relations.cc.

References AnimData::action, add_relation(), Key::adt, blender::deg::ANIMATION, blender::deg::BATCH_CACHE, BKE_gpencil_modifier_depends_ontime(), BKE_gpencil_modifier_get_info(), BKE_key_from_object(), BKE_mball_basis_find(), BKE_modifier_depends_ontime(), BKE_modifier_get_info(), BKE_shaderfx_depends_ontime(), BKE_shaderfx_get_info(), build_dimensions(), build_materials(), build_object_data_geometry_datablock(), create_node_handle(), Object::data, ELEM, ListBase::first, blender::deg::GEOMETRY, blender::deg::GEOMETRY_EVAL, blender::deg::GEOMETRY_EVAL_INIT, blender::deg::GEOMETRY_SELECT_UPDATE, blender::deg::DepsgraphBuilder::graph_, Object::greasepencil_modifiers, Key::id, Object::id, Scene::id, LISTBASE_FOREACH, Object::mat, blender::deg::Depsgraph::mode, Object::modifiers, AnimData::nla_tracks, ModifierUpdateDepsgraphContext::node, OB_ARMATURE, OB_CURVES_LEGACY, OB_LATTICE, OB_MBALL, OB_MESH, ModifierUpdateDepsgraphContext::object, blender::deg::PARAMETERS, blender::deg::RELATION_FLAG_NO_FLUSH, ModifierUpdateDepsgraphContext::scene, blender::deg::SCENE_EVAL, Object::shader_fx, blender::deg::SYNCHRONIZATION, blender::deg::SYNCHRONIZE_TO_ORIGINAL, Object::totcol, blender::deg::BuilderStack::trace(), blender::deg::TRANSFORM, Object::type, GpencilModifierTypeInfo::updateDepsgraph, ModifierTypeInfo::updateDepsgraph, and ShaderFxTypeInfo::updateDepsgraph.

Referenced by build_object_data().

◆ build_object_data_geometry_datablock()

void blender::deg::DepsgraphRelationBuilder::build_object_data_geometry_datablock ( ID *  obdata)
virtual

◆ build_object_data_light()

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

◆ build_object_data_lightprobe()

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

◆ build_object_data_speaker()

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

◆ build_object_from_view_layer_base()

void blender::deg::DepsgraphRelationBuilder::build_object_from_view_layer_base ( Object *  object)
virtual

◆ build_object_layer_component_relations()

void blender::deg::DepsgraphRelationBuilder::build_object_layer_component_relations ( Object *  object)
virtual

◆ build_object_parent()

void blender::deg::DepsgraphRelationBuilder::build_object_parent ( Object *  object)
virtual

◆ build_object_pointcache()

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

◆ build_parameters()

void blender::deg::DepsgraphRelationBuilder::build_parameters ( ID *  id)
virtual

◆ build_particle_settings()

void blender::deg::DepsgraphRelationBuilder::build_particle_settings ( ParticleSettings *  part)
virtual

◆ build_particle_system_visualization_object()

void blender::deg::DepsgraphRelationBuilder::build_particle_system_visualization_object ( Object *  object,
ParticleSystem *  psys,
Object *  draw_object 
)
virtual

◆ build_particle_systems()

void blender::deg::DepsgraphRelationBuilder::build_particle_systems ( Object *  object)
virtual

◆ build_rig()

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

◆ build_rigidbody()

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

◆ build_scene_audio()

void blender::deg::DepsgraphRelationBuilder::build_scene_audio ( Scene *  scene)
virtual

◆ build_scene_camera()

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

◆ build_scene_compositor()

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

◆ build_scene_parameters()

void blender::deg::DepsgraphRelationBuilder::build_scene_parameters ( Scene *  scene)
virtual

◆ build_scene_render()

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

◆ build_scene_sequencer()

void blender::deg::DepsgraphRelationBuilder::build_scene_sequencer ( Scene *  scene)
virtual

◆ build_scene_speakers()

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

◆ build_shapekeys()

void blender::deg::DepsgraphRelationBuilder::build_shapekeys ( Key *  key)
virtual

◆ build_simulation()

void blender::deg::DepsgraphRelationBuilder::build_simulation ( Simulation *  simulation)
virtual

◆ build_sound()

void blender::deg::DepsgraphRelationBuilder::build_sound ( bSound *  sound)
virtual

◆ build_speaker()

void blender::deg::DepsgraphRelationBuilder::build_speaker ( Speaker *  speaker)
virtual

◆ build_splineik_pose()

void blender::deg::DepsgraphRelationBuilder::build_splineik_pose ( Object *  object,
bPoseChannel *  pchan,
bConstraint *  con,
RootPChanMap *  root_map 
)
virtual

◆ build_texture()

void blender::deg::DepsgraphRelationBuilder::build_texture ( Tex *  tex)
virtual

◆ build_vfont()

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

◆ build_view_layer()

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

◆ build_world()

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

◆ create_node_handle()

template<typename KeyType >
DepsNodeHandle blender::deg::DepsgraphRelationBuilder::create_node_handle ( const KeyType &  key,
const char *  default_name = "" 
)
protected

Definition at line 139 of file deg_builder_relations_impl.h.

References get_node().

Referenced by build_object_data_geometry().

◆ find_node()

OperationNode * blender::deg::DepsgraphRelationBuilder::find_node ( const OperationKey &  key) const
protected

◆ find_operation_node()

template<typename KeyType >
OperationNode * blender::deg::DepsgraphRelationBuilder::find_operation_node ( const KeyType &  key)

Definition at line 21 of file deg_builder_relations_impl.h.

References get_node(), and node.

◆ get_node() [1/4]

ComponentNode * blender::deg::DepsgraphRelationBuilder::get_node ( const ComponentKey &  key) const
protected

◆ get_node() [2/4]

OperationNode * blender::deg::DepsgraphRelationBuilder::get_node ( const OperationKey &  key) const
protected

◆ get_node() [3/4]

Node * blender::deg::DepsgraphRelationBuilder::get_node ( const RNAPathKey &  key)
protected

◆ get_node() [4/4]

TimeSourceNode * blender::deg::DepsgraphRelationBuilder::get_node ( const TimeSourceKey &  key) const
protected

◆ getGraph()

Depsgraph * blender::deg::DepsgraphRelationBuilder::getGraph ( )

◆ has_node()

bool blender::deg::DepsgraphRelationBuilder::has_node ( const OperationKey &  key) const
protected

Definition at line 296 of file deg_builder_relations.cc.

References find_node().

Referenced by build_object_layer_component_relations().

◆ is_same_bone_dependency()

template<typename KeyFrom , typename KeyTo >
bool blender::deg::DepsgraphRelationBuilder::is_same_bone_dependency ( const KeyFrom &  key_from,
const KeyTo &  key_to 
)
protected

◆ is_same_nodetree_node_dependency()

template<typename KeyFrom , typename KeyTo >
bool blender::deg::DepsgraphRelationBuilder::is_same_nodetree_node_dependency ( const KeyFrom &  key_from,
const KeyTo &  key_to 
)
protected

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