Changeset View
Changeset View
Standalone View
Standalone View
source/blender/functions/intern/multi_function_network.cc
| Show First 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | MFFunctionNode &MFNetwork::add_function(const MultiFunction &function) | ||||
| node.input_param_indices_ = allocator_.construct_array_copy<int>(input_param_indices); | node.input_param_indices_ = allocator_.construct_array_copy<int>(input_param_indices); | ||||
| node.output_param_indices_ = allocator_.construct_array_copy<int>(output_param_indices); | node.output_param_indices_ = allocator_.construct_array_copy<int>(output_param_indices); | ||||
| node.inputs_ = allocator_.construct_elements_and_pointer_array<MFInputSocket>( | node.inputs_ = allocator_.construct_elements_and_pointer_array<MFInputSocket>( | ||||
| input_param_indices.size()); | input_param_indices.size()); | ||||
| node.outputs_ = allocator_.construct_elements_and_pointer_array<MFOutputSocket>( | node.outputs_ = allocator_.construct_elements_and_pointer_array<MFOutputSocket>( | ||||
| output_param_indices.size()); | output_param_indices.size()); | ||||
| for (int i : input_param_indices.index_range()) { | for (int i : iter_indices(input_param_indices)) { | ||||
| int param_index = input_param_indices[i]; | int param_index = input_param_indices[i]; | ||||
| MFParamType param = function.param_type(param_index); | MFParamType param = function.param_type(param_index); | ||||
| BLI_assert(param.is_input_or_mutable()); | BLI_assert(param.is_input_or_mutable()); | ||||
| MFInputSocket &socket = *node.inputs_[i]; | MFInputSocket &socket = *node.inputs_[i]; | ||||
| socket.data_type_ = param.data_type(); | socket.data_type_ = param.data_type(); | ||||
| socket.node_ = &node; | socket.node_ = &node; | ||||
| socket.index_ = i; | socket.index_ = i; | ||||
| socket.is_output_ = false; | socket.is_output_ = false; | ||||
| socket.name_ = function.param_name(param_index); | socket.name_ = function.param_name(param_index); | ||||
| socket.origin_ = nullptr; | socket.origin_ = nullptr; | ||||
| socket.id_ = socket_or_null_by_id_.append_and_get_index(&socket); | socket.id_ = socket_or_null_by_id_.append_and_get_index(&socket); | ||||
| } | } | ||||
| for (int i : output_param_indices.index_range()) { | for (int i : iter_indices(output_param_indices)) { | ||||
| int param_index = output_param_indices[i]; | int param_index = output_param_indices[i]; | ||||
| MFParamType param = function.param_type(param_index); | MFParamType param = function.param_type(param_index); | ||||
| BLI_assert(param.is_output_or_mutable()); | BLI_assert(param.is_output_or_mutable()); | ||||
| MFOutputSocket &socket = *node.outputs_[i]; | MFOutputSocket &socket = *node.outputs_[i]; | ||||
| socket.data_type_ = param.data_type(); | socket.data_type_ = param.data_type(); | ||||
| socket.node_ = &node; | socket.node_ = &node; | ||||
| socket.index_ = i; | socket.index_ = i; | ||||
| Show All 28 Lines | MFDummyNode &MFNetwork::add_dummy(StringRef name, | ||||
| node.inputs_ = allocator_.construct_elements_and_pointer_array<MFInputSocket>( | node.inputs_ = allocator_.construct_elements_and_pointer_array<MFInputSocket>( | ||||
| input_types.size()); | input_types.size()); | ||||
| node.outputs_ = allocator_.construct_elements_and_pointer_array<MFOutputSocket>( | node.outputs_ = allocator_.construct_elements_and_pointer_array<MFOutputSocket>( | ||||
| output_types.size()); | output_types.size()); | ||||
| node.input_names_ = allocator_.allocate_array<StringRefNull>(input_types.size()); | node.input_names_ = allocator_.allocate_array<StringRefNull>(input_types.size()); | ||||
| node.output_names_ = allocator_.allocate_array<StringRefNull>(output_types.size()); | node.output_names_ = allocator_.allocate_array<StringRefNull>(output_types.size()); | ||||
| for (int i : input_types.index_range()) { | for (int i : iter_indices(input_types)) { | ||||
| MFInputSocket &socket = *node.inputs_[i]; | MFInputSocket &socket = *node.inputs_[i]; | ||||
| socket.data_type_ = input_types[i]; | socket.data_type_ = input_types[i]; | ||||
| socket.node_ = &node; | socket.node_ = &node; | ||||
| socket.index_ = i; | socket.index_ = i; | ||||
| socket.is_output_ = false; | socket.is_output_ = false; | ||||
| socket.name_ = allocator_.copy_string(input_names[i]); | socket.name_ = allocator_.copy_string(input_names[i]); | ||||
| socket.id_ = socket_or_null_by_id_.append_and_get_index(&socket); | socket.id_ = socket_or_null_by_id_.append_and_get_index(&socket); | ||||
| node.input_names_[i] = socket.name_; | node.input_names_[i] = socket.name_; | ||||
| } | } | ||||
| for (int i : output_types.index_range()) { | for (int i : iter_indices(output_types)) { | ||||
| MFOutputSocket &socket = *node.outputs_[i]; | MFOutputSocket &socket = *node.outputs_[i]; | ||||
| socket.data_type_ = output_types[i]; | socket.data_type_ = output_types[i]; | ||||
| socket.node_ = &node; | socket.node_ = &node; | ||||
| socket.index_ = i; | socket.index_ = i; | ||||
| socket.is_output_ = true; | socket.is_output_ = true; | ||||
| socket.name_ = allocator_.copy_string(output_names[i]); | socket.name_ = allocator_.copy_string(output_names[i]); | ||||
| socket.id_ = socket_or_null_by_id_.append_and_get_index(&socket); | socket.id_ = socket_or_null_by_id_.append_and_get_index(&socket); | ||||
| node.output_names_[i] = socket.name_; | node.output_names_[i] = socket.name_; | ||||
| ▲ Show 20 Lines • Show All 163 Lines • Show Last 20 Lines | |||||