Blender V5.0
MOD_nodes.cc File Reference
#include <cstring>
#include <fmt/format.h>
#include <sstream>
#include <string>
#include <xxhash.h>
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_multi_value_map.hh"
#include "BLI_set.hh"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "DNA_array_utils.hh"
#include "DNA_collection_types.h"
#include "DNA_curves_types.h"
#include "DNA_defaults.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_pointcloud_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
#include "DNA_windowmanager_types.h"
#include "BKE_bake_data_block_map.hh"
#include "BKE_bake_geometry_nodes_modifier.hh"
#include "BKE_compute_context_cache.hh"
#include "BKE_compute_contexts.hh"
#include "BKE_customdata.hh"
#include "BKE_global.hh"
#include "BKE_idprop.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_main.hh"
#include "BKE_mesh.hh"
#include "BKE_modifier.hh"
#include "BKE_node_legacy_types.hh"
#include "BKE_node_runtime.hh"
#include "BKE_node_tree_update.hh"
#include "BKE_object.hh"
#include "BKE_packedFile.hh"
#include "BKE_pointcloud.hh"
#include "BKE_screen.hh"
#include "BKE_workspace.hh"
#include "BLO_read_write.hh"
#include "NOD_geometry_nodes_caller_ui.hh"
#include "UI_interface_layout.hh"
#include "UI_resources.hh"
#include "BLT_translation.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "RNA_access.hh"
#include "RNA_enum_types.hh"
#include "RNA_prototypes.hh"
#include "DEG_depsgraph_build.hh"
#include "DEG_depsgraph_query.hh"
#include "DEG_depsgraph_writeback_sync.hh"
#include "MOD_modifiertypes.hh"
#include "MOD_nodes.hh"
#include "MOD_ui_common.hh"
#include "ED_node.hh"
#include "ED_object.hh"
#include "ED_screen.hh"
#include "ED_undo.hh"
#include "ED_viewer_path.hh"
#include "NOD_geometry_nodes_dependencies.hh"
#include "NOD_geometry_nodes_execute.hh"
#include "NOD_geometry_nodes_gizmos.hh"
#include "NOD_geometry_nodes_lazy_function.hh"
#include "NOD_node_declaration.hh"
#include "NOD_socket_usage_inference.hh"

Go to the source code of this file.

Classes

class  blender::NodesModifierBakeDataBlockMap
struct  blender::BakeFrameIndices
class  blender::NodesModifierSimulationParams
struct  blender::NodesModifierSimulationParams::DataPerZone
class  blender::NodesModifierBakeParams
struct  blender::NodesModifierBakeParams::DataPerNode

Namespaces

namespace  blender

Functions

