Blender V2.61 - r43446
|
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "MEM_guardedalloc.h"
#include "BLI_winstuff.h"
#include "BLI_utildefines.h"
#include "BLI_listbase.h"
#include "BLI_ghash.h"
#include "DNA_anim_types.h"
#include "DNA_camera_types.h"
#include "DNA_group_types.h"
#include "DNA_lattice_types.h"
#include "DNA_key_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_windowmanager_types.h"
#include "DNA_movieclip_types.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
#include "BKE_effect.h"
#include "BKE_fcurve.h"
#include "BKE_global.h"
#include "BKE_group.h"
#include "BKE_key.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_mball.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_particle.h"
#include "BKE_pointcache.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_utildefines.h"
#include "depsgraph_private.h"
Go to the source code of this file.
Functions | |
DagNodeQueue * | queue_create (int slots) |
void | queue_raz (DagNodeQueue *queue) |
void | queue_delete (DagNodeQueue *queue) |
void | push_queue (DagNodeQueue *queue, DagNode *node) |
void | push_stack (DagNodeQueue *queue, DagNode *node) |
DagNode * | pop_queue (DagNodeQueue *queue) |
void * | pop_ob_queue (struct DagNodeQueue *queue) |
DagNode * | get_top_node_queue (DagNodeQueue *queue) |
int | queue_count (struct DagNodeQueue *queue) |
DagForest * | dag_init (void) |
static void | dag_add_driver_relation (AnimData *adt, DagForest *dag, DagNode *node, int isdata) |
static void | dag_add_collision_field_relation (DagForest *dag, Scene *scene, Object *ob, DagNode *node) |
static void | build_dag_object (DagForest *dag, DagNode *scenenode, Scene *scene, Object *ob, int mask) |
struct DagForest * | build_dag (Main *bmain, Scene *sce, short mask) |
void | free_forest (DagForest *Dag) |
DagNode * | dag_find_node (DagForest *forest, void *fob) |
DagNode * | dag_add_node (DagForest *forest, void *fob) |
DagNode * | dag_get_node (DagForest *forest, void *fob) |
DagNode * | dag_get_sub_node (DagForest *forest, void *fob) |
static void | dag_add_parent_relation (DagForest *UNUSED(forest), DagNode *fob1, DagNode *fob2, short rel, const char *name) |
void | dag_add_relation (DagForest *forest, DagNode *fob1, DagNode *fob2, short rel, const char *name) |
static const char * | dag_node_name (DagNode *node) |
static void | dag_node_print_dependencies (DagNode *node) |
static int | dag_node_print_dependency_recurs (DagNode *node, DagNode *endnode) |
static void | dag_node_print_dependency_cycle (DagForest *dag, DagNode *startnode, DagNode *endnode, const char *name) |
static int | dag_node_recurs_level (DagNode *node, int level) |
static void | dag_check_cycle (DagForest *dag) |
DagForest * | getMainDag (void) |
void | setMainDag (DagForest *dag) |
void | graph_bfs (void) |
int | pre_and_post_BFS (DagForest *dag, short mask, graph_action_func pre_func, graph_action_func post_func, void **data) |
int | pre_and_post_source_BFS (DagForest *dag, short mask, DagNode *source, graph_action_func pre_func, graph_action_func post_func, void **data) |
DagNodeQueue * | graph_dfs (void) |
int | pre_and_post_DFS (DagForest *dag, short mask, graph_action_func pre_func, graph_action_func post_func, void **data) |
int | pre_and_post_source_DFS (DagForest *dag, short mask, DagNode *source, graph_action_func pre_func, graph_action_func post_func, void **data) |
struct DagNodeQueue * | get_obparents (struct DagForest *dag, void *ob) |
struct DagNodeQueue * | get_first_ancestors (struct DagForest *dag, void *ob) |
struct DagNodeQueue * | get_all_childs (struct DagForest *dag, void *ob) |
short | are_obs_related (struct DagForest *dag, void *ob1, void *ob2) |
int | is_acyclic (DagForest *dag) |
void | set_node_xy (DagNode *node, float x, float y) |
void | graph_print_queue (DagNodeQueue *nqueue) |
void | graph_print_queue_dist (DagNodeQueue *nqueue) |
void | graph_print_adj_list (void) |
void | DAG_editors_update_cb (void(*id_func)(Main *bmain, ID *id), void(*scene_func)(Main *bmain, Scene *scene, int updated)) |
static void | dag_editors_id_update (Main *bmain, ID *id) |
static void | dag_editors_scene_update (Main *bmain, Scene *scene, int updated) |
static void | scene_sort_groups (Main *bmain, Scene *sce) |
void | DAG_scene_sort (Main *bmain, Scene *sce) |
static void | lib_id_recalc_tag (Main *bmain, ID *id) |
static void | lib_id_recalc_data_tag (Main *bmain, ID *id) |
static void | flush_update_node (DagNode *node, unsigned int layer, int curtime) |
static unsigned int | flush_layer_node (Scene *sce, DagNode *node, int curtime) |
static void | flush_pointcache_reset (Scene *scene, DagNode *node, int curtime, int reset) |
static void | dag_scene_flush_layers (Scene *sce, int lay) |
static void | dag_tag_renderlayers (Scene *sce, unsigned int lay) |
void | DAG_scene_flush_update (Main *bmain, Scene *sce, unsigned int lay, const short time) |
static int | object_modifiers_use_time (Object *ob) |
static short | animdata_use_time (AnimData *adt) |
static void | dag_object_time_update_flags (Object *ob) |
void | DAG_scene_update_flags (Main *bmain, Scene *scene, unsigned int lay, const short do_time) |
static void | dag_current_scene_layers (Main *bmain, Scene **sce, unsigned int *lay) |
void | DAG_ids_flush_update (Main *bmain, int time) |
void | DAG_on_visible_update (Main *bmain, const short do_time) |
static void | dag_id_flush_update__isDependentTexture (void *userData, Object *UNUSED(ob), ID **idpoin) |
static void | dag_id_flush_update (Scene *sce, ID *id) |
void | DAG_ids_flush_tagged (Main *bmain) |
void | DAG_ids_check_recalc (Main *bmain, Scene *scene, int time) |
void | DAG_ids_clear_recalc (Main *bmain) |
void | DAG_id_tag_update (ID *id, short flag) |
void | DAG_id_type_tag (struct Main *bmain, short idtype) |
int | DAG_id_type_tagged (Main *bmain, short idtype) |
void | DAG_pose_sort (Object *ob) |
void | DAG_print_dependencies (Main *bmain, Scene *scene, Object *ob) |
Variables | |
static int | ugly_hack_sorry = 1 |
static int | dag_print_dependencies = 0 |
static DagForest * | MainDag = NULL |
static void(* | EditorsUpdateIDCb )(Main *bmain, ID *id) = NULL |
static void(* | EditorsUpdateSceneCb )(Main *bmain, Scene *scene, int updated) = NULL |
Definition in file depsgraph.c.
static short animdata_use_time | ( | AnimData * | adt | ) | [static] |
Definition at line 2131 of file depsgraph.c.
References AnimData::action, bAction::curves, AnimData::drivers, ListBase::first, NlaTrack::next, AnimData::nla_tracks, NULL, and NlaTrack::strips.
Referenced by dag_object_time_update_flags().
short are_obs_related | ( | struct DagForest * | dag, |
void * | ob1, | ||
void * | ob2 | ||
) |
Definition at line 1569 of file depsgraph.c.
References DagNode::child, dag_find_node(), DAG_NO_RELATION, DagAdjList::next, DagAdjList::node, NULL, DagNode::ob, and DagNode::type.
Definition at line 712 of file depsgraph.c.
References Scene::base, build_dag_object(), DagNode::child, DagNode::color, DagNode::customdata_mask, dag_add_node(), dag_init(), Scene::dagisvalid, DagForest::DagNode, Object::dup_group, ListBase::first, ID::flag, free_forest(), Group::gobject, Main::group, Group::id, ID_OB, LIB_DOIT, DagNode::next, GroupObject::next, DagAdjList::next, Base::next, ID::next, DagAdjList::node, DagNode::ob, GroupObject::ob, Base::object, Object::proxy, Scene::theDag, DagNode::type, and DagAdjList::type.
Referenced by DAG_scene_sort().
static void build_dag_object | ( | DagForest * | dag, |
DagNode * | scenenode, | ||
Scene * | scene, | ||
Object * | ob, | ||
int | mask | ||
) | [static] |
Definition at line 360 of file depsgraph.c.
References Key::adt, Object::adt, DagNode::ancestor_count, Curve::bevobj, BKE_animdata_from_id(), BLI_findlink(), ParticleSettings::boids, Scene::camera, CD_MASK_MDEFORMVERT, CD_MASK_ORIGINDEX, bPose::chanbase, bFollowTrackConstraint::clip, constraint_get_typeinfo(), CONSTRAINT_TYPE_CAMERASOLVER, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_OBJECTSOLVER, CONSTRAINT_TYPE_SPLINEIK, bPoseChannel::constraints, Object::constraints, CU_PATH, DagNode::customdata_mask, dag_add_collision_field_relation(), dag_add_driver_relation(), dag_add_relation(), dag_get_node(), DAG_RL_DATA, DAG_RL_DATA_DATA, DAG_RL_DATA_OB, DAG_RL_OB_DATA, DAG_RL_OB_OB, DAG_RL_SCENE, Object::data, data, bConstraint::data, bFollowTrackConstraint::depth_ob, Camera::dof_ob, Object::dup_group, ParticleSettings::dup_group, ParticleSettings::dup_ob, eBoidRuleType_Avoid, eBoidRuleType_FollowLeader, ParticleSettings::effector_weights, ELEM, ELEM3, find_basis_mball(), ListBase::first, DagNode::first_ancestor, bFollowTrackConstraint::flag, Curve::flag, bConstraintTypeInfo::flush_constraint_targets, FOLLOWTRACK_ACTIVECLIP, bConstraintTypeInfo::get_constraint_targets, Group::gobject, if(), bActionStrip::modifiers, Object::modifiers, modifiers_isClothEnabled(), modifiers_isSoftbodyEnabled(), modifierType_getInfo(), mti, bConstraintTypeInfo::name, bPoseChannel::next, ParticleTarget::next, ModifierData::next, GroupObject::next, bConstraint::next, ParticleSystem::next, bConstraintTarget::next, bActionModifier::next, bActionStrip::next, BoidState::next, BoidRule::next, EffectorCache::next, NULL, EffectorCache::ob, GroupObject::ob, bActionModifier::ob, ParticleTarget::ob, OB_ARMATURE, OB_CAMERA, OB_CURVE, OB_DUPLI, OB_DUPLIGROUP, OB_DUPLIVERTS, OB_FONT, ob_get_key(), OB_LATTICE, OB_MBALL, OB_MESH, PARBONE, Object::parent, PARSKEL, ParticleSystem::part, PART_DRAW_GR, PART_DRAW_OB, PART_PHYS_BOIDS, PART_PHYS_KEYED, Object::particlesystem, Object::partype, PARVERT1, PARVERT3, pdEndEffectors(), pdInitEffectors(), ParticleSettings::phystype, Object::pose, Object::proxy, ParticleTarget::psys, EffectorCache::psys, psys_check_enabled(), ParticleSettings::ren_as, BoidState::rules, state, BoidSettings::states, io_export_cycles_xml::strip(), bConstraintTarget::subtarget, Curve::taperobj, bConstraintTarget::tar, ParticleSystem::targets, Curve::textoncurve, bFollowTrackConstraint::track, Object::transflag, bConstraint::type, Object::type, ModifierData::type, BoidRule::type, bConstraintTypeInfo::type, and ModifierTypeInfo::updateDepgraph.
Referenced by build_dag().
static void dag_add_collision_field_relation | ( | DagForest * | dag, |
Scene * | scene, | ||
Object * | ob, | ||
DagNode * | node | ||
) | [static] |
Definition at line 342 of file depsgraph.c.
References Scene::base, dag_add_relation(), dag_get_node(), DAG_RL_DATA_DATA, DAG_RL_OB_DATA, PartDeflect::deflect, ListBase::first, PartDeflect::forcefield, Object::lay, Base::lay, Base::next, Base::object, and Object::pd.
Referenced by build_dag_object().
static void dag_add_driver_relation | ( | AnimData * | adt, |
DagForest * | dag, | ||
DagNode * | node, | ||
int | isdata | ||
) | [static] |
Definition at line 298 of file depsgraph.c.
References dag_add_relation(), dag_get_node(), DAG_RL_DATA_DATA, DAG_RL_DATA_OB, DAG_RL_OB_DATA, DAG_RL_OB_OB, FCurve::driver, DRIVER_TARGETS_LOOPER_END, DRIVER_TARGETS_USED_LOOPER, AnimData::drivers, DTAR_FLAG_STRUCT_REF, ListBase::first, GS, Object::id, ID_OB, FCurve::next, DriverVar::next, OB_ARMATURE, FCurve::rna_path, Object::type, and ChannelDriver::variables.
Referenced by build_dag_object().
Definition at line 840 of file depsgraph.c.
References BLI_ghash_insert(), BLI_ghash_new(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), DagNode::color, DAG_WHITE, DagForest::DagNode, ListBase::first, GS, ListBase::last, MEM_callocN(), DagForest::nodeHash, DagForest::numNodes, DagNode::ob, DagNode::type, and ugly_hack_sorry.
Referenced by build_dag(), dag_get_node(), dag_get_sub_node(), and DAG_pose_sort().
static void dag_add_parent_relation | ( | DagForest * | UNUSEDforest, |
DagNode * | fob1, | ||
DagNode * | fob2, | ||
short | rel, | ||
const char * | name | ||
) | [static] |
Definition at line 908 of file depsgraph.c.
References DagAdjList::count, MEM_mallocN(), DagAdjList::name, DagAdjList::next, DagAdjList::node, DagNode::parent, and DagAdjList::type.
Referenced by dag_add_relation().
void dag_add_relation | ( | DagForest * | forest, |
DagNode * | fob1, | ||
DagNode * | fob2, | ||
short | rel, | ||
const char * | name | ||
) |
Definition at line 930 of file depsgraph.c.
References DagNode::child, DagAdjList::count, dag_add_parent_relation(), MEM_mallocN(), DagAdjList::name, DagAdjList::next, DagAdjList::node, and DagAdjList::type.
Referenced by build_dag_object(), dag_add_collision_field_relation(), dag_add_driver_relation(), DAG_pose_sort(), and updateDepgraph().
static void dag_check_cycle | ( | DagForest * | dag | ) | [static] |
Definition at line 1030 of file depsgraph.c.
References DagNode::ancestor_count, DagNode::color, dag_node_print_dependencies(), dag_node_print_dependency_cycle(), dag_node_recurs_level(), dag_print_dependencies, DAG_WHITE, DagForest::DagNode, ListBase::first, MEM_freeN(), DagAdjList::name, DagNode::next, DagAdjList::next, DagAdjList::node, DagNode::ob, and DagNode::parent.
Referenced by DAG_pose_sort(), and DAG_scene_sort().
Definition at line 2359 of file depsgraph.c.
References BKE_screen_visible_layers(), ListBase::first, wmWindow::next, NULL, Main::scene, bScreen::scene, wmWindow::screen, wmWindowManager::windows, and Main::wm.
Referenced by DAG_ids_flush_tagged(), DAG_ids_flush_update(), and DAG_on_visible_update().
Definition at line 1664 of file depsgraph.c.
References EditorsUpdateIDCb.
Referenced by dag_id_flush_update().
Definition at line 1670 of file depsgraph.c.
References EditorsUpdateSceneCb.
Referenced by DAG_ids_check_recalc().
void DAG_editors_update_cb | ( | void(*)(Main *bmain, ID *id) | id_func, |
void(*)(Main *bmain, Scene *scene, int updated) | scene_func | ||
) |
Definition at line 1658 of file depsgraph.c.
References EditorsUpdateIDCb, and EditorsUpdateSceneCb.
Definition at line 828 of file depsgraph.c.
References BLI_ghash_lookup(), DagForest::nodeHash, and NULL.
Referenced by are_obs_related(), dag_get_node(), dag_get_sub_node(), get_all_childs(), get_first_ancestors(), and get_obparents().
Definition at line 868 of file depsgraph.c.
References dag_add_node(), and dag_find_node().
Referenced by build_dag_object(), dag_add_collision_field_relation(), dag_add_driver_relation(), DAG_on_visible_update(), DAG_pose_sort(), dag_scene_flush_layers(), and updateDepgraph().
Definition at line 880 of file depsgraph.c.
References dag_add_node(), dag_find_node(), DagForest::DagNode, ListBase::first, MEM_freeN(), DagAdjList::next, DagAdjList::node, and NULL.
Definition at line 2466 of file depsgraph.c.
References BKE_ptcache_object_reset(), Scene::camera, Scene::clip, constraint_get_typeinfo(), CONSTRAINT_TYPE_CAMERASOLVER, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_OBJECTSOLVER, Object::constraints, dag_editors_id_update(), dag_id_flush_update__isDependentTexture(), Object::data, data, ELEM3, ELEM8, ListBase::first, Object::flag, G, GS, Object::id, bNode::id, ParticleSettings::id, MovieClip::id, ID_AR, ID_CA, ID_CU, ID_KE, ID_LA, ID_LT, ID_MB, ID_MC, ID_ME, ID_OB, ID_PA, ID_SPK, ID_TE, lib_id_recalc_data_tag(), lib_id_recalc_tag(), MTex::mapto, MAX_MTEX, modifiers_foreachIDLink(), ParticleSettings::mtex, ID::name, bConstraint::next, ParticleSystem::next, bNode::next, ID::next, bNodeTree::nodes, Scene::nodetree, nodeUpdate(), NULL, ob_get_key(), OB_RECALC_DATA, OB_RECALC_OB, Main::object, object_get_movieclip(), PAMAP_CHILD, PAMAP_INIT, ParticleSystem::part, Object::particlesystem, PSYS_RECALC_CHILD, PSYS_RECALC_RESET, PTCACHE_RESET_DEPSGRAPH, Object::recalc, ParticleSystem::recalc, MTex::tex, bConstraintTypeInfo::type, and ID::us.
Referenced by DAG_ids_flush_tagged().
static void dag_id_flush_update__isDependentTexture | ( | void * | userData, |
Object * | UNUSEDob, | ||
ID ** | idpoin | ||
) | [static] |
Definition at line 2456 of file depsgraph.c.
References data, GS, and ID_TE.
Referenced by dag_id_flush_update().
void DAG_id_tag_update | ( | ID * | id, |
short | flag | ||
) |
Definition at line 2687 of file depsgraph.c.
References ListBase::first, G, GS, ParticleSettings::id, Object::id, ID_OB, ID_PA, lib_id_recalc_data_tag(), lib_id_recalc_tag(), ID::name, ParticleSystem::next, ID::next, NULL, OB_RECALC_ALL, OB_RECALC_DATA, OB_RECALC_OB, Main::object, ParticleSystem::part, Object::particlesystem, PSYS_RECALC, ParticleSystem::recalc, and Object::recalc.
Referenced by addedgeface_mesh_exec(), addvert_Nurb(), ANIM_id_update(), ANIM_list_elem_update(), apply_objects_internal(), armature_autoside_names_exec(), armature_flip_names_exec(), average_islands_scale_exec(), beautify_fill_exec(), BKE_ptcache_set_continue_physics(), blend_from_shape_exec(), brush_edit_apply(), clear_edited_exec(), clear_fgon_exec(), clear_solution_exec(), clear_tilt_exec(), clip_delete_track(), connect_hair_exec(), constraint_add_exec(), convert_exec(), createRepresentation(), cube_project_exec(), curvesurf_prim_add(), cylinder_project_exec(), delete_exec(), delete_mesh_exec(), delete_metaelems_exec(), disable_markers_exec(), disconnect_hair_exec(), do_constraint_panels(), do_set_scale(), do_view3d_region_buttons(), do_view3d_vgroup_buttons(), dupli_extrude_cursor(), duplicate_exec(), duplicate_metaelems_exec(), ED_armature_from_edit(), ED_do_pose_selectbuffer(), ED_mesh_color_add(), ED_mesh_color_remove(), ED_mesh_color_remove_named(), ED_mesh_update(), ED_mesh_uv_texture_add(), ED_mesh_uv_texture_remove(), ED_node_changed_update(), ED_object_constraint_update(), ED_object_enter_editmode(), ED_object_exit_editmode(), ED_object_modifier_add(), ED_object_modifier_clear(), ED_object_modifier_remove(), ED_object_shape_key_remove(), ED_uvedit_assign_image(), ED_view3d_camera_lock_sync(), edge_flip_exec(), edge_rotate_selected(), editmesh_mark_seam(), editmesh_mark_sharp(), EM_automerge(), explode_refresh_exec(), extrude_exec(), extrude_mesh(), extrude_repeat_mesh_exec(), fill_mesh_exec(), flip_normals(), flyEnd(), hide_exec(), hide_metaelems_exec(), image_aspect(), insert_lorem_exec(), join_mesh_exec(), knife_cut_exec(), make_fgon_exec(), make_object_duplilist_real(), make_prim_ext(), make_proxy_exec(), make_regular_exec(), make_segment_exec(), make_vertexcol(), marker_block_handler(), material_slot_assign_exec(), material_slot_remove_exec(), merge_exec(), merge_nurb(), mesh_duplicate_exec(), mesh_extrude_exec(), mesh_extrude_invoke(), mesh_faces_shade_flat_exec(), mesh_faces_shade_smooth_exec(), mesh_mirror_colors(), mesh_mirror_uvs(), mesh_noise_exec(), mesh_rip_invoke(), mesh_rotate_colors(), mesh_rotate_uvs(), mesh_select_nth_exec(), mesh_separate_selected(), meshdeform_bind_exec(), minimize_stretch_exit(), minimize_stretch_iteration(), mirror_exec(), modifier_apply_exec(), modifier_apply_obdata(), modifier_convert_exec(), modifier_copy_exec(), modifier_move_down_exec(), modifier_move_up_exec(), modifiers_convertToReal(), modifiers_setOnCage(), mouse_mesh_shortest_path(), mouse_select(), move_camera(), multires_base_apply_exec(), multires_reshape_exec(), multires_subdivide_exec(), navmesh_clear_exec(), navmesh_face_add_exec(), navmesh_face_copy_exec(), navmesh_reset_exec(), new_particle_settings_exec(), new_particle_target_exec(), NewBooleanMesh(), normals_make_consistent_exec(), object_add_particle_system(), object_armature_add_exec(), object_clear_transform_generic_exec(), object_constraint_copy_exec(), object_constraints_clear_exec(), object_hook_assign_exec(), object_hook_recenter_exec(), object_hook_remove_exec(), object_hook_reset_exec(), object_metaball_add_exec(), object_origin_clear_exec(), object_origin_set_exec(), object_remove_particle_system(), object_shape_key_mirror(), ocean_bake_exec(), pack_islands_exec(), particle_edit_toggle_exec(), PE_undo_step(), pose_autoside_names_exec(), pose_bone_flip_active_exec(), pose_bone_rotmode_exec(), pose_clear_transform_generic_exec(), pose_clear_user_transforms_exec(), pose_constraints_clear_exec(), pose_de_select_all_exec(), pose_flip_names_exec(), pose_flip_quats_exec(), pose_ik_clear_exec(), pose_paste_exec(), pose_visual_transform_apply_exec(), poseAnim_mapping_refresh(), poselib_preview_apply(), poselib_preview_cleanup(), quads_convert_to_tris_exec(), recalcData_clip(), recalcData_image(), recalcData_view3d(), remake_editMesh(), remove_doubles_exec(), remove_particle_target_exec(), removedoublesflag_exec(), reset_exec(), restrictbutton_modifier_cb(), reveal_exec(), reveal_metaelems_exec(), ringsel_finish(), rna_property_update(), rule_add_exec(), rule_del_exec(), rule_move_down_exec(), rule_move_up_exec(), screw_mesh_exec(), sculpt_flush_update(), sculpt_stroke_done(), sculpt_toggle_mode(), sculpt_undo_restore(), select_linked_internal(), separate_armature_exec(), separate_exec(), set_active_group_exec(), set_axis_exec(), set_floor_exec(), set_goal_weight_exec(), set_handle_type_exec(), set_origin_exec(), set_radius_exec(), set_spline_type_exec(), set_style(), set_vpaint(), set_wpaint(), shade_smooth_exec(), shape_key_clear_exec(), shape_key_move_exec(), shape_propagate(), shape_propagate_to_all_exec(), slide_marker_modal(), smooth_exec(), smooth_radius_exec(), smooth_vertex(), snap_sel_to_curs(), snap_sel_to_grid(), snap_selection_exec(), snode_dag_update(), solidify_exec(), solve_camera_freejob(), sort_faces_exec(), special_aftertrans_update(), special_transvert_update(), sphere_project_exec(), spin_exec(), spin_mesh(), spin_mesh_exec(), split_mesh(), stabilize_2d_add_exec(), stabilize_2d_remove_exec(), stabilize_2d_set_rotation_exec(), state_del_exec(), state_move_down_exec(), sticky_add_exec(), sticky_remove_exec(), stitch_exec(), subdivide_exec(), surface_slot_remove_exec(), switch_direction_exec(), target_move_down_exec(), target_move_up_exec(), text_refresh_pyconstraints_exec(), text_update_edited(), texture_paint_toggle_exec(), texture_slot_move(), toggle_cyclic_exec(), tree_element_active_defgroup(), tris_convert_to_quads_exec(), type_toggle_exec(), undo_editmode_step(), unlink_selection_exec(), unlink_text(), unwrap_exec(), uv_from_view_exec(), uvedit_set_tile(), vertex_group_add_exec(), vertex_group_assign_exec(), vertex_group_blend_exec(), vertex_group_clean_exec(), vertex_group_copy_exec(), vertex_group_copy_to_linked_exec(), vertex_group_fix_exec(), vertex_group_invert_exec(), vertex_group_levels_exec(), vertex_group_mirror_exec(), vertex_group_normalize_all_exec(), vertex_group_normalize_exec(), vertex_group_remove_exec(), vertex_group_remove_from_exec(), vertex_group_sort_exec(), vgroup_move_exec(), view3d_camera_to_view_exec(), view3d_camera_to_view_selected_exec(), visual_transform_apply_exec(), vpaint_fill(), vpaint_stroke_update_step(), weight_from_bones_exec(), weight_sample_group_exec(), weight_set_exec(), weld_align_uv(), wpaint_fill(), wpaint_stroke_done(), and wpaint_stroke_update_step().
void DAG_id_type_tag | ( | struct Main * | bmain, |
short | idtype | ||
) |
Definition at line 2733 of file depsgraph.c.
References Main::id_tag_update.
Referenced by animsys_write_rna_setting(), DAG_on_visible_update(), ED_base_object_free_and_unlink(), ED_object_add_type(), object_hide_view_clear_exec(), and object_hide_view_set_exec().
int DAG_id_type_tagged | ( | Main * | bmain, |
short | idtype | ||
) |
Definition at line 2738 of file depsgraph.c.
References Main::id_tag_update.
Definition at line 2640 of file depsgraph.c.
References dag_editors_scene_update(), ListBase::first, Main::id_tag_update, MAX_LIBARRAY, ID::name, and set_listbasepointers().
Referenced by scene_update_for_newframe(), and scene_update_tagged().
void DAG_ids_clear_recalc | ( | Main * | bmain | ) |
Definition at line 2663 of file depsgraph.c.
References ListBase::first, ID::flag, Main::id_tag_update, LIB_ID_RECALC, LIB_ID_RECALC_DATA, MAX_LIBARRAY, ID::name, ID::next, and set_listbasepointers().
Referenced by scene_update_for_newframe(), and scene_update_tagged().
void DAG_ids_flush_tagged | ( | Main * | bmain | ) |
Definition at line 2604 of file depsgraph.c.
References dag_current_scene_layers(), dag_id_flush_update(), DAG_scene_flush_update(), ListBase::first, ID::flag, Main::id_tag_update, LIB_ID_RECALC, LIB_ID_RECALC_DATA, MAX_LIBARRAY, ID::name, ID::next, set_listbasepointers(), and Scene::theDag.
Referenced by scene_update_for_newframe(), and scene_update_tagged().
void DAG_ids_flush_update | ( | Main * | bmain, |
int | time | ||
) |
Definition at line 2390 of file depsgraph.c.
References dag_current_scene_layers(), and DAG_scene_flush_update().
Referenced by add_driver_button_exec(), add_keyingset_button_exec(), add_named_exec(), bc_set_parent(), copy_attr(), DocumentImporter::create_instance_node(), delete_key_button_exec(), delete_key_exec(), delete_key_v3d_exec(), do_graph_region_driver_buttons(), drop_named_material_invoke(), duplicate_exec(), DocumentImporter::finish(), insert_key_button_exec(), insert_key_exec(), SkinInfo::link_armature(), make_links_data_exec(), make_links_scene_exec(), object_clear_transform_generic_exec(), object_delete_exec(), object_duplicates_make_real_exec(), object_origin_clear_exec(), object_origin_set_exec(), object_slow_parent_clear_exec(), object_slow_parent_set_exec(), object_track_clear_exec(), outliner_animdata_operation_exec(), parent_clear_exec(), parent_noinv_set_exec(), parent_set_exec(), remove_driver_button_exec(), remove_keyingset_button_exec(), snap_sel_to_curs(), snap_sel_to_grid(), track_set_exec(), and wm_link_append_exec().
DagForest* dag_init | ( | void | ) |
Definition at line 288 of file depsgraph.c.
References MEM_callocN().
Referenced by build_dag(), and DAG_pose_sort().
static const char* dag_node_name | ( | DagNode * | node | ) | [static] |
Definition at line 955 of file depsgraph.c.
References NULL, DagNode::ob, and ugly_hack_sorry.
Referenced by dag_node_print_dependencies(), dag_node_print_dependency_cycle(), and dag_node_print_dependency_recurs().
static void dag_node_print_dependencies | ( | DagNode * | node | ) | [static] |
Definition at line 965 of file depsgraph.c.
References dag_node_name(), DagAdjList::name, DagAdjList::next, DagAdjList::node, and DagNode::parent.
Referenced by dag_check_cycle().
static void dag_node_print_dependency_cycle | ( | DagForest * | dag, |
DagNode * | startnode, | ||
DagNode * | endnode, | ||
const char * | name | ||
) | [static] |
Definition at line 998 of file depsgraph.c.
References DagNode::color, dag_node_name(), dag_node_print_dependency_recurs(), DAG_WHITE, DagForest::DagNode, ListBase::first, and DagNode::next.
Referenced by dag_check_cycle().
Definition at line 976 of file depsgraph.c.
References DagNode::color, DAG_BLACK, dag_node_name(), DagAdjList::name, DagAdjList::next, DagAdjList::node, and DagNode::parent.
Referenced by dag_node_print_dependency_cycle().
static int dag_node_recurs_level | ( | DagNode * | node, |
int | level | ||
) | [static] |
Definition at line 1010 of file depsgraph.c.
References DagNode::ancestor_count, DagNode::color, DAG_BLACK, DAG_WHITE, MAX2, DagAdjList::next, DagAdjList::node, and DagNode::parent.
Referenced by dag_check_cycle().
static void dag_object_time_update_flags | ( | Object * | ob | ) | [static] |
Definition at line 2167 of file depsgraph.c.
References Object::adt, ADT_RECALC_ANIM, animdata_use_time(), BKE_animdata_from_id(), constraint_get_typeinfo(), CONSTRAINT_TYPE_CAMERASOLVER, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_OBJECTSOLVER, Object::constraints, Object::data, Object::dup_group, ELEM3, ListBase::first, bPose::flag, bConstraintTypeInfo::flush_constraint_targets, G, bConstraintTypeInfo::get_constraint_targets, Object::id, Lattice::key, Curve::key, Mesh::key, lib_id_recalc_data_tag(), lib_id_recalc_tag(), bConstraint::next, ParticleSystem::next, bConstraintTarget::next, bActionStrip::next, NULL, Curve::nurb, OB_ARMATURE, OB_CURVE, OB_DUPLI, OB_FONT, OB_LATTICE, OB_MBALL, OB_MESH, OB_RECALC_ALL, OB_RECALC_DATA, OB_RECALC_OB, OB_SHAPE_LOCK, OB_SURF, bActionStrip::object, object_modifiers_use_time(), Object::parent, Object::particlesystem, Object::pose, POSE_CONSTRAINTS_TIMEDEPEND, psys_check_enabled(), Object::recalc, AnimData::recalc, Object::shapeflag, Curve::str, io_export_cycles_xml::strip(), bConstraintTarget::tar, Object::transflag, Object::type, bConstraintTypeInfo::type, and Curve::vfont.
Referenced by DAG_scene_update_flags().
void DAG_on_visible_update | ( | Main * | bmain, |
const short | do_time | ||
) |
Definition at line 2401 of file depsgraph.c.
References dag_current_scene_layers(), dag_get_node(), DAG_id_type_tag(), dag_scene_flush_layers(), DAG_scene_update_flags(), Object::dup_group, ELEM6, ListBase::first, ID::flag, Group::gobject, Main::group, Group::id, ID_OB, Object::lay, DagNode::lay, Scene::lay_updated, LIB_DOIT, GroupObject::next, ID::next, NULL, GroupObject::ob, OB_CURVE, OB_FONT, OB_LATTICE, OB_MBALL, OB_MESH, OB_RECALC_DATA, OB_RECALC_OB, OB_SURF, Base::object, Object::proxy_from, Object::recalc, SETLOOPER, Scene::theDag, and Object::type.
Referenced by endlocalview(), load_file(), read_undosave(), view3d_layers_exec(), WM_read_file(), and WM_read_homefile().
void DAG_pose_sort | ( | Object * | ob | ) |
Definition at line 2778 of file depsgraph.c.
References BLI_addhead(), BLI_remlink(), bPose::chanbase, DagNode::child, DagNode::color, constraint_get_typeinfo(), CONSTRAINT_IK_TIP, CONSTRAINT_TYPE_KINEMATIC, bPoseChannel::constraints, DagNodeQueue::count, dag_add_node(), dag_add_relation(), DAG_BLACK, dag_check_cycle(), dag_get_node(), DAG_GRAY, dag_init(), DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, data, bConstraint::data, ListBase::first, bKinematicConstraint::flag, bConstraintTypeInfo::flush_constraint_targets, free_forest(), bConstraintTypeInfo::get_constraint_targets, get_pose_channel(), get_top_node_queue(), ListBase::last, MEM_freeN(), bPoseChannel::name, bPoseChannel::next, DagNode::next, bConstraint::next, bConstraintTarget::next, DagAdjList::next, DagAdjList::node, NULL, DagNode::ob, bPoseChannel::parent, pop_queue(), Object::pose, push_stack(), queue_create(), queue_delete(), bKinematicConstraint::rootbone, bConstraintTarget::subtarget, bConstraintTarget::tar, bConstraint::type, and ugly_hack_sorry.
Referenced by armature_rebuild_pose(), and DAG_print_dependencies().
Definition at line 2926 of file depsgraph.c.
References DAG_pose_sort(), dag_print_dependencies, DAG_scene_sort(), Scene::id, Object::id, Object::mode, ID::name, and OB_MODE_POSE.
Referenced by dependency_relations_exec().
static void dag_scene_flush_layers | ( | Scene * | sce, |
int | lay | ||
) | [static] |
Definition at line 1970 of file depsgraph.c.
References Scene::base, TimeMarker::camera, Scene::camera, DagNode::child, dag_get_node(), DagForest::DagNode, ListBase::first, flush_layer_node(), ID_OB, DagNode::lasttime, Object::lay, DagAdjList::lay, Scene::markers, TimeMarker::next, DagAdjList::next, Base::next, DagAdjList::node, Base::object, DagNode::scelay, Scene::theDag, DagForest::time, and DagNode::type.
Referenced by DAG_on_visible_update(), and DAG_scene_flush_update().
Definition at line 2042 of file depsgraph.c.
References BKE_ptcache_object_reset(), DagNode::child, dag_scene_flush_layers(), DAG_scene_sort(), dag_tag_renderlayers(), DagForest::DagNode, ListBase::first, flush_pointcache_reset(), flush_update_node(), Object::id, ID_OB, DagNode::lasttime, lib_id_recalc_data_tag(), DagAdjList::next, DagAdjList::node, NULL, DagNode::ob, OB_RECALC_ALL, OB_RECALC_DATA, PTCACHE_RESET_DEPSGRAPH, Object::recalc, Scene::theDag, DagForest::time, and DagNode::type.
Referenced by count_proportional_objects(), DAG_ids_flush_tagged(), DAG_ids_flush_update(), DAG_scene_update_flags(), and set_trans_object_base_flags().
Definition at line 1721 of file depsgraph.c.
References Scene::base, BLI_addhead(), BLI_remlink(), build_dag(), DagNode::child, DagNode::color, DagNodeQueue::count, DAG_BLACK, dag_check_cycle(), DAG_GRAY, DAG_RL_ALL_BUT_DATA, DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, DagNode::DFS_dvtm, ListBase::first, G, G_DEBUG, get_top_node_queue(), Object::id, ListBase::last, ID::name, Base::next, DagAdjList::next, DagNode::next, DagAdjList::node, NULL, DagNode::ob, Base::object, pop_queue(), push_stack(), queue_create(), queue_delete(), Scene::recalc, SCE_PRV_CHANGED, scene_sort_groups(), and Scene::theDag.
Referenced by add_hook_object(), add_named_exec(), bc_set_parent(), constraint_add_exec(), convert_exec(), copy_attr(), DocumentImporter::create_instance_node(), DAG_print_dependencies(), DAG_scene_flush_update(), do_constraint_panels(), do_graph_region_driver_buttons(), do_view3d_region_buttons(), duplicate_exec(), ED_object_add_duplicate(), ED_object_add_type(), ED_object_constraint_dependency_update(), ED_object_modifier_add(), ED_object_modifier_clear(), ED_object_modifier_convert(), ED_object_modifier_remove(), effector_add_type(), DocumentImporter::finish(), group_create_exec(), group_instance_add_exec(), group_objects_remove_exec(), join_armature_exec(), join_curve_exec(), join_mesh_exec(), SkinInfo::link_armature(), make_links_data_exec(), make_proxy_exec(), motionpaths_calc_optimise_depsgraph(), move_to_layer_exec(), new_particle_settings_exec(), new_particle_target_exec(), object_add_particle_system(), object_constraint_copy_exec(), object_constraints_clear_exec(), object_delete_exec(), object_duplicates_make_real_exec(), object_hide_view_clear_exec(), object_hide_view_set_exec(), object_remove_particle_system(), object_track_clear_exec(), objects_add_active_exec(), objects_remove_active_exec(), outliner_animdata_operation_exec(), outliner_object_operation_exec(), parent_clear_exec(), parent_noinv_set_exec(), parent_set_exec(), pose_constraint_copy_exec(), pose_constraints_clear_exec(), remove_particle_target_exec(), rule_del_exec(), scene_update_for_newframe(), set_scene_bg(), state_del_exec(), track_set_exec(), type_toggle_exec(), vertex_parent_set_exec(), and wm_link_append_exec().
Definition at line 2296 of file depsgraph.c.
References Scene::camera, dag_object_time_update_flags(), DAG_scene_flush_update(), Object::dup_group, ListBase::first, ID::flag, Group::gobject, Main::group, Group::id, LIB_DOIT, GroupObject::next, ID::next, GroupObject::ob, OB_RECALC_TIME, Base::object, Object::recalc, GroupObject::recalc, Scene::set, and SETLOOPER.
Referenced by DAG_on_visible_update(), motionpaths_calc_update_scene(), and scene_update_for_newframe().
static void dag_tag_renderlayers | ( | Scene * | sce, |
unsigned int | lay | ||
) | [static] |
Definition at line 2019 of file depsgraph.c.
References Scene::base, BLI_findlink(), bNode::custom1, ListBase::first, bNode::id, Base::lay, SceneRenderLayer::lay, bNode::next, Base::next, bNodeTree::nodes, Scene::nodetree, nodeUpdate(), Base::object, and Object::recalc.
Referenced by DAG_scene_flush_update().
Definition at line 1919 of file depsgraph.c.
References DagNode::child, ID_OB, DagNode::lasttime, DagNode::lay, DagAdjList::lay, DagAdjList::next, DagAdjList::node, DagNode::scelay, and DagNode::type.
Referenced by dag_scene_flush_layers().
static void flush_pointcache_reset | ( | Scene * | scene, |
DagNode * | node, | ||
int | curtime, | ||
int | reset | ||
) | [static] |
Definition at line 1941 of file depsgraph.c.
References BKE_ptcache_object_reset(), DagNode::child, G, Object::id, ID_OB, DagNode::lasttime, lib_id_recalc_data_tag(), DagAdjList::next, DagAdjList::node, DagNode::ob, OB_RECALC_ALL, OB_RECALC_DATA, PTCACHE_RESET_DEPSGRAPH, Object::recalc, and DagNode::type.
Referenced by DAG_scene_flush_update().
static void flush_update_node | ( | DagNode * | node, |
unsigned int | layer, | ||
int | curtime | ||
) | [static] |
Definition at line 1827 of file depsgraph.c.
References DagNode::child, DAG_RL_DATA_DATA, DAG_RL_DATA_OB, DAG_RL_OB_DATA, DAG_RL_OB_OB, G, Object::id, ID_OB, DagNode::lasttime, DagAdjList::lay, lib_id_recalc_data_tag(), lib_id_recalc_tag(), DagAdjList::next, DagAdjList::node, DagNode::ob, OB_RECALC_ALL, OB_RECALC_DATA, OB_RECALC_OB, object_free_display(), Object::recalc, DagNode::scelay, DagNode::type, and DagAdjList::type.
Referenced by DAG_scene_flush_update().
void free_forest | ( | DagForest * | Dag | ) |
Definition at line 793 of file depsgraph.c.
References BLI_ghash_free(), DagNode::child, DagForest::DagNode, ListBase::first, ListBase::last, MEM_freeN(), DagNode::next, DagAdjList::next, DagForest::nodeHash, NULL, DagForest::numNodes, and DagNode::parent.
Referenced by build_dag(), DAG_pose_sort(), and free_scene().
struct DagNodeQueue* get_all_childs | ( | struct DagForest * | dag, |
void * | ob | ||
) | [read] |
Definition at line 1509 of file depsgraph.c.
References DagNode::child, DagNode::color, DagNodeQueue::count, DAG_BLACK, dag_find_node(), DAG_GRAY, DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, DagNode::DFS_dvtm, ListBase::first, get_top_node_queue(), DagNode::next, DagAdjList::next, DagAdjList::node, NULL, DagForest::numNodes, pop_queue(), push_stack(), queue_create(), and queue_delete().
struct DagNodeQueue* get_first_ancestors | ( | struct DagForest * | dag, |
void * | ob | ||
) | [read] |
Definition at line 1480 of file depsgraph.c.
References DagNode::ancestor_count, DagNode::child, dag_find_node(), DagForest::DagNode, DagNode::DFS_fntm, ListBase::first, DagNode::next, DagAdjList::next, DagAdjList::node, NULL, push_queue(), and queue_create().
struct DagNodeQueue* get_obparents | ( | struct DagForest * | dag, |
void * | ob | ||
) | [read] |
Definition at line 1447 of file depsgraph.c.
References DagNode::ancestor_count, DagNode::child, dag_find_node(), DAG_RL_DATA, DagForest::DagNode, DagNode::DFS_fntm, ListBase::first, DagNode::next, DagAdjList::next, DagAdjList::node, NULL, push_queue(), queue_create(), and DagAdjList::type.
DagNode* get_top_node_queue | ( | DagNodeQueue * | queue | ) |
Definition at line 277 of file depsgraph.c.
References DagNodeQueue::first, and DagNodeQueueElem::node.
Referenced by DAG_pose_sort(), DAG_scene_sort(), get_all_childs(), graph_dfs(), and pre_and_post_source_DFS().
DagForest* getMainDag | ( | void | ) |
Definition at line 1078 of file depsgraph.c.
References MainDag.
Referenced by graph_print_adj_list().
void graph_bfs | ( | void | ) |
Definition at line 1104 of file depsgraph.c.
References DagNode::BFS_dist, DagNode::child, DagNode::color, DagNodeQueue::count, DAG_BLACK, DAG_GRAY, DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, DEPSX, DEPSY, ListBase::first, i, DagNode::k, DagNode::next, DagAdjList::next, DagAdjList::node, NULL, pop_queue(), push_queue(), queue_create(), queue_delete(), and set_node_xy().
DagNodeQueue* graph_dfs | ( | void | ) |
Definition at line 1233 of file depsgraph.c.
References DagNode::child, DagNode::color, DagNodeQueue::count, DAG_BLACK, DAG_GRAY, DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, DEPSX, DEPSY, DagNode::DFS_dist, DagNode::DFS_dvtm, DagNode::DFS_fntm, ListBase::first, get_top_node_queue(), i, DagNode::k, DagNode::next, DagAdjList::next, DagAdjList::node, NULL, DagForest::numNodes, DagNode::ob, pop_queue(), push_stack(), queue_create(), queue_delete(), set_node_xy(), and DagForest::time.
void graph_print_adj_list | ( | void | ) |
Definition at line 1632 of file depsgraph.c.
References DagNode::child, DagNode::color, getMainDag(), DagNode::next, DagAdjList::next, DagAdjList::node, and DagNode::ob.
void graph_print_queue | ( | DagNodeQueue * | nqueue | ) |
Definition at line 1600 of file depsgraph.c.
References DagNode::color, DagNode::DFS_dvtm, DagNode::DFS_fntm, DagNodeQueue::first, DagNodeQueueElem::next, DagNodeQueueElem::node, and DagNode::ob.
void graph_print_queue_dist | ( | DagNodeQueue * | nqueue | ) |
Definition at line 1612 of file depsgraph.c.
References DagNodeQueue::count, DagNode::DFS_dvtm, DagNode::DFS_fntm, DagNodeQueue::first, DagNodeQueueElem::next, DagNodeQueueElem::node, and DagNode::ob.
int is_acyclic | ( | DagForest * | dag | ) |
Definition at line 1586 of file depsgraph.c.
References DagForest::is_acyclic.
Definition at line 1820 of file depsgraph.c.
References Main::id_tag_update, and LIB_ID_RECALC_DATA.
Referenced by dag_id_flush_update(), DAG_id_tag_update(), dag_object_time_update_flags(), DAG_scene_flush_update(), flush_pointcache_reset(), and flush_update_node().
Definition at line 1814 of file depsgraph.c.
References Main::id_tag_update, and LIB_ID_RECALC.
Referenced by dag_id_flush_update(), DAG_id_tag_update(), dag_object_time_update_flags(), and flush_update_node().
static int object_modifiers_use_time | ( | Object * | ob | ) | [static] |
Definition at line 2091 of file depsgraph.c.
References AnimData::action, Object::adt, bAction::curves, AnimData::drivers, ListBase::first, modifier_dependsOnTime(), Object::modifiers, ModifierData::next, FCurve::next, and FCurve::rna_path.
Referenced by dag_object_time_update_flags().
void* pop_ob_queue | ( | struct DagNodeQueue * | queue | ) |
Definition at line 272 of file depsgraph.c.
References pop_queue().
DagNode* pop_queue | ( | DagNodeQueue * | queue | ) |
Definition at line 243 of file depsgraph.c.
References DagNodeQueue::count, DagNodeQueue::first, DagNodeQueue::freenodes, DagNodeQueue::last, DagNodeQueueElem::next, DagNodeQueueElem::node, and NULL.
Referenced by DAG_pose_sort(), DAG_scene_sort(), get_all_childs(), graph_bfs(), graph_dfs(), pop_ob_queue(), pre_and_post_source_BFS(), and pre_and_post_source_DFS().
int pre_and_post_BFS | ( | DagForest * | dag, |
short | mask, | ||
graph_action_func | pre_func, | ||
graph_action_func | post_func, | ||
void ** | data | ||
) |
Definition at line 1170 of file depsgraph.c.
References DagForest::DagNode, ListBase::first, and pre_and_post_source_BFS().
int pre_and_post_DFS | ( | DagForest * | dag, |
short | mask, | ||
graph_action_func | pre_func, | ||
graph_action_func | post_func, | ||
void ** | data | ||
) |
Definition at line 1357 of file depsgraph.c.
References DagForest::DagNode, ListBase::first, and pre_and_post_source_DFS().
int pre_and_post_source_BFS | ( | DagForest * | dag, |
short | mask, | ||
DagNode * | source, | ||
graph_action_func | pre_func, | ||
graph_action_func | post_func, | ||
void ** | data | ||
) |
Definition at line 1179 of file depsgraph.c.
References DagNode::BFS_dist, DagNode::child, DagNode::color, DagNodeQueue::count, DAG_BLACK, DAG_GRAY, DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, ListBase::first, DagNode::next, DagAdjList::next, DagAdjList::node, NULL, DagNode::ob, pop_queue(), push_queue(), queue_create(), queue_delete(), and DagAdjList::type.
Referenced by pre_and_post_BFS().
int pre_and_post_source_DFS | ( | DagForest * | dag, |
short | mask, | ||
DagNode * | source, | ||
graph_action_func | pre_func, | ||
graph_action_func | post_func, | ||
void ** | data | ||
) |
Definition at line 1365 of file depsgraph.c.
References DagNode::child, DagNode::color, DagNodeQueue::count, DAG_BLACK, DAG_GRAY, DAG_WHITE, DagForest::DagNode, DAGQUEUEALLOC, DagNode::DFS_dist, DagNode::DFS_dvtm, DagNode::DFS_fntm, ListBase::first, get_top_node_queue(), DagNode::k, DagNode::next, DagAdjList::next, DagAdjList::node, NULL, DagNode::ob, pop_queue(), push_stack(), queue_create(), queue_delete(), DagForest::time, and DagAdjList::type.
Referenced by pre_and_post_DFS().
void push_queue | ( | DagNodeQueue * | queue, |
DagNode * | node | ||
) |
Definition at line 153 of file depsgraph.c.
References DagNodeQueue::count, DAGQUEUEALLOC, DagNodeQueue::first, DagNodeQueue::freenodes, i, DagNodeQueue::last, MEM_mallocN(), DagNodeQueueElem::next, DagNodeQueueElem::node, and NULL.
Referenced by get_first_ancestors(), get_obparents(), graph_bfs(), and pre_and_post_source_BFS().
void push_stack | ( | DagNodeQueue * | queue, |
DagNode * | node | ||
) |
Definition at line 203 of file depsgraph.c.
References DagNodeQueue::count, DAGQUEUEALLOC, DagNodeQueue::first, DagNodeQueue::freenodes, i, DagNodeQueue::last, MEM_mallocN(), DagNodeQueueElem::next, DagNodeQueueElem::node, and NULL.
Referenced by DAG_pose_sort(), DAG_scene_sort(), get_all_childs(), graph_dfs(), and pre_and_post_source_DFS().
int queue_count | ( | struct DagNodeQueue * | queue | ) |
Definition at line 282 of file depsgraph.c.
References DagNodeQueue::count.
DagNodeQueue* queue_create | ( | int | slots | ) |
Definition at line 81 of file depsgraph.c.
References DagNodeQueue::count, DagNodeQueue::first, DagNodeQueue::freenodes, i, DagNodeQueue::last, DagNodeQueue::maxlevel, MEM_mallocN(), DagNodeQueueElem::next, DagNodeQueueElem::node, and NULL.
Referenced by DAG_pose_sort(), DAG_scene_sort(), get_all_childs(), get_first_ancestors(), get_obparents(), graph_bfs(), graph_dfs(), pre_and_post_source_BFS(), and pre_and_post_source_DFS().
void queue_delete | ( | DagNodeQueue * | queue | ) |
Definition at line 129 of file depsgraph.c.
References DagNodeQueue::first, DagNodeQueue::freenodes, MEM_freeN(), and DagNodeQueueElem::next.
Referenced by DAG_pose_sort(), DAG_scene_sort(), get_all_childs(), graph_bfs(), graph_dfs(), pre_and_post_source_BFS(), and pre_and_post_source_DFS().
void queue_raz | ( | DagNodeQueue * | queue | ) |
Definition at line 108 of file depsgraph.c.
References DagNodeQueue::count, DagNodeQueue::first, DagNodeQueue::freenodes, DagNodeQueue::last, DagNodeQueueElem::next, DagNodeQueueElem::node, and NULL.
Definition at line 1677 of file depsgraph.c.
References Scene::base, BLI_addtail(), BLI_remlink(), ListBase::first, ID::flag, Group::gobject, Main::group, Group::id, Object::id, LIB_DOIT, ID::newid, GroupObject::next, Base::next, ID::next, NULL, GroupObject::ob, Main::object, and Base::object.
Referenced by DAG_scene_sort().
void set_node_xy | ( | DagNode * | node, |
float | x, | ||
float | y | ||
) |
Definition at line 1591 of file depsgraph.c.
References DagNode::x, and DagNode::y.
Referenced by graph_bfs(), and graph_dfs().
void setMainDag | ( | DagForest * | dag | ) |
Definition at line 1084 of file depsgraph.c.
int dag_print_dependencies = 0 [static] |
Definition at line 837 of file depsgraph.c.
Referenced by dag_check_cycle(), and DAG_print_dependencies().
void(* EditorsUpdateIDCb)(Main *bmain, ID *id) = NULL [static] |
Definition at line 1655 of file depsgraph.c.
Referenced by dag_editors_id_update(), and DAG_editors_update_cb().
void(* EditorsUpdateSceneCb)(Main *bmain, Scene *scene, int updated) = NULL [static] |
Definition at line 1656 of file depsgraph.c.
Referenced by dag_editors_scene_update(), and DAG_editors_update_cb().
Definition at line 1076 of file depsgraph.c.
Referenced by getMainDag().
int ugly_hack_sorry = 1 [static] |
Definition at line 836 of file depsgraph.c.
Referenced by dag_add_node(), dag_node_name(), and DAG_pose_sort().