|
Blender V4.3
|
Typedefs | |
| using | JoinAttributeSetsCache = Map<Vector<lf::OutputSocket *>, lf::OutputSocket *> |
| using | ImplicitInputValueFn = std::function<void(const bNode &node, void *r_value)> |
| using | ItemDeclarationPtr = std::unique_ptr<ItemDeclaration> |
| using | SocketDeclarationPtr = std::unique_ptr<SocketDeclaration> |
| using | PanelDrawButtonsFunction = void (*)(uiLayout *, bContext *, PointerRNA *) |
| using | PanelDeclarationPtr = std::unique_ptr<PanelDeclaration> |
Enumerations | |
| enum class | InputUsageHintType { Never , DependsOnOutput , DynamicSocket } |
| enum class | InputSocketFieldType { None , IsSupported , Implicit } |
| enum class | OutputSocketFieldType { None , FieldSource , DependentField , PartiallyDependent } |
| enum class | CompositorInputRealizationOptions : uint8_t { None = 0 , RealizeOnOperationDomain = (1 << 0) } |
| using blender::nodes::ImplicitInputValueFn = std::function<void(const bNode &node, void *r_value)> |
Definition at line 152 of file NOD_node_declaration.hh.
| using blender::nodes::ItemDeclarationPtr = std::unique_ptr<ItemDeclaration> |
Definition at line 160 of file NOD_node_declaration.hh.
Definition at line 1510 of file geometry_nodes_lazy_function.cc.
| using blender::nodes::PanelDeclarationPtr = std::unique_ptr<PanelDeclaration> |
Definition at line 479 of file NOD_node_declaration.hh.
| using blender::nodes::PanelDrawButtonsFunction = void (*)(uiLayout *, bContext *, PointerRNA *) |
Definition at line 411 of file NOD_node_declaration.hh.
| using blender::nodes::SocketDeclarationPtr = std::unique_ptr<SocketDeclaration> |
Definition at line 409 of file NOD_node_declaration.hh.
|
strong |
A bit-field that maps to the #realtime_compositor::InputRealizationOptions.
| Enumerator | |
|---|---|
| None | |
| RealizeOnOperationDomain | |
Definition at line 53 of file NOD_node_declaration.hh.
|
strong |
| Enumerator | |
|---|---|
| None | The input is required to be a single value. |
| IsSupported | The input can be a field. |
| Implicit | The input can be a field and is a field implicitly if nothing is connected. |
Definition at line 29 of file NOD_node_declaration.hh.
|
strong |
In the general case, this is DynamicSocket. That means that to determine if a node group will use a particular input, it has to be partially executed.
In other cases, it's not necessary to look into the node group to determine if an input is necessary.
Definition at line 313 of file NOD_geometry_nodes_lazy_function.hh.
|
strong |
Definition at line 38 of file NOD_node_declaration.hh.
|
static |
Definition at line 39 of file geometry_nodes_execute.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), LISTBASE_FOREACH, SOCK_COLLECTION, SOCK_IMAGE, SOCK_MATERIAL, SOCK_OBJECT, and SOCK_TEXTURE.
Referenced by process_nodes_for_depsgraph().
| int blender::nodes::apply_offset_in_cyclic_range | ( | IndexRange | range, |
| int | start_index, | ||
| int | offset ) |
Definition at line 13 of file node_geo_offset_point_in_curve.cc.
References BLI_assert.
Referenced by blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput::get_varray_for_context(), and blender::nodes::node_geo_offset_point_in_curve_cc::ControlPointNeighborFieldInput::get_varray_for_context().
| void blender::nodes::build_node_declaration | ( | const bke::bNodeType & | typeinfo, |
| NodeDeclaration & | r_declaration, | ||
| const bNodeTree * | ntree, | ||
| const bNode * | node ) |
Definition at line 27 of file node_declaration.cc.
References blender::bke::bNodeType::declare, and reset_declaration().
Referenced by blender::bke::node_register_type(), blender::ed::space_node::ui_node_link_items(), and update_node_declaration_and_sockets().
| bool blender::nodes::check_tool_context_and_error | ( | GeoNodeExecParams & | params | ) |
Definition at line 21 of file node_geometry_util.cc.
Referenced by blender::nodes::node_geo_tool_active_element_cc::node_exec(), blender::nodes::node_geo_mouse_position_cc::node_geo_exec(), blender::nodes::node_geo_tool_3d_cursor_cc::node_geo_exec(), blender::nodes::node_geo_tool_face_set_cc::node_geo_exec(), blender::nodes::node_geo_tool_selection_cc::node_geo_exec(), blender::nodes::node_geo_tool_set_face_set_cc::node_geo_exec(), blender::nodes::node_geo_tool_set_selection_cc::node_geo_exec(), and blender::nodes::node_geo_viewport_transform_cc::node_geo_exec().
|
static |
Definition at line 14 of file node_composite_scene_time.cc.
References b.
Referenced by register_node_type_cmp_scene_time().
|
static |
The computed values are stored in newly allocated arrays. They still have to be moved to the actual geometry.
Definition at line 806 of file geometry_nodes_execute.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::GeometryComponent::attributes(), blender::bke::GeometryComponent::Curve, blender::bke::GeometryComponent::Instance, blender::MultiValueMap< Key, Value >::items(), MEM_mallocN_aligned(), blender::bke::GeometryComponent::Mesh, blender::nodes::OutputAttributeToStore::name, blender::bke::GeometryComponent::PointCloud, and blender::bke::AttributeValidator::validate_field_if_necessary().
Referenced by store_output_attributes().
|
static |
Definition at line 394 of file node_common.cc.
References bNodeTreeInterfaceItem::item_type, and NODE_INTERFACE_SOCKET_OUTPUT.
Referenced by declaration_for_interface_panel().
| bool blender::nodes::custom_data_type_supports_grids | ( | const eCustomDataType | data_type | ) |
Definition at line 84 of file node_geometry_util.cc.
References blender::bke::custom_data_type_to_socket_type(), and socket_type_supports_grids().
Referenced by grid_custom_data_type_items_filter_fn(), and blender::nodes::node_geo_store_named_grid_cc::search_link_ops().
|
static |
Definition at line 418 of file node_common.cc.
References count_panel_declaration_children(), declaration_for_interface_panel(), bNodeTreeInterfacePanel::description, bNodeTreeInterfacePanel::flag, bNodeTreeInterfacePanel::identifier, bNodeTreeInterfacePanel::items_num, bNodeTreeInterfacePanel::name, and NODE_INTERFACE_PANEL_DEFAULT_CLOSED.
Referenced by declaration_for_interface_panel(), and node_group_declare().
|
static |
Definition at line 244 of file node_common.cc.
References bNodeTreeInterfaceSocket::description, bNodeTreeInterfaceSocket::flag, get_default_id_getter(), get_init_socket_fn(), blender::bke::node_interface::get_socket_data_as(), bNodeTreeInterfaceSocket::identifier, bNodeTreeInterfaceSocket::name, NODE_INTERFACE_SOCKET_COMPACT, NODE_INTERFACE_SOCKET_HIDE_VALUE, blender::bke::node_socket_type_find(), SOCK_BOOLEAN, SOCK_COLLECTION, SOCK_CUSTOM, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_IMAGE, SOCK_INT, SOCK_MATERIAL, SOCK_MATRIX, SOCK_MENU, SOCK_OBJECT, SOCK_RGBA, SOCK_ROTATION, SOCK_SHADER, SOCK_STRING, SOCK_TEXTURE, SOCK_VECTOR, bNodeTreeInterfaceSocket::socket_type, bNodeTree::tree_interface, and blender::bke::bNodeSocketType::type.
Referenced by node_group_declare().
|
static |
Try to update identifiers of sockets created in the future to match identifiers that exist now.
Definition at line 377 of file node_socket.cc.
References get_current_socket_identifier_for_future_socket(), blender::nodes::NodeDeclaration::inputs, LISTBASE_FOREACH, blender::nodes::NodeDeclaration::outputs, and STRNCPY.
Referenced by refresh_node_sockets_and_panels().
| void blender::nodes::draw_bake_button_row | ( | const BakeDrawContext & | ctx, |
| uiLayout * | layout, | ||
| bool | is_in_sidebar = false ) |
Definition at line 765 of file node_geo_bake.cc.
References blender::nodes::BakeDrawContext::bake, blender::nodes::BakeDrawContext::bake_target, col, G, NodesModifierBake::id, Object::id, IFACE_, blender::nodes::BakeDrawContext::is_baked, NodesModifierData::modifier, ModifierData::name, blender::nodes::BakeDrawContext::nmd, NODES_MODIFIER_BAKE_TARGET_DISK, blender::nodes::BakeDrawContext::object, NodesModifierBake::packed, ptr, RNA_int_set(), RNA_string_set(), UI_ITEM_NONE, uiItemFullO(), uiLayoutColumn(), uiLayoutRow(), uiLayoutSetActive(), WM_OP_INVOKE_DEFAULT, and WM_operator_properties_id_lookup_set_from_id().
Referenced by blender::nodes::node_geo_bake_cc::node_layout(), blender::nodes::node_geo_bake_cc::node_layout_ex(), and blender::nodes::node_geo_simulation_cc::node_layout_ex().
|
static |
Definition at line 911 of file node_geo_bake.cc.
References PointerRNA::data, blender::StringRefBase::is_empty(), UI_ITEM_NONE, uiItemR(), and uiLayoutRow().
Referenced by draw_data_blocks().
| void blender::nodes::draw_common_bake_settings | ( | bContext * | C, |
| BakeDrawContext & | ctx, | ||
| uiLayout * | layout ) |
Definition at line 855 of file node_geo_bake.cc.
References blender::nodes::BakeDrawContext::bake, NodesModifierData::bake_directory, blender::nodes::BakeDrawContext::bake_rna, blender::nodes::BakeDrawContext::bake_target, BKE_main_blendfile_path(), BLI_path_is_rel(), BLI_path_rel(), col, CTX_data_main(), NodesModifierBake::directory, FILE_MAX, NodesModifierBake::flag, blender::bke::bake::get_node_bake_path(), NodesModifierBake::id, IFACE_, blender::nodes::BakeDrawContext::is_baked, blender::StringRefBase::is_empty(), blender::nodes::BakeDrawContext::nmd, NODES_MODIFIER_BAKE_CUSTOM_PATH, NODES_MODIFIER_BAKE_CUSTOM_SIMULATION_FRAME_RANGE, NODES_MODIFIER_BAKE_TARGET_DISK, blender::nodes::BakeDrawContext::object, RNA_struct_find_property(), STRNCPY, UI_ITEM_NONE, uiItemFullR(), uiItemR(), uiLayoutColumn(), uiLayoutSetActive(), uiLayoutSetPropDecorate(), and uiLayoutSetPropSep().
Referenced by blender::nodes::node_geo_bake_cc::node_layout_ex(), and blender::nodes::node_geo_simulation_cc::node_layout_ex().
| void blender::nodes::draw_data_blocks | ( | const bContext * | C, |
| uiLayout * | layout, | ||
| PointerRNA & | bake_rna ) |
Definition at line 936 of file node_geo_bake.cc.
References PointerRNA::data, draw_bake_data_block_list_item(), uiListType::idname, PointerRNA::owner_id, RNA_pointer_create(), STRNCPY, TIP_, UI_TEMPLATE_LIST_FLAG_NONE, uiLayoutPanel(), UILST_LAYOUT_DEFAULT, uiTemplateList(), and WM_uilisttype_add().
Referenced by blender::nodes::node_geo_bake_cc::node_layout_ex(), and blender::nodes::node_geo_simulation_cc::node_layout_ex().
| const GeometryNodesLazyFunctionGraphInfo * blender::nodes::ensure_geometry_nodes_lazy_function_graph | ( | const bNodeTree & | btree | ) |
Main function that converts a bNodeTree into a lazy-function graph. If the graph has been generated already, nothing is done. Under some circumstances a valid graph cannot be created. In those cases null is returned.
Definition at line 5836 of file geometry_nodes_lazy_function.cc.
References DEG_get_original_id(), blender::bke::bNodeSocketType::geometry_nodes_cpp_type, bNodeTree::id, ID_TAG_MISSING, lock, bNodeTree::runtime, and blender::bke::bNodeTreeZones::zones.
Referenced by execute_geometry_nodes_on_geometry(), blender::bke::node_tree_runtime::preprocess_geometry_node_tree_for_evaluation(), blender::ed::geometry::run_node_group_exec(), and blender::try_add_side_effect_node().
| const EnumPropertyItem * blender::nodes::enum_items_filter | ( | const EnumPropertyItem * | original_item_array, |
| FunctionRef< bool(const EnumPropertyItem &item)> | fn ) |
Definition at line 9 of file node_rna_define.cc.
References EnumPropertyItem::identifier, RNA_enum_item_add(), and RNA_enum_item_end().
Referenced by blender::nodes::enums::attribute_type_type_with_socket_fn(), blender::nodes::node_geo_sample_grid_cc::data_type_filter_fn(), blender::nodes::node_geo_sample_grid_index_cc::data_type_filter_fn(), grid_custom_data_type_items_filter_fn(), grid_socket_type_items_filter_fn(), blender::nodes::node_fn_compare_cc::node_rna(), blender::nodes::node_fn_hash_value_cc::node_rna(), blender::nodes::node_geo_attribute_statistic_cc::node_rna(), blender::nodes::node_geo_blur_attribute_cc::node_rna(), blender::nodes::node_geo_index_switch_cc::node_rna(), blender::nodes::node_geo_menu_switch_cc::node_rna(), blender::nodes::node_geo_store_named_attribute_cc::node_rna(), and blender::nodes::node_geo_switch_cc::node_rna().
| blender::nodes::ENUM_OPERATORS | ( | CompositorInputRealizationOptions | , |
| CompositorInputRealizationOptions::RealizeOnOperationDomain | ) |
Contains information about how a node output's field state depends on inputs of the same node.
Definition at line 57 of file NOD_node_declaration.hh.
References BLI_STRUCT_EQUALITY_OPERATORS_2.
| bke::GeometrySet blender::nodes::execute_geometry_nodes_on_geometry | ( | const bNodeTree & | btree, |
| const IDProperty * | properties, | ||
| const ComputeContext & | base_compute_context, | ||
| GeoNodesCallData & | call_data, | ||
| bke::GeometrySet | input_geometry ) |
Definition at line 932 of file geometry_nodes_execute.cc.
References blender::LinearAllocator< Allocator >::allocate(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), BLI_assert, blender::nodes::GeoNodesLFUserData::call_data, blender::nodes::GeoNodesLFUserData::compute_context, blender::fn::lazy_function::LazyFunction::destruct_storage(), ensure_geometry_nodes_lazy_function_graph(), blender::fn::lazy_function::LazyFunction::execute(), blender::nodes::GeometryNodesLazyFunctionGraphInfo::function, blender::bke::bNodeSocketType::geometry_nodes_cpp_type, blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), blender::fn::lazy_function::LazyFunction::init_storage(), initialize_group_input(), blender::fn::lazy_function::LazyFunction::inputs(), blender::fn::lazy_function::LazyFunction::outputs(), ptr, blender::nodes::GeoNodesCallData::root_ntree, SOCK_CUSTOM, SOCK_GEOMETRY, blender::fn::lazy_function::Context::storage, store_output_attributes(), timer, blender::bke::bNodeSocketType::type, and blender::fn::lazy_function::Output::type.
Referenced by blender::ed::geometry::run_node_group_exec().
|
static |
Executes a multi-function. If all inputs are single values, the results will also be single values. If any input is a field, the outputs will also be fields.
Definition at line 528 of file geometry_nodes_lazy_function.cc.
References execute_multi_function_on_value_variant__field(), execute_multi_function_on_value_variant__single(), and blender::Span< T >::index_range().
Referenced by blender::nodes::LazyFunctionForMultiFunctionConversion::execute_impl(), blender::nodes::LazyFunctionForMultiFunctionNode::execute_impl(), and blender::nodes::LazyFunctionForMutedNode::execute_impl().
|
static |
Definition at line 494 of file geometry_nodes_lazy_function.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::fn::FieldOperation::Create(), extract(), and blender::Span< T >::index_range().
Referenced by execute_multi_function_on_value_variant().
|
static |
Definition at line 460 of file geometry_nodes_lazy_function.cc.
References blender::bke::SocketValueVariant::allocate_single(), blender::fn::multi_function::MultiFunction::call(), blender::bke::SocketValueVariant::convert_to_single(), blender::fn::multi_function::ParamType::data_type(), blender::bke::geo_nodes_base_cpp_type_to_socket_type(), blender::bke::SocketValueVariant::get_single_ptr_raw(), blender::Span< T >::index_range(), mask(), blender::fn::multi_function::MultiFunction::param_type(), params, and blender::fn::multi_function::DataType::single_type().
Referenced by execute_multi_function_on_value_variant().
|
static |
Definition at line 314 of file derived_node_tree.cc.
References blender::nodes::DTreeContext::child_context(), find_active_context_recursive(), and bNodeInstanceKey::value.
Referenced by blender::nodes::DerivedNodeTree::active_context(), and find_active_context_recursive().
| std::optional< FoundNestedNodeID > blender::nodes::find_nested_node_id | ( | const GeoNodesLFUserData & | user_data, |
| const int | node_id ) |
Definition at line 5905 of file geometry_nodes_lazy_function.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), blender::nodes::GeoNodesLFUserData::call_data, blender::nodes::GeoNodesLFUserData::compute_context, blender::Vector< T, InlineBufferCapacity, Allocator >::end(), blender::nodes::FoundNestedNodeID::id, bNestedNodeRef::id, blender::nodes::FoundNestedNodeID::is_in_loop, blender::nodes::FoundNestedNodeID::is_in_simulation, and blender::nodes::GeoNodesCallData::root_ntree.
Referenced by blender::nodes::LazyFunctionForBakeInputsUsage::execute_impl(), blender::nodes::LazyFunctionForSimulationInputsUsage::execute_impl(), blender::nodes::node_geo_bake_cc::LazyFunctionForBakeNode::execute_impl(), blender::nodes::node_geo_simulation_cc::sim_input_node::LazyFunctionForSimulationInputNode::execute_impl(), and blender::nodes::node_geo_simulation_cc::sim_output_node::LazyFunctionForSimulationOutputNode::execute_impl().
| void blender::nodes::find_node_tree_dependencies | ( | const bNodeTree & | tree, |
| Set< ID * > & | r_ids, | ||
| bool & | r_needs_own_transform_relation, | ||
| bool & | r_needs_scene_camera_relation ) |
Definition at line 136 of file geometry_nodes_execute.cc.
References process_nodes_for_depsgraph(), and tree.
Referenced by blender::ed::geometry::gather_node_group_ids().
|
static |
The output attributes are organized based on their domain, because attributes on the same domain can be evaluated together.
Definition at line 765 of file geometry_nodes_execute.cc.
References blender::MultiValueMap< Key, Value >::add(), blender::bke::allow_procedural_attribute_access(), blender::nodes::OutputAttributeInfo::field, blender::bke::SocketValueVariant::get(), IDP_GetPropertyFromGroup(), IDP_String, input_attribute_name_suffix(), blender::StringRefBase::is_empty(), blender::nodes::OutputAttributeInfo::name, socket_type_has_attribute_toggle(), and tree.
Referenced by store_output_attributes().
|
nodiscard |
Definition at line 663 of file node_geo_bake.cc.
References blender::bke::bake::BakeNodeCache::bake, blender::bke::bake::SimulationNodeCache::bake, blender::nodes::BakeDrawContext::bake, blender::bke::bake::ModifierCache::bake_cache_by_id, NodesModifierBake::bake_mode, blender::nodes::BakeDrawContext::bake_rna, blender::nodes::BakeDrawContext::bake_still, blender::nodes::BakeDrawContext::bake_target, blender::bke::bake::Baked, blender::nodes::BakeDrawContext::baked_range, NodesModifierData::bakes, NodesModifierData::bakes_num, BLI_assert, blender::bke::bake::SimulationNodeCache::cache_status, CTX_data_scene(), CTX_wm_space_node(), ELEM, blender::ed::space_node::find_nested_node_id_in_root(), blender::nodes::BakeDrawContext::frame_range, blender::bke::bake::NodeBakeCache::frames, blender::ed::space_node::get_modifier_for_node_editor(), blender::bke::bake::get_node_bake_frame_range(), blender::bke::bake::get_node_bake_target(), NodesModifierBake::id, Object::id, blender::nodes::BakeDrawContext::is_baked, lock, blender::bke::bake::ModifierCache::mutex, blender::nodes::BakeDrawContext::nmd, blender::nodes::BakeDrawContext::node, node, NODES_MODIFIER_BAKE_MODE_STILL, blender::nodes::BakeDrawContext::object, RNA_pointer_create(), NodesModifierData::runtime, blender::bke::bake::ModifierCache::simulation_cache_by_id, and blender::nodes::BakeDrawContext::snode.
Referenced by blender::nodes::node_geo_bake_cc::node_extra_info(), blender::nodes::node_geo_simulation_cc::sim_output_node::node_extra_info(), blender::nodes::node_geo_bake_cc::node_layout(), blender::nodes::node_geo_bake_cc::node_layout_ex(), and blender::nodes::node_geo_simulation_cc::node_layout_ex().
| std::unique_ptr< LazyFunction > blender::nodes::get_bake_lazy_function | ( | const bNode & | node, |
| GeometryNodesLazyFunctionGraphInfo & | lf_graph_info ) |
Definition at line 969 of file node_geo_bake.cc.
References BLI_assert.
| std::optional< std::string > blender::nodes::get_bake_state_string | ( | const BakeDrawContext & | ctx | ) |
Definition at line 741 of file node_geo_bake.cc.
References blender::nodes::BakeDrawContext::bake, NodesModifierBake::bake_size, blender::nodes::BakeDrawContext::bake_still, BLI_str_format_byte_unit(), BLI_STR_FORMAT_INT64_BYTE_UNIT_SIZE, blender::nodes::BakeDrawContext::frame_range, G, get_baked_string(), blender::nodes::BakeDrawContext::is_baked, NodesModifierBake::packed, and RPT_.
Referenced by blender::nodes::node_geo_bake_cc::node_layout_ex(), and blender::nodes::node_geo_simulation_cc::node_layout_ex().
| std::string blender::nodes::get_baked_string | ( | const BakeDrawContext & | ctx | ) |
Definition at line 733 of file node_geo_bake.cc.
References blender::nodes::BakeDrawContext::bake_still, blender::nodes::BakeDrawContext::baked_range, and RPT_.
Referenced by get_bake_state_string(), blender::nodes::node_geo_bake_cc::node_extra_info(), and blender::nodes::node_geo_simulation_cc::sim_output_node::node_extra_info().
| void blender::nodes::get_closest_in_bvhtree | ( | BVHTreeFromMesh & | tree_data, |
| const VArray< float3 > & | positions, | ||
| const IndexMask & | mask, | ||
| MutableSpan< int > | r_indices, | ||
| MutableSpan< float > | r_distances_sq, | ||
| MutableSpan< float3 > | r_positions ) |
Definition at line 21 of file node_geo_sample_nearest.cc.
References BLI_assert, BLI_bvhtree_find_nearest(), FLT_MAX, BVHTreeNearest::index, blender::MutableSpan< T >::is_empty(), BVHTreeFromMesh::nearest_callback, blender::MutableSpan< T >::size(), and BVHTreeFromMesh::tree.
Referenced by blender::nodes::node_geo_sample_nearest_cc::get_closest_mesh_edges(), blender::nodes::node_geo_sample_nearest_cc::get_closest_mesh_points(), and blender::nodes::node_geo_sample_nearest_cc::get_closest_mesh_tris().
|
static |
Definition at line 47 of file node_composite_scene_time.cc.
Referenced by register_node_type_cmp_scene_time().
|
static |
Currently, nodes that support different socket types have sockets for all supported types with different identifiers (e.g. Attribute, Attribute_001, Attribute_002, ...). In the future, we will hopefully have a better way to handle this that does not require all the sockets of different types to exist at the same time. Instead we want that there is only a single socket that can change its type while the identifier stays the same.
This function prepares us for that future. It returns the identifier that we use for a socket now based on the "base socket name" (e.g. Attribute) and its socket type. It allows us to change the socket identifiers in the future without breaking forward compatibility for the nodes handled here.
Definition at line 326 of file node_socket.cc.
References FN_NODE_COMPARE, FN_NODE_RANDOM_VALUE, get_identifier_from_decl(), bNodeSocket::identifier, SH_NODE_MAP_RANGE, SH_NODE_MIX, SOCK_VECTOR, STREQ, and bNodeSocket::type.
Referenced by do_forward_compat_versioning().
|
static |
Definition at line 189 of file node_common.cc.
References BLI_assert, blender::bke::node_interface::get_item_as(), GS, ID_NT, bNodeTreeInterfaceSocket::item, bNodeTreeInterfaceItem::item_type, node, NODE_INTERFACE_SOCKET, bNodeTreeInterfaceSocket::socket_data, and bNodeTree::tree_interface.
Referenced by declaration_for_interface_socket().
|
static |
Definition at line 357 of file derived_node_tree.cc.
References get_dot_cluster_for_context(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), blender::dot::Graph::new_cluster(), blender::nodes::DTreeContext::parent_context(), and blender::dot::Cluster::set_parent_cluster().
Referenced by get_dot_cluster_for_context(), and blender::nodes::DerivedNodeTree::to_dot().
| const FloatMathOperationInfo * blender::nodes::get_float3_math_operation_info | ( | const int | operation | ) |
Definition at line 139 of file math_functions.cc.
References NODE_VECTOR_MATH_ABSOLUTE, NODE_VECTOR_MATH_ADD, NODE_VECTOR_MATH_CEIL, NODE_VECTOR_MATH_COSINE, NODE_VECTOR_MATH_CROSS_PRODUCT, NODE_VECTOR_MATH_DISTANCE, NODE_VECTOR_MATH_DIVIDE, NODE_VECTOR_MATH_DOT_PRODUCT, NODE_VECTOR_MATH_FACEFORWARD, NODE_VECTOR_MATH_FLOOR, NODE_VECTOR_MATH_FRACTION, NODE_VECTOR_MATH_LENGTH, NODE_VECTOR_MATH_MAXIMUM, NODE_VECTOR_MATH_MINIMUM, NODE_VECTOR_MATH_MODULO, NODE_VECTOR_MATH_MULTIPLY, NODE_VECTOR_MATH_MULTIPLY_ADD, NODE_VECTOR_MATH_NORMALIZE, NODE_VECTOR_MATH_PROJECT, NODE_VECTOR_MATH_REFLECT, NODE_VECTOR_MATH_REFRACT, NODE_VECTOR_MATH_SCALE, NODE_VECTOR_MATH_SINE, NODE_VECTOR_MATH_SNAP, NODE_VECTOR_MATH_SUBTRACT, NODE_VECTOR_MATH_TANGENT, NODE_VECTOR_MATH_WRAP, and RETURN_OPERATION_INFO.
Referenced by try_dispatch_float_math_fl3_fl3_fl3_to_fl3(), try_dispatch_float_math_fl3_fl3_fl_to_fl3(), try_dispatch_float_math_fl3_fl3_to_fl(), try_dispatch_float_math_fl3_fl3_to_fl3(), try_dispatch_float_math_fl3_fl_to_fl3(), try_dispatch_float_math_fl3_to_fl(), and try_dispatch_float_math_fl3_to_fl3().
| const FloatMathOperationInfo * blender::nodes::get_float_compare_operation_info | ( | const int | operation | ) |
Definition at line 109 of file math_functions.cc.
References NODE_COMPARE_EQUAL, NODE_COMPARE_GREATER_EQUAL, NODE_COMPARE_GREATER_THAN, NODE_COMPARE_LESS_EQUAL, NODE_COMPARE_LESS_THAN, NODE_COMPARE_NOT_EQUAL, and RETURN_OPERATION_INFO.
| const FloatMathOperationInfo * blender::nodes::get_float_math_operation_info | ( | const int | operation | ) |
Definition at line 9 of file math_functions.cc.
References NODE_MATH_ABSOLUTE, NODE_MATH_ADD, NODE_MATH_ARCCOSINE, NODE_MATH_ARCSINE, NODE_MATH_ARCTAN2, NODE_MATH_ARCTANGENT, NODE_MATH_CEIL, NODE_MATH_COMPARE, NODE_MATH_COSH, NODE_MATH_COSINE, NODE_MATH_DEGREES, NODE_MATH_DIVIDE, NODE_MATH_EXPONENT, NODE_MATH_FLOOR, NODE_MATH_FLOORED_MODULO, NODE_MATH_FRACTION, NODE_MATH_GREATER_THAN, NODE_MATH_INV_SQRT, NODE_MATH_LESS_THAN, NODE_MATH_LOGARITHM, NODE_MATH_MAXIMUM, NODE_MATH_MINIMUM, NODE_MATH_MODULO, NODE_MATH_MULTIPLY, NODE_MATH_MULTIPLY_ADD, NODE_MATH_PINGPONG, NODE_MATH_POWER, NODE_MATH_RADIANS, NODE_MATH_ROUND, NODE_MATH_SIGN, NODE_MATH_SINE, NODE_MATH_SINH, NODE_MATH_SMOOTH_MAX, NODE_MATH_SMOOTH_MIN, NODE_MATH_SNAP, NODE_MATH_SQRT, NODE_MATH_SUBTRACT, NODE_MATH_TANGENT, NODE_MATH_TANH, NODE_MATH_TRUNC, NODE_MATH_WRAP, and RETURN_OPERATION_INFO.
Referenced by blender::nodes::node_composite_math_cc::MathShaderNode::get_shader_function_name(), blender::nodes::node_shader_math_cc::gpu_shader_get_name(), try_dispatch_float_math_fl_fl_fl_to_fl(), try_dispatch_float_math_fl_fl_to_fl(), and try_dispatch_float_math_fl_to_fl().
|
static |
Gives the domain with the smallest number of elements that always exists.
Definition at line 2898 of file geometry_nodes_lazy_function.cc.
References blender::bke::GeometryComponent::Curve, blender::bke::GeometryComponent::GreasePencil, blender::bke::GeometryComponent::Instance, blender::bke::GeometryComponent::Mesh, and blender::bke::GeometryComponent::PointCloud.
Referenced by blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group().
|
static |
Definition at line 284 of file node_socket.cc.
References BLI_str_startswith(), bNodeSocket::identifier, and bNodeSocket::type.
Referenced by get_current_socket_identifier_for_future_socket(), and get_identifier_from_decl().
|
static |
Definition at line 301 of file node_socket.cc.
References get_identifier_from_decl().
| std::unique_ptr< LazyFunction > blender::nodes::get_index_switch_node_lazy_function | ( | const bNode & | node, |
| GeometryNodesLazyFunctionGraphInfo & | lf_graph_info ) |
Definition at line 392 of file node_geo_index_switch.cc.
References BLI_assert.
|
static |
Definition at line 215 of file node_common.cc.
References BLI_assert, blender::bke::node_interface::get_item_as(), GS, bNodeTree::id, ID_NT, blender::bke::bNodeSocketType::interface_init_socket, bNodeTreeInterfaceSocket::item, bNodeTreeInterfaceItem::item_type, node, NODE_INTERFACE_SOCKET, and bNodeTree::tree_interface.
Referenced by declaration_for_interface_socket().
| std::unique_ptr< LazyFunction > blender::nodes::get_menu_switch_node_lazy_function | ( | const bNode & | node, |
| GeometryNodesLazyFunctionGraphInfo & | lf_graph_info ) |
Definition at line 509 of file node_geo_menu_switch.cc.
References BLI_assert.
| std::unique_ptr< LazyFunction > blender::nodes::get_menu_switch_node_socket_usage_lazy_function | ( | const bNode & | node | ) |
Definition at line 517 of file node_geo_menu_switch.cc.
References BLI_assert.
|
static |
Definition at line 5946 of file geometry_nodes_lazy_function.cc.
References DEG_get_evaluated_id(), and depsgraph.
Referenced by blender::nodes::GeoNodesOperatorDepsgraphs::get_evaluated_id().
| std::unique_ptr< LazyFunction > blender::nodes::get_simulation_input_lazy_function | ( | const bNodeTree & | node_tree, |
| const bNode & | node, | ||
| GeometryNodesLazyFunctionGraphInfo & | own_lf_graph_info ) |
Definition at line 968 of file node_geo_simulation.cc.
References BLI_assert, node, and node_tree.
| std::unique_ptr< LazyFunction > blender::nodes::get_simulation_output_lazy_function | ( | const bNode & | node, |
| GeometryNodesLazyFunctionGraphInfo & | own_lf_graph_info ) |
Definition at line 979 of file node_geo_simulation.cc.
References BLI_assert, and node.
|
static |
Definition at line 69 of file geometry_nodes_lazy_function.cc.
References BLI_assert, and blender::bke::bNodeSocketType::geometry_nodes_cpp_type.
Referenced by get_socket_cpp_type(), get_socket_default_value(), lazy_function_interface_from_node(), and blender::nodes::LazyFunctionForMultiInput::LazyFunctionForMultiInput().
|
static |
Definition at line 79 of file geometry_nodes_lazy_function.cc.
References get_socket_cpp_type(), and bNodeSocket::typeinfo.
|
static |
Definition at line 1188 of file geometry_nodes_lazy_function.cc.
References blender::LinearAllocator< Allocator >::allocate(), bNodeSocket::default_value, blender::bke::bNodeSocketType::get_geometry_nodes_cpp_value, get_socket_cpp_type(), get_socket_default_value(), and bNodeSocket::typeinfo.
Referenced by get_socket_default_value().
| std::unique_ptr< LazyFunction > blender::nodes::get_switch_node_lazy_function | ( | const bNode & | node | ) |
Definition at line 266 of file node_geo_switch.cc.
References BLI_assert.
Definition at line 84 of file geometry_nodes_lazy_function.cc.
References blender::VectorCPPType::get_from_value(), and blender::VectorCPPType::self.
Referenced by lazy_function_interface_from_node(), and blender::nodes::LazyFunctionForMultiInput::LazyFunctionForMultiInput().
| std::unique_ptr< LazyFunction > blender::nodes::get_warning_node_lazy_function | ( | const bNode & | node | ) |
Definition at line 101 of file node_geo_warning.cc.
References BLI_assert.
|
static |
Checks if the geometry nodes caller requested this gizmo to be evaluated.
Definition at line 859 of file geometry_nodes_lazy_function.cc.
References blender::nodes::GeoNodesLFUserData::call_data, blender::nodes::GeoNodesLFUserData::compute_context, blender::Span< T >::contains(), blender::ComputeContext::hash(), blender::nodes::GeoNodesSideEffectNodes::nodes_by_context, and blender::nodes::GeoNodesCallData::side_effect_nodes.
Referenced by blender::nodes::LazyFunctionForGizmoInputsUsage::execute_impl(), and blender::nodes::LazyFunctionForGizmoNode::execute_impl().
| const EnumPropertyItem * blender::nodes::grid_custom_data_type_items_filter_fn | ( | bContext * | , |
| PointerRNA * | , | ||
| PropertyRNA * | , | ||
| bool * | r_free ) |
Definition at line 94 of file node_geometry_util.cc.
References custom_data_type_supports_grids(), enum_items_filter(), rna_enum_attribute_type_items, and EnumPropertyItem::value.
Referenced by blender::nodes::node_geo_store_named_grid_cc::node_rna().
| const EnumPropertyItem * blender::nodes::grid_socket_type_items_filter_fn | ( | bContext * | , |
| PointerRNA * | , | ||
| PropertyRNA * | , | ||
| bool * | r_free ) |
Definition at line 106 of file node_geometry_util.cc.
References enum_items_filter(), rna_enum_node_socket_data_type_items, socket_type_supports_grids(), and EnumPropertyItem::value.
Referenced by blender::nodes::node_geo_get_named_grid_cc::node_rna().
|
static |
Definition at line 743 of file node_common.cc.
References b, bNodeTreeInterfaceItem::item_type, and node_tree.
Referenced by register_node_type_group_input().
|
static |
Definition at line 799 of file node_common.cc.
References blender::bke::node_interface::add_interface_socket_from_node(), BLI_assert, bNodeLink::fromsock, group_input_insert_link(), bNodeSocket::identifier, bNodeTreeInterfaceSocket::identifier, bNodeSocket::in_out, node_group_input_find_socket(), SOCK_IN, blender::StringRefBase::startswith(), bNodeLink::tonode, bNodeLink::tosock, and update_node_declaration_and_sockets().
Referenced by group_input_insert_link(), and register_node_type_group_input().
|
static |
Definition at line 771 of file node_common.cc.
References b, group_output_declare(), bNodeTreeInterfaceItem::item_type, and node_tree.
Referenced by group_output_declare(), and register_node_type_group_output().
|
static |
Definition at line 820 of file node_common.cc.
References blender::bke::node_interface::add_interface_socket_from_node(), BLI_assert, bNodeLink::fromnode, bNodeLink::fromsock, group_output_insert_link(), bNodeSocket::identifier, bNodeTreeInterfaceSocket::identifier, bNodeSocket::in_out, node_group_output_find_socket(), SOCK_OUT, blender::StringRefBase::startswith(), bNodeLink::tosock, and update_node_declaration_and_sockets().
Referenced by group_output_insert_link(), and register_node_type_group_output().
|
static |
When the extension socket on group input nodes is hidden, we consider the socket visibility fixed and don't want to add newly created group inputs.
Definition at line 403 of file node_socket.cc.
References BLI_assert.
Referenced by refresh_node_sockets_and_panels().
|
static |
Definition at line 218 of file geometry_nodes_execute.cc.
References blender::bke::idprop::create(), IDPropertyUIDataID::id_type, and IDP_ui_data_ensure().
Referenced by id_property_create_from_socket().
| std::unique_ptr< IDProperty, bke::idprop::IDPropertyDeleter > blender::nodes::id_property_create_from_socket | ( | const bNodeTreeInterfaceSocket & | socket, |
| const bool | use_name_for_ids ) |
Definition at line 235 of file geometry_nodes_execute.cc.
References IDPropertyUIDataFloat::base, IDPropertyUIDataInt::base, IDPropertyUIDataString::base, BLI_strdup(), blender::bke::idprop::create(), blender::bke::idprop::create_bool(), IDPropertyUIDataBool::default_value, IDPropertyUIDataFloat::default_value, IDPropertyUIDataInt::default_value, IDPropertyUIDataString::default_value, double(), FLT_MAX, id_name_or_value_prop(), ID_OB, id_property_int_update_enum_items(), bNodeTreeInterfaceSocket::identifier, IDP_ui_data_ensure(), is_layer_selection_field(), MEM_mallocN, PROP_COLOR, PROP_EULER, IDPropertyUIData::rna_subtype, SOCK_BOOLEAN, SOCK_COLLECTION, SOCK_CUSTOM, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_IMAGE, SOCK_INT, SOCK_MATERIAL, SOCK_MATRIX, SOCK_MENU, SOCK_OBJECT, SOCK_RGBA, SOCK_ROTATION, SOCK_SHADER, SOCK_STRING, SOCK_TEXTURE, SOCK_VECTOR, bNodeTreeInterfaceSocket::socket_data, IDPropertyUIDataFloat::soft_max, IDPropertyUIDataInt::soft_max, IDPropertyUIDataFloat::soft_min, IDPropertyUIDataInt::soft_min, and blender::bke::bNodeSocketType::type.
Referenced by update_input_properties_from_node_tree().
|
static |
Definition at line 176 of file geometry_nodes_execute.cc.
References BLI_assert, BLI_strdup(), BLI_strdup_null(), blender::bke::RuntimeNodeEnumItem::description, IDPropertyUIDataEnumItem::description, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, IDPropertyUIDataEnumItem::icon, blender::bke::RuntimeNodeEnumItem::identifier, IDPropertyUIDataEnumItem::identifier, IDP_EnumItemsValidate(), blender::Span< T >::index_range(), blender::bke::RuntimeNodeEnumItem::name, IDPropertyUIDataEnumItem::name, blender::Span< T >::size(), and IDPropertyUIDataEnumItem::value.
Referenced by id_property_create_from_socket().
| bool blender::nodes::id_property_type_matches_socket | ( | const bNodeTreeInterfaceSocket & | socket, |
| const IDProperty & | property, | ||
| const bool | use_name_for_ids ) |
Definition at line 546 of file geometry_nodes_execute.cc.
References old_id_property_type_matches_socket_convert_to_new().
Referenced by blender::check_property_socket_sync(), blender::ed::geometry::draw_property_for_socket(), and initialize_group_input().
|
static |
Definition at line 1594 of file geometry_nodes_lazy_function.cc.
References ignore_zone_bsocket(), and bNodeSocket::typeinfo.
Referenced by ignore_zone_bsocket(), initialize_zone_wrapper(), zone_wrapper_input_name(), and zone_wrapper_output_name().
|
static |
Definition at line 554 of file geometry_nodes_execute.cc.
References BLI_assert, BLI_assert_unreachable, float, GS, ID_GR, ID_IM, ID_MA, ID_OB, ID_TE, IDP_Array, IDP_Bool, IDP_DOUBLE, IDP_Double, IDP_FLOAT, IDP_Float, IDP_Id, IDP_INT, IDP_Int, IDP_String, SOCK_BOOLEAN, SOCK_COLLECTION, SOCK_FLOAT, SOCK_IMAGE, SOCK_INT, SOCK_MATERIAL, SOCK_MENU, SOCK_OBJECT, SOCK_RGBA, SOCK_ROTATION, SOCK_STRING, SOCK_TEXTURE, SOCK_VECTOR, IDProperty::subtype, blender::math::to_quaternion(), and IDProperty::type.
Referenced by initialize_group_input().
|
static |
Definition at line 702 of file geometry_nodes_execute.cc.
References blender::bke::allow_procedural_attribute_access(), blender::bke::bNodeSocketType::base_cpp_type, blender::bke::AttributeFieldInput::Create(), blender::bke::bNodeSocketType::get_geometry_nodes_cpp_value, id_property_type_matches_socket(), bNodeTreeInterfaceSocket::identifier, IDP_GetPropertyFromGroup(), IDP_String, init_socket_cpp_value_from_property(), input_attribute_name_get(), input_has_attribute_toggle(), is_layer_selection_field(), SOCK_CUSTOM, bNodeTreeInterfaceSocket::socket_data, tree, and blender::bke::bNodeSocketType::type.
Referenced by execute_geometry_nodes_on_geometry().
|
static |
Definition at line 1606 of file geometry_nodes_lazy_function.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::append_and_get_index_as(), blender::nodes::ZoneFunctionIndices::attributes_by_caller_propagation_index, blender::nodes::ZoneFunctionIndices::attributes_by_field_source_index, blender::nodes::ZoneFunctionIndices::border_link_usages, blender::nodes::ZoneFunctionIndices::border_links, ignore_zone_bsocket(), blender::nodes::ZoneBodyFunction::indices, blender::nodes::ZoneBuildInfo::indices, initialize_zone_wrapper(), blender::nodes::ZoneFunctionIndices::input_usages, blender::nodes::ZoneFunctionIndices::inputs, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::nodes::ZoneFunctionIndices::main, blender::nodes::ZoneFunctionIndices::output_usages, and blender::nodes::ZoneFunctionIndices::outputs.
Referenced by initialize_zone_wrapper(), blender::nodes::LazyFunctionForForeachGeometryElementZone::LazyFunctionForForeachGeometryElementZone(), and blender::nodes::LazyFunctionForRepeatZone::LazyFunctionForRepeatZone().
| std::optional< StringRef > blender::nodes::input_attribute_name_get | ( | const IDProperty & | props, |
| const bNodeTreeInterfaceSocket & | io_input ) |
Definition at line 677 of file geometry_nodes_execute.cc.
References bNodeTreeInterfaceSocket::identifier, IDP_Bool, IDP_BOOLEAN, IDP_GetPropertyFromGroup(), IDP_INT, IDP_Int, IDP_String, input_attribute_name_suffix(), input_use_attribute_suffix(), and IDProperty::type.
Referenced by initialize_group_input().
| StringRef blender::nodes::input_attribute_name_suffix | ( | ) |
| bool blender::nodes::input_has_attribute_toggle | ( | const bNodeTree & | node_tree, |
| const int | socket_index ) |
Definition at line 161 of file geometry_nodes_execute.cc.
References BLI_assert, ELEM, blender::nodes::FieldInferencingInterface::inputs, node_tree, None, SOCK_MENU, and blender::bke::bNodeSocketType::type.
Referenced by blender::ed::geometry::draw_property_for_socket(), and initialize_group_input().
| StringRef blender::nodes::input_use_attribute_suffix | ( | ) |
Definition at line 146 of file geometry_nodes_execute.cc.
Referenced by blender::ed::geometry::add_attribute_search_or_value_buttons(), input_attribute_name_get(), and update_input_properties_from_node_tree().
|
static |
Checks which sockets of the node are available and creates corresponding inputs/outputs on the lazy-function.
Definition at line 97 of file geometry_nodes_lazy_function.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_and_get_index_as(), get_socket_cpp_type(), and get_vector_type().
Referenced by blender::nodes::LazyFunctionForGeometryNode::LazyFunctionForGeometryNode(), blender::nodes::LazyFunctionForMultiFunctionNode::LazyFunctionForMultiFunctionNode(), blender::nodes::LazyFunctionForMutedNode::LazyFunctionForMutedNode(), blender::nodes::LazyFunctionForUndefinedNode::LazyFunctionForUndefinedNode(), and blender::nodes::LazyFunctionForViewerNode::LazyFunctionForViewerNode().
| std::string blender::nodes::make_anonymous_attribute_socket_inspection_string | ( | const bNodeSocket & | socket | ) |
Definition at line 449 of file geometry_nodes_lazy_function.cc.
References make_anonymous_attribute_socket_inspection_string(), and bNodeSocket::name.
Referenced by blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_main_items_and_geometry(), make_anonymous_attribute_socket_inspection_string(), blender::nodes::node_geo_bake_cc::LazyFunctionForBakeNode::make_attribute_field(), blender::nodes::node_geo_simulation_cc::make_attribute_field(), and blender::nodes::LazyFunctionForGeometryNode::output_anonymous_attribute_field().
| std::string blender::nodes::make_anonymous_attribute_socket_inspection_string | ( | StringRef | node_name, |
| StringRef | socket_name ) |
Definition at line 454 of file geometry_nodes_lazy_function.cc.
References TIP_.
| std::unique_ptr< SocketDeclaration > blender::nodes::make_declaration_for_socket_type | ( | const eNodeSocketDatatype | socket_type | ) |
Definition at line 453 of file node_declaration.cc.
References socket_type_to_static_decl_type().
| void blender::nodes::mix_baked_data_item | ( | eNodeSocketDatatype | socket_type, |
| void * | prev, | ||
| const void * | next, | ||
| const float | factor ) |
Definition at line 988 of file node_geo_simulation.cc.
References blender::bke::SocketValueVariant::convert_to_single(), blender::bke::attribute_math::convert_to_static_type(), blender::GPointer::get(), blender::bke::SocketValueVariant::get_single_ptr(), blender::bke::SocketValueVariant::is_context_dependent_field(), blender::bke::attribute_math::mix2(), blender::geometry::mix_geometries(), next, SOCK_BOOLEAN, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_INT, SOCK_MATRIX, SOCK_RGBA, SOCK_ROTATION, SOCK_VECTOR, and blender::bke::socket_type_to_geo_nodes_base_cpp_type().
Referenced by blender::nodes::node_geo_bake_cc::LazyFunctionForBakeNode::output_mixed_cached_state(), and blender::nodes::node_geo_simulation_cc::sim_output_node::LazyFunctionForSimulationOutputNode::output_mixed_cached_state().
| void blender::nodes::node_geo_exec_with_missing_openvdb | ( | GeoNodeExecParams & | params | ) |
Definition at line 118 of file node_geometry_util.cc.
Referenced by blender::nodes::node_geo_distribute_points_in_grid_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::nodes::node_geo_get_named_grid_cc::node_geo_exec(), blender::nodes::node_geo_grid_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_density_grid_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_sdf_grid_cc::node_geo_exec(), blender::nodes::node_geo_points_to_sdf_grid_cc::node_geo_exec(), blender::nodes::node_geo_points_to_volume_cc::node_geo_exec(), blender::nodes::node_geo_sample_grid_cc::node_geo_exec(), blender::nodes::node_geo_sample_grid_index_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_boolean_cc::node_geo_exec(), blender::nodes::node_geo_store_named_grid_cc::node_geo_exec(), blender::nodes::node_geo_volume_cube_cc::node_geo_exec(), and blender::nodes::node_geo_volume_to_mesh_cc::node_geo_exec().
| void blender::nodes::node_group_declare | ( | NodeDeclarationBuilder & | b | ) |
Definition at line 467 of file node_common.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), b, declaration_for_interface_panel(), declaration_for_interface_socket(), bNodeTreeInterfaceSocket::flag, blender::bke::node_interface::get_item_as(), ID_IS_LINKED, ID_TAG_MISSING, blender::nodes::SocketDeclaration::input_field_type, blender::nodes::FieldInferencingInterface::inputs, blender::nodes::NodeDeclaration::inputs, bNodeTreeInterfaceItem::item_type, blender::nodes::NodeDeclaration::items, node_group_declare(), NODE_INTERFACE_PANEL, NODE_INTERFACE_SOCKET, NODE_INTERFACE_SOCKET_INPUT, NODE_INTERFACE_SOCKET_OUTPUT, NTREE_GEOMETRY, blender::nodes::FieldInferencingInterface::outputs, blender::nodes::NodeDeclaration::outputs, set_default_input_field(), blender::nodes::NodeDeclaration::skip_updating_sockets, SOCK_IN, SOCK_OUT, and blender::nodes::NodeDeclaration::use_custom_socket_order.
Referenced by node_group_declare(), register_node_type_cmp_custom_group(), register_node_type_cmp_group(), register_node_type_geo_custom_group(), register_node_type_geo_group(), register_node_type_sh_custom_group(), register_node_type_sh_group(), and register_node_type_tex_group().
|
static |
Definition at line 84 of file geometry_nodes_execute.cc.
References GEO_NODE_TRANSFORM_SPACE_RELATIVE, NodeGeometryCollectionInfo::transform_space, and NodeGeometryObjectInfo::transform_space.
Referenced by process_nodes_for_depsgraph().
|
static |
Check if the given old_property property type is compatible with the given socket type. E.g. a SOCK_FLOAT socket can use data from IDP_FLOAT, IDP_INT and IDP_DOUBLE ID-properties.
If new_property is given, it is expected to be of the 'perfect match' type with the given socket (see id_property_create_from_socket), and its value will be set from the value of old_property, if possible.
Definition at line 454 of file geometry_nodes_execute.cc.
References BLI_assert, BLI_assert_unreachable, IDProperty::data, ELEM, float, id_us_plus(), IDP_Bool, IDP_BOOLEAN, IDP_DOUBLE, IDP_Double, IDP_FLOAT, IDP_Float, IDP_ID, IDP_Id, IDP_INT, IDP_Int, is_layer_selection_field(), old_id_property_type_matches_socket_convert_to_new_float_vec(), old_id_property_type_matches_socket_convert_to_new_int(), old_id_property_type_matches_socket_convert_to_new_string(), IDPropertyData::pointer, SOCK_BOOLEAN, SOCK_COLLECTION, SOCK_CUSTOM, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_IMAGE, SOCK_INT, SOCK_MATERIAL, SOCK_MATRIX, SOCK_MENU, SOCK_OBJECT, SOCK_RGBA, SOCK_ROTATION, SOCK_SHADER, SOCK_STRING, SOCK_TEXTURE, SOCK_VECTOR, blender::bke::bNodeSocketType::type, and IDProperty::type.
Referenced by id_property_type_matches_socket(), and update_input_properties_from_node_tree().
|
static |
Definition at line 393 of file geometry_nodes_execute.cc.
References BLI_assert, IDProperty::data, ELEM, float, IDP_ARRAY, IDP_Array, IDP_DOUBLE, IDP_FLOAT, IDP_INT, IDProperty::len, len, IDPropertyData::pointer, IDProperty::subtype, and IDProperty::type.
Referenced by old_id_property_type_matches_socket_convert_to_new().
|
static |
Definition at line 380 of file geometry_nodes_execute.cc.
References BLI_assert, IDP_INT, IDP_Int, and IDProperty::type.
Referenced by old_id_property_type_matches_socket_convert_to_new().
|
static |
Definition at line 433 of file geometry_nodes_execute.cc.
References BLI_assert, IDP_AssignString(), IDP_STRING, IDP_String, IDP_STRING_SUB_UTF8, IDProperty::subtype, and IDProperty::type.
Referenced by old_id_property_type_matches_socket_convert_to_new().
|
static |
Definition at line 107 of file geometry_nodes_execute.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), add_used_ids_from_sockets(), GEO_NODE_INPUT_ACTIVE_CAMERA, node_needs_own_transform_relation(), process_nodes_for_depsgraph(), and tree.
Referenced by find_node_tree_dependencies(), and process_nodes_for_depsgraph().
|
static |
Definition at line 496 of file node_socket.cc.
References blender::nodes::NodeDeclaration::matches(), blender::bke::node_socket_declarations_update(), refresh_node_sockets_and_panels(), and blender::nodes::NodeDeclaration::skip_updating_sockets.
Referenced by update_node_declaration_and_sockets().
|
static |
Definition at line 248 of file node_socket.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), blender::nodes::PanelDeclaration::build(), blender::nodes::PanelDeclaration::identifier, bNodePanelState::identifier, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::nodes::PanelDeclaration::matches(), blender::Vector< T, InlineBufferCapacity, Allocator >::remove_and_reorder(), and blender::nodes::PanelDeclaration::update_or_build().
Referenced by refresh_node_sockets_and_panels().
|
static |
Definition at line 183 of file node_socket.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BKE_ntree_update_tag_socket_new(), blender::nodes::SocketDeclaration::build(), bNodeSocket::flag, blender::nodes::SocketDeclaration::identifier, bNodeSocket::identifier, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), bNodeTree::links, LISTBASE_FOREACH, blender::nodes::SocketDeclaration::matches(), blender::nodes::SocketDeclaration::name, bNodeSocket::name, blender::Vector< T, InlineBufferCapacity, Allocator >::remove_and_reorder(), SET_FLAG_FROM_TEST, SOCK_HIDDEN, STRNCPY, and blender::nodes::SocketDeclaration::update_or_build().
Referenced by refresh_node_sockets_and_panels().
|
static |
Definition at line 413 of file node_socket.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_addtail(), BLI_listbase_clear(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), do_forward_compat_versioning(), hide_new_group_input_sockets(), blender::nodes::NodeDeclaration::items, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, MEM_SAFE_FREE, blender::bke::node_remove_socket_ex(), refresh_node_panel(), refresh_node_socket(), SOCK_IN, and blender::realtime_compositor::Vector.
Referenced by refresh_node().
|
static |
Definition at line 18 of file node_geo_common.cc.
References BLI_assert, blender::bke::bNodeType::declare, geo_node_poll_default(), GROUP_NODE_DEFAULT_WIDTH, GROUP_NODE_MAX_WIDTH, GROUP_NODE_MIN_WIDTH, blender::bke::bNodeType::insert_link, blender::bke::bNodeType::labelfunc, NODE_CLASS_GROUP, NODE_GROUP, node_group_declare(), node_group_label(), node_group_poll_instance(), node_group_ui_class(), node_group_ui_description(), node_insert_link_default(), blender::bke::node_register_type(), blender::bke::node_type_base_custom(), blender::bke::node_type_size(), blender::bke::bNodeType::poll, blender::bke::bNodeType::poll_instance, blender::bke::bNodeType::rna_ext, RNA_struct_blender_type_set(), RNA_struct_find(), ExtensionRNA::srna, blender::bke::bNodeType::type, blender::bke::bNodeType::ui_class, and blender::bke::bNodeType::ui_description_fn.
|
static |
Definition at line 21 of file node_declaration.cc.
Referenced by build_node_declaration().
| PropertyRNA * blender::nodes::RNA_def_node_enum | ( | StructRNA * | srna, |
| const char * | identifier, | ||
| const char * | ui_name, | ||
| const char * | ui_description, | ||
| const EnumPropertyItem * | static_items, | ||
| const EnumRNAAccessors | accessors, | ||
| std::optional< int > | default_value, | ||
| const EnumPropertyItemFunc | item_func, | ||
| const bool | allow_animation ) |
Definition at line 25 of file node_rna_define.cc.
References blender::nodes::EnumRNAAccessors::getter, NA_EDITED, NC_NODE, PROP_ANIMATABLE, PROP_ENUM, PROP_NONE, RNA_def_property(), RNA_def_property_clear_flag(), RNA_def_property_enum_default(), RNA_def_property_enum_funcs_runtime(), RNA_def_property_enum_items(), RNA_def_property_ui_text(), RNA_def_property_update_notifier(), RNA_def_property_update_runtime(), rna_Node_socket_update(), rna_Node_update(), and blender::nodes::EnumRNAAccessors::setter.
Referenced by blender::nodes::node_fn_align_euler_to_vector_cc::node_rna(), blender::nodes::node_fn_align_rotation_to_vector_cc::node_rna(), blender::nodes::node_fn_axes_to_rotation_cc::node_rna(), blender::nodes::node_fn_boolean_math_cc::node_rna(), blender::nodes::node_fn_combine_color_cc::node_rna(), blender::nodes::node_fn_compare_cc::node_rna(), blender::nodes::node_fn_hash_value_cc::node_rna(), blender::nodes::node_fn_integer_math_cc::node_rna(), blender::nodes::node_fn_rotate_rotation_cc::node_rna(), blender::nodes::node_fn_separate_color_cc::node_rna(), blender::nodes::node_fn_value_to_string_cc::node_rna(), blender::nodes::node_geo_accumulate_field_cc::node_rna(), blender::nodes::node_geo_attribute_domain_size_cc::node_rna(), blender::nodes::node_geo_attribute_statistic_cc::node_rna(), blender::nodes::node_geo_blur_attribute_cc::node_rna(), blender::nodes::node_geo_boolean_cc::node_rna(), blender::nodes::node_geo_collection_info_cc::node_rna(), blender::nodes::node_geo_curve_fill_cc::node_rna(), blender::nodes::node_geo_curve_fillet_cc::node_rna(), blender::nodes::node_geo_curve_primitive_arc_cc::node_rna(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::node_rna(), blender::nodes::node_geo_curve_primitive_circle_cc::node_rna(), blender::nodes::node_geo_curve_primitive_line_cc::node_rna(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_rna(), blender::nodes::node_geo_curve_resample_cc::node_rna(), blender::nodes::node_geo_curve_spline_type_cc::node_rna(), blender::nodes::node_geo_curve_to_points_cc::node_rna(), blender::nodes::node_geo_curve_trim_cc::node_rna(), blender::nodes::node_geo_delete_geometry_cc::node_rna(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_rna(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_rna(), blender::nodes::node_geo_duplicate_elements_cc::node_rna(), blender::nodes::node_geo_evaluate_at_index_cc::node_rna(), blender::nodes::node_geo_evaluate_on_domain_cc::node_rna(), blender::nodes::node_geo_extrude_mesh_cc::node_rna(), blender::nodes::node_geo_get_named_grid_cc::node_rna(), blender::nodes::node_geo_gizmo_dial_cc::node_rna(), blender::nodes::node_geo_gizmo_linear_cc::node_rna(), blender::nodes::node_geo_index_switch_cc::node_rna(), blender::nodes::node_geo_input_named_attribute_cc::node_rna(), blender::nodes::node_geo_menu_switch_cc::node_rna(), blender::nodes::node_geo_merge_by_distance_cc::node_rna(), blender::nodes::node_geo_merge_layers_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_line_cc::node_rna(), blender::nodes::node_geo_mesh_to_points_cc::node_rna(), blender::nodes::node_geo_mesh_to_volume_cc::node_rna(), blender::nodes::node_geo_object_info_cc::node_rna(), blender::nodes::node_geo_points_to_volume_cc::node_rna(), blender::nodes::node_geo_proximity_cc::node_rna(), blender::nodes::node_geo_raycast_cc::node_rna(), blender::nodes::node_geo_remove_attribute_cc::node_rna(), blender::nodes::node_geo_sample_grid_cc::node_rna(), blender::nodes::node_geo_sample_grid_index_cc::node_rna(), blender::nodes::node_geo_sample_nearest_cc::node_rna(), blender::nodes::node_geo_sample_nearest_surface_cc::node_rna(), blender::nodes::node_geo_sample_uv_surface_cc::node_rna(), blender::nodes::node_geo_scale_elements_cc::node_rna(), blender::nodes::node_geo_sdf_grid_boolean_cc::node_rna(), blender::nodes::node_geo_separate_geometry_cc::node_rna(), blender::nodes::node_geo_set_curve_handles_cc::node_rna(), blender::nodes::node_geo_set_curve_normal_cc::node_rna(), blender::nodes::node_geo_set_shade_smooth_cc::node_rna(), blender::nodes::node_geo_sort_elements_cc::node_rna(), blender::nodes::node_geo_split_to_instances_cc::node_rna(), blender::nodes::node_geo_store_named_attribute_cc::node_rna(), blender::nodes::node_geo_store_named_grid_cc::node_rna(), blender::nodes::node_geo_subdivision_surface_cc::node_rna(), blender::nodes::node_geo_switch_cc::node_rna(), blender::nodes::node_geo_tool_active_element_cc::node_rna(), blender::nodes::node_geo_tool_set_selection_cc::node_rna(), blender::nodes::node_geo_transform_geometry_cc::node_rna(), blender::nodes::node_geo_triangulate_cc::node_rna(), blender::nodes::node_geo_uv_unwrap_cc::node_rna(), blender::nodes::node_geo_viewer_cc::node_rna(), blender::nodes::node_geo_volume_to_mesh_cc::node_rna(), and blender::nodes::node_geo_warning_cc::node_rna().
| void blender::nodes::search_link_ops_for_basic_node | ( | GatherLinkSearchOpParams & | params | ) |
This callback can be used for a node type when a few things are true about its inputs. To avoid creating more boilerplate, it is the default callback for node types.
If a node type does not meet these criteria, the function will do nothing in a release build. In a debug build, an assert will most likely be hit.
Definition at line 147 of file socket_search_link.cc.
References params, search_link_ops_for_declarations(), blender::nodes::NodeDeclaration::sockets(), and blender::bke::bNodeType::static_declaration.
Referenced by cmp_node_type_base(), fn_node_type_base(), geo_node_type_base(), search_link_ops_for_import_node(), search_link_ops_for_tool_node(), search_link_ops_for_volume_grid_node(), sh_fn_node_type_base(), and sh_node_type_base().
| void blender::nodes::search_link_ops_for_declarations | ( | GatherLinkSearchOpParams & | params, |
| Span< SocketDeclaration * > | declarations ) |
Definition at line 102 of file socket_search_link.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::nodes::SocketDeclaration::can_connect(), IFACE_, blender::Span< T >::index_range(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::nodes::SocketDeclaration::is_default_link_socket, blender::nodes::SocketDeclaration::name, and params.
Referenced by blender::nodes::node_fn_random_value_cc::node_gather_link_search_ops(), blender::nodes::node_geo_accumulate_field_cc::node_gather_link_searches(), blender::nodes::node_geo_attribute_statistic_cc::node_gather_link_searches(), blender::nodes::node_geo_blur_attribute_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_sample_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_trim_cc::node_gather_link_searches(), blender::nodes::node_geo_input_named_attribute_cc::node_gather_link_searches(), blender::nodes::node_geo_mesh_primitive_line_cc::node_gather_link_searches(), blender::nodes::node_geo_raycast_cc::node_gather_link_searches(), blender::nodes::node_geo_sample_index_cc::node_gather_link_searches(), blender::nodes::node_geo_sample_nearest_surface_cc::node_gather_link_searches(), blender::nodes::node_geo_sample_uv_surface_cc::node_gather_link_searches(), blender::nodes::node_geo_store_named_attribute_cc::node_gather_link_searches(), blender::nodes::node_shader_tex_sky_cc::node_gather_link_searches(), and search_link_ops_for_basic_node().
| void blender::nodes::search_link_ops_for_import_node | ( | GatherLinkSearchOpParams & | params | ) |
Definition at line 45 of file node_geometry_util.cc.
References params, and search_link_ops_for_basic_node().
Referenced by blender::nodes::node_geo_import_obj::node_register(), blender::nodes::node_geo_import_stl::node_register(), and blender::nodes::nodes_geo_import_ply::node_register().
| void blender::nodes::search_link_ops_for_tool_node | ( | GatherLinkSearchOpParams & | params | ) |
Definition at line 31 of file node_geometry_util.cc.
References params, search_link_ops_for_basic_node(), and SNODE_GEOMETRY_TOOL.
Referenced by blender::nodes::node_geo_mouse_position_cc::node_register(), blender::nodes::node_geo_tool_3d_cursor_cc::node_register(), blender::nodes::node_geo_tool_active_element_cc::node_register(), blender::nodes::node_geo_tool_face_set_cc::node_register(), blender::nodes::node_geo_tool_selection_cc::node_register(), blender::nodes::node_geo_tool_set_face_set_cc::node_register(), blender::nodes::node_geo_tool_set_selection_cc::node_register(), and blender::nodes::node_geo_viewport_transform_cc::node_register().
| void blender::nodes::search_link_ops_for_volume_grid_node | ( | GatherLinkSearchOpParams & | params | ) |
Definition at line 38 of file node_geometry_util.cc.
References params, and search_link_ops_for_basic_node().
Referenced by blender::nodes::node_geo_distribute_points_in_grid_cc::node_register(), blender::nodes::node_geo_get_named_grid_cc::node_register(), blender::nodes::node_geo_grid_to_mesh_cc::node_register(), blender::nodes::node_geo_mesh_to_density_grid_cc::node_register(), blender::nodes::node_geo_mesh_to_sdf_grid_cc::node_register(), blender::nodes::node_geo_points_to_sdf_grid_cc::node_register(), and blender::nodes::node_geo_sdf_grid_boolean_cc::node_register().
|
static |
Definition at line 434 of file node_common.cc.
References GEO_NODE_DEFAULT_FIELD_INPUT_ID_INDEX_FIELD, GEO_NODE_DEFAULT_FIELD_INPUT_INDEX_FIELD, GEO_NODE_DEFAULT_FIELD_INPUT_NORMAL_FIELD, GEO_NODE_DEFAULT_FIELD_INPUT_POSITION_FIELD, blender::nodes::SocketDeclaration::hide_value, blender::nodes::SocketDeclaration::implicit_input_fn, set_default_input_field(), SOCK_INT, SOCK_MATRIX, SOCK_VECTOR, and blender::nodes::SocketDeclaration::socket_type.
Referenced by node_group_declare(), and set_default_input_field().
| void blender::nodes::set_default_remaining_node_outputs | ( | lf::Params & | params, |
| const bNode & | node ) |
Outputs the default value of each output socket that has not been output yet. This needs the bNode because otherwise the default values for the outputs are not known. The lazy-function parameters do not differentiate between e.g. float and vector sockets. The #SocketValueVariant type is used for both.
Definition at line 432 of file geometry_nodes_lazy_function.cc.
References params, bNodeTree::runtime, and set_default_value_for_output_socket().
Referenced by blender::nodes::LazyFunctionForGizmoNode::execute_impl(), blender::nodes::LazyFunctionForUndefinedNode::execute_impl(), blender::nodes::node_geo_index_switch_cc::LazyFunctionForIndexSwitchNode::execute_single(), blender::nodes::node_geo_menu_switch_cc::LazyFunctionForMenuSwitchNode::execute_single(), blender::nodes::node_geo_bake_cc::LazyFunctionForBakeNode::set_default_outputs(), blender::nodes::node_geo_simulation_cc::sim_input_node::LazyFunctionForSimulationInputNode::set_default_outputs(), blender::nodes::node_geo_simulation_cc::sim_output_node::LazyFunctionForSimulationOutputNode::set_default_outputs(), and blender::nodes::GeoNodeExecParams::set_default_remaining_outputs().
|
static |
Definition at line 417 of file geometry_nodes_lazy_function.cc.
References blender::CPPType::copy_construct(), params, bNodeSocket::typeinfo, and blender::CPPType::value_initialize().
Referenced by blender::nodes::LazyFunctionForMutedNode::execute_impl(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group_lazyness(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_invalid_generation_items(), and set_default_remaining_node_outputs().
|
static |
Definition at line 1063 of file geometry_nodes_lazy_function.cc.
References blender::nodes::GeoNodesLFUserData::call_data, hash, blender::nodes::GeoNodesCallData::operator_data, should_log_socket_values_for_context(), and blender::nodes::GeoNodesCallData::socket_log_contexts.
Referenced by blender::nodes::LazyFunctionForGroupNode::execute_impl(), blender::nodes::LazyFunctionForSimulationZone::execute_impl(), blender::nodes::ForeachGeometryElementNodeExecuteWrapper::execute_node(), blender::nodes::RepeatBodyNodeExecuteWrapper::execute_node(), and should_log_socket_values_for_context().
| bool blender::nodes::socket_type_has_attribute_toggle | ( | eNodeSocketDatatype | type | ) |
Definition at line 156 of file geometry_nodes_execute.cc.
References socket_type_supports_fields().
Referenced by find_output_attributes_to_store(), update_input_properties_from_node_tree(), and update_output_properties_from_node_tree().
| bool blender::nodes::socket_type_supports_fields | ( | const eNodeSocketDatatype | socket_type | ) |
Definition at line 523 of file node_socket.cc.
References ELEM, SOCK_BOOLEAN, SOCK_FLOAT, SOCK_INT, SOCK_MATRIX, SOCK_MENU, SOCK_RGBA, SOCK_ROTATION, and SOCK_VECTOR.
Referenced by blender::bke::anonymous_attribute_inferencing::analyze_anonymous_attribute_usages(), blender::bke::node_field_inferencing::determine_group_input_states(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::bke::node_field_inferencing::is_field_socket_type(), blender::nodes::node_geo_index_switch_cc::LazyFunctionForIndexSwitchNode::LazyFunctionForIndexSwitchNode(), blender::nodes::node_geo_menu_switch_cc::LazyFunctionForMenuSwitchNode::LazyFunctionForMenuSwitchNode(), blender::nodes::node_geo_switch_cc::LazyFunctionForSwitchNode::LazyFunctionForSwitchNode(), blender::nodes::node_geo_bake_cc::node_declare(), blender::nodes::node_geo_index_switch_cc::node_declare(), blender::nodes::node_geo_menu_switch_cc::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_input_node::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_output_node::node_declare(), blender::nodes::node_geo_simulation_cc::sim_input_node::node_declare(), blender::nodes::node_geo_simulation_cc::sim_output_node::node_declare(), blender::nodes::node_geo_switch_cc::node_declare(), blender::bke::anonymous_attribute_inferencing::bNodeTreeToDotOptionsForAnonymousAttributeInferencing::socket_name(), socket_type_has_attribute_toggle(), and blender::ed::space_node::std_node_socket_interface_draw().
| bool blender::nodes::socket_type_supports_grids | ( | const eNodeSocketDatatype | socket_type | ) |
Definition at line 536 of file node_socket.cc.
References ELEM, SOCK_FLOAT, and SOCK_VECTOR.
Referenced by custom_data_type_supports_grids(), and grid_socket_type_items_filter_fn().
|
static |
Definition at line 403 of file node_declaration.cc.
References SOCK_BOOLEAN, SOCK_COLLECTION, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_IMAGE, SOCK_INT, SOCK_MATERIAL, SOCK_MATRIX, SOCK_MENU, SOCK_OBJECT, SOCK_RGBA, SOCK_ROTATION, SOCK_STRING, and SOCK_VECTOR.
Referenced by blender::nodes::NodeDeclarationBuilder::add_input(), blender::nodes::PanelDeclarationBuilder::add_input(), blender::nodes::NodeDeclarationBuilder::add_output(), blender::nodes::PanelDeclarationBuilder::add_output(), and make_declaration_for_socket_type().
|
static |
Definition at line 856 of file geometry_nodes_execute.cc.
References blender::bke::GeometryComponent::attributes_for_write(), blender::bke::cpp_type_to_custom_data_type(), MEM_freeN(), blender::GVMutableArray::set_all(), and blender::bke::GAttributeWriter::varray.
Referenced by store_output_attributes().
|
static |
Definition at line 898 of file geometry_nodes_execute.cc.
References compute_attributes_to_store(), find_output_attributes_to_store(), blender::bke::Instance, blender::MultiValueMap< Key, Value >::keys(), blender::MultiValueMap< Key, Value >::size(), store_computed_output_attributes(), and tree.
Referenced by execute_geometry_nodes_on_geometry().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 299 of file NOD_math_functions.hh.
References b, callback, faceforward(), get_float3_math_operation_info(), NODE_VECTOR_MATH_FACEFORWARD, NODE_VECTOR_MATH_MULTIPLY_ADD, NODE_VECTOR_MATH_WRAP, and wrapf().
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 338 of file NOD_math_functions.hh.
References b, callback, get_float3_math_operation_info(), NODE_VECTOR_MATH_REFRACT, normalize(), and refract().
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 266 of file NOD_math_functions.hh.
References b, callback, distance(), get_float3_math_operation_info(), NODE_VECTOR_MATH_DISTANCE, and NODE_VECTOR_MATH_DOT_PRODUCT.
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 211 of file NOD_math_functions.hh.
References b, callback, floor(), get_float3_math_operation_info(), max, min, mod(), NODE_VECTOR_MATH_ADD, NODE_VECTOR_MATH_CROSS_PRODUCT, NODE_VECTOR_MATH_DIVIDE, NODE_VECTOR_MATH_MAXIMUM, NODE_VECTOR_MATH_MINIMUM, NODE_VECTOR_MATH_MODULO, NODE_VECTOR_MATH_MULTIPLY, NODE_VECTOR_MATH_PROJECT, NODE_VECTOR_MATH_REFLECT, NODE_VECTOR_MATH_SNAP, NODE_VECTOR_MATH_SUBTRACT, normalize(), project(), reflect(), and safe_divide().
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 401 of file NOD_math_functions.hh.
References b, callback, get_float3_math_operation_info(), and NODE_VECTOR_MATH_SCALE.
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 370 of file NOD_math_functions.hh.
References callback, get_float3_math_operation_info(), length(), and NODE_VECTOR_MATH_LENGTH.
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 430 of file NOD_math_functions.hh.
References abs(), callback, ceil(), cosf, floor(), fract(), get_float3_math_operation_info(), NODE_VECTOR_MATH_ABSOLUTE, NODE_VECTOR_MATH_CEIL, NODE_VECTOR_MATH_COSINE, NODE_VECTOR_MATH_FLOOR, NODE_VECTOR_MATH_FRACTION, NODE_VECTOR_MATH_NORMALIZE, NODE_VECTOR_MATH_SINE, NODE_VECTOR_MATH_TANGENT, normalize(), sinf, and tanf.
Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 172 of file NOD_math_functions.hh.
References b, callback, fabsf, fmaxf, get_float_math_operation_info(), NODE_MATH_COMPARE, NODE_MATH_MULTIPLY_ADD, NODE_MATH_SMOOTH_MAX, NODE_MATH_SMOOTH_MIN, NODE_MATH_WRAP, smoothminf(), and wrapf().
Referenced by blender::nodes::node_shader_math_cc::get_base_multi_function().
|
inline |
This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.
Definition at line 116 of file NOD_math_functions.hh.
References atan2f, b, callback, floorf, get_float_math_operation_info(), NODE_MATH_ADD, NODE_MATH_ARCTAN2, NODE_MATH_DIVIDE, NODE_MATH_FLOORED_MODULO, NODE_MATH_GREATER_THAN, NODE_MATH_LESS_THAN, NODE_MATH_LOGARITHM, NODE_MATH_MAXIMUM, NODE_MATH_MINIMUM, NODE_MATH_MODULO, NODE_MATH_MULTIPLY, NODE_MATH_PINGPONG, NODE_MATH_POWER, NODE_MATH_SNAP, NODE_MATH_SUBTRACT, pingpongf(), safe_divide(), safe_floored_modf(), safe_logf(), safe_modf(), and safe_powf().
Referenced by blender::nodes::node_shader_math_cc::get_base_multi_function().
|
inline |
This calls the callback with two arguments:
The math function that is passed to the callback is actually a lambda function that is different for every operation. Therefore, if the callback is templated on the math function, it will get instantiated for every operation separately. This has two benefits:
If separate instantiations are not desired, the callback can also take a function pointer with the following signature as input instead: float (*math_function)(float a).
Definition at line 49 of file NOD_math_functions.hh.
References atanf, callback, ceilf, compatible_signf(), cosf, coshf, DEG2RAD, expf, fabs(), floorf, get_float_math_operation_info(), NODE_MATH_ABSOLUTE, NODE_MATH_ARCCOSINE, NODE_MATH_ARCSINE, NODE_MATH_ARCTANGENT, NODE_MATH_CEIL, NODE_MATH_COSH, NODE_MATH_COSINE, NODE_MATH_DEGREES, NODE_MATH_EXPONENT, NODE_MATH_FLOOR, NODE_MATH_FRACTION, NODE_MATH_INV_SQRT, NODE_MATH_RADIANS, NODE_MATH_ROUND, NODE_MATH_SIGN, NODE_MATH_SINE, NODE_MATH_SINH, NODE_MATH_SQRT, NODE_MATH_TANGENT, NODE_MATH_TANH, NODE_MATH_TRUNC, RAD2DEG, safe_acosf(), safe_asinf(), safe_inverse_sqrtf(), safe_sqrtf(), sinf, sinhf, tanf, and tanhf.
Referenced by blender::nodes::node_shader_math_cc::get_base_multi_function().
| void blender::nodes::update_input_properties_from_node_tree | ( | const bNodeTree & | tree, |
| const IDProperty * | old_properties, | ||
| IDProperty & | properties, | ||
| const bool | use_name_for_ids ) |
Definition at line 1040 of file geometry_nodes_execute.cc.
References BLI_assert, BLI_strdup(), blender::StringRefNull::c_str(), blender::bke::idprop::create(), blender::bke::idprop::create_bool(), bNodeTreeInterfaceSocket::default_attribute_name, bNodeTreeInterfaceSocket::description, IDPropertyUIData::description, ELEM, IDProperty::flag, id_property_create_from_socket(), bNodeTreeInterfaceSocket::identifier, IDP_AddToGroup(), IDP_AssignStringMaxSize(), IDP_CopyPropertyContent(), IDP_FLAG_OVERRIDABLE_LIBRARY, IDP_FLAG_STATIC_TYPE, IDP_GetPropertyFromGroup(), IDP_Int, IDP_ui_data_ensure(), blender::Span< T >::index_range(), input_attribute_name_suffix(), input_use_attribute_suffix(), MAX_NAME, old_id_property_type_matches_socket_convert_to_new(), SOCK_CUSTOM, SOCK_GEOMETRY, SOCK_MATRIX, socket_type_has_attribute_toggle(), tree, and blender::bke::bNodeSocketType::type.
Definition at line 510 of file node_socket.cc.
References build_node_declaration(), refresh_node(), and bNodeTree::runtime.
Referenced by blender::ed::space_node::attribute_search_exec_fn(), group_input_insert_link(), group_output_insert_link(), blender::bke::node_declaration_ensure_on_outdated_node(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::viewer_linking::node_link_viewer_get_socket(), ntree_update_reroute_nodes(), blender::ed::space_node::remap_node_pairing(), blender::ed::space_node::remap_pairing(), blender::ed::space_node::search_link_ops_for_asset_metadata(), blender::nodes::socket_items::try_add_item_via_extend_socket(), and blender::nodes::LinkSearchOpParams::update_and_connect_available_socket().
| void blender::nodes::update_output_properties_from_node_tree | ( | const bNodeTree & | tree, |
| const IDProperty * | old_properties, | ||
| IDProperty & | properties ) |
Definition at line 1113 of file geometry_nodes_execute.cc.
References BLI_strdup(), bNodeTreeInterfaceSocket::default_attribute_name, bNodeTreeInterfaceSocket::description, IDPropertyUIData::description, bNodeTreeInterfaceSocket::identifier, IDP_AddToGroup(), IDP_AssignStringMaxSize(), IDP_CopyPropertyContent(), IDP_GetPropertyFromGroup(), IDP_NewStringMaxSize(), IDP_ui_data_ensure(), IDP_ui_data_free(), blender::Span< T >::index_range(), input_attribute_name_suffix(), MAX_NAME, SOCK_CUSTOM, socket_type_has_attribute_toggle(), tree, blender::bke::bNodeSocketType::type, and IDProperty::ui_data.
Referenced by blender::ed::geometry::run_node_group_invoke().
|
static |
Definition at line 1665 of file geometry_nodes_lazy_function.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::contains(), blender::Vector< T, InlineBufferCapacity, Allocator >::first(), ignore_zone_bsocket(), blender::nodes::ZoneBuildInfo::indices, blender::nodes::ZoneFunctionIndices::inputs, blender::nodes::ZoneFunctionIndices::output_usages, and zone_wrapper_input_name().
Referenced by blender::nodes::LazyFunctionForForeachGeometryElementZone::input_name(), blender::nodes::LazyFunctionForRepeatZone::input_name(), and zone_wrapper_input_name().
|
static |
Definition at line 1686 of file geometry_nodes_lazy_function.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::contains(), blender::Vector< T, InlineBufferCapacity, Allocator >::first(), ignore_zone_bsocket(), blender::nodes::ZoneBuildInfo::indices, blender::nodes::ZoneFunctionIndices::input_usages, blender::nodes::ZoneFunctionIndices::outputs, and zone_wrapper_output_name().
Referenced by blender::nodes::LazyFunctionForForeachGeometryElementZone::output_name(), blender::nodes::LazyFunctionForRepeatZone::output_name(), and zone_wrapper_output_name().