static void blender::init_data (ModifierData *md)
static void blender::find_dependencies_from_settings (const NodesModifierSettings &settings, nodes::GeometryNodesEvalDependencies &deps)
static void blender::add_collection_relation (const ModifierUpdateDepsgraphContext *ctx, Collection &collection)
static void blender::add_object_relation (const ModifierUpdateDepsgraphContext *ctx, Object &object, const nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo &info)
static void blender::update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
static bool blender::depends_on_time (Scene *, ModifierData *md)
static void blender::foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
static void blender::foreach_tex_link (ModifierData *md, Object *ob, TexWalkFunc walk, void *user_data)
static bool blender::is_disabled (const Scene *, ModifierData *md, bool)
static bool blender::logging_enabled (const ModifierEvalContext *ctx)
static void blender::update_id_properties_from_node_group (NodesModifierData *nmd)
static void blender::remove_outdated_bake_caches (NodesModifierData &nmd)
static void blender::update_bakes_from_node_group (NodesModifierData &nmd)
static void blender::update_panels_from_node_group (NodesModifierData &nmd)
void MOD_nodes_update_interface (Object *object, NodesModifierData *nmd)
static void blender::try_add_side_effect_node (const ModifierEvalContext &ctx, const ComputeContext &final_compute_context, const int final_node_id, const NodesModifierData &nmd, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
static void blender::find_side_effect_nodes_for_viewer_path (const ViewerPath &viewer_path, const NodesModifierData &nmd, const ModifierEvalContext &ctx, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
static void blender::find_side_effect_nodes_for_nested_node (const ModifierEvalContext &ctx, const NodesModifierData &nmd, const int root_nested_node_id, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
static void blender::find_side_effect_nodes_for_baking (const NodesModifierData &nmd, const ModifierEvalContext &ctx, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
static void blender::find_side_effect_nodes_for_active_gizmos (const NodesModifierData &nmd, const ModifierEvalContext &ctx, const wmWindowManager &wm, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes, Set< ComputeContextHash > &r_socket_log_contexts)
static void blender::find_side_effect_nodes (const NodesModifierData &nmd, const ModifierEvalContext &ctx, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes, Set< ComputeContextHash > &r_socket_log_contexts)
static void blender::find_socket_log_contexts (const NodesModifierData &nmd, const ModifierEvalContext &ctx, Set< ComputeContextHash > &r_socket_log_contexts)
static void blender::check_property_socket_sync (const Object *ob, const IDProperty *properties, ModifierData *md)
static BakeFrameIndices blender::get_bake_frame_indices (const Span< std::unique_ptr< bake::FrameCache > > frame_caches, const SubFrame frame)
static void blender::ensure_bake_loaded (bake::NodeBakeCache &bake_cache, bake::FrameCache &frame_cache)
static bool blender::try_find_baked_data (const NodesModifierBake &bake, bake::NodeBakeCache &bake_cache, const Main &bmain, const Object &object, const NodesModifierData &nmd, const int id)
static void blender::add_missing_data_block_mappings (NodesModifierBake &bake, const Span< bake::BakeDataBlockID > missing, FunctionRef< ID *(const bake::BakeDataBlockID &)> get_data_block)
void blender::nodes_modifier_data_block_destruct (NodesModifierDataBlock *data_block, const bool do_id_user)
static void blender::add_data_block_items_writeback (const ModifierEvalContext &ctx, NodesModifierData &nmd_eval, NodesModifierData &nmd_orig, NodesModifierSimulationParams &simulation_params, NodesModifierBakeParams &bake_params)
static void blender::modifyGeometry (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet &geometry_set)
static Meshblender::modify_mesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
static void blender::modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
static void blender::panel_draw (const bContext *C, Panel *panel)
static void blender::panel_register (ARegionType *region_type)
static void blender::blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
static void blender::blend_read (BlendDataReader *reader, ModifierData *md)
static void blender::copy_data (const ModifierData *md, ModifierData *target, const int flag)
void blender::nodes_modifier_packed_bake_free (NodesModifierPackedBake *packed_bake)
void blender::nodes_modifier_bake_destruct (NodesModifierBake *bake, const bool do_id_user)
static void blender::free_data (ModifierData *md)
static void blender::required_data_mask (ModifierData *, CustomData_MeshMasks *r_cddata_masks)

Variables

static const CustomData_MeshMasks blender::dependency_data_mask
ModifierTypeInfo modifierType_Nodes

Function Documentation

◆ MOD_nodes_update_interface()

void MOD_nodes_update_interface ( Object * object,
NodesModifierData * nmd )

Rebuild the list of properties based on the sockets exposed as the modifier's node group inputs. If any properties correspond to the old properties by name and type, carry over the values.

Definition at line 449 of file MOD_nodes.cc.

References DEG_id_tag_update(), Object::id, ID_RECALC_GEOMETRY, NodesModifierData::runtime, blender::update_bakes_from_node_group(), blender::update_id_properties_from_node_group(), and blender::update_panels_from_node_group().

Referenced by blender::ed::object::drop_geometry_nodes_invoke(), blender::ed::object::modifier_add_asset_exec(), blender::ed::object::shade_auto_smooth_exec(), and blender::bke::NodeTreeMainUpdater::update_rooted().

Variable Documentation

◆ modifierType_Nodes

ModifierTypeInfo modifierType_Nodes

Definition at line 2300 of file MOD_nodes.cc.