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 >
Relationadd_relation (const KeyFrom &key_from, const KeyTo &key_to, const char *description, int flags=0)
 
template<typename KeyTo >
Relationadd_relation (const TimeSourceKey &key_from, const KeyTo &key_to, const char *description, int flags=0)
 
template<typename KeyType >
Relationadd_node_handle_relation (const KeyType &key_from, const DepsNodeHandle *handle, const char *description, int flags=0)
 
template<typename KeyTo >
Relationadd_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 >
OperationNodefind_operation_node (const KeyType &key)
 
DepsgraphgetGraph ()
 
- 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

TimeSourceNodeget_node (const TimeSourceKey &key) const
 
ComponentNodeget_node (const ComponentKey &key) const
 
OperationNodeget_node (const OperationKey &key) const
 
Nodeget_node (const RNAPathKey &key)
 
OperationNodefind_node (const OperationKey &key) const
 
bool has_node (const OperationKey &key) const
 
Relationadd_time_relation (TimeSourceNode *timesrc, Node *node_to, const char *description, int flags=0)
 
void add_visibility_relation (ID *id_from, ID *id_to)
 
Relationadd_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
Mainbmain_
 
Depsgraphgraph_
 
DepsgraphBuilderCachecache_
 

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: