Blender  V2.93
Public Member Functions | List of all members
blender::fn::MFNetwork Class Reference

#include <FN_multi_function_network.hh>

Inherits blender::NonCopyable, and blender::NonMovable.

Public Member Functions

 MFNetwork ()=default
 
 ~MFNetwork ()
 
MFFunctionNodeadd_function (const MultiFunction &function)
 
MFDummyNodeadd_dummy (StringRef name, Span< MFDataType > input_types, Span< MFDataType > output_types, Span< StringRef > input_names, Span< StringRef > output_names)
 
void add_link (MFOutputSocket &from, MFInputSocket &to)
 
MFOutputSocketadd_input (StringRef name, MFDataType data_type)
 
MFInputSocketadd_output (StringRef name, MFDataType data_type)
 
void relink (MFOutputSocket &old_output, MFOutputSocket &new_output)
 
void remove (MFNode &node)
 
void remove (Span< MFNode * > nodes)
 
int socket_id_amount () const
 
int node_id_amount () const
 
Span< MFDummyNode * > dummy_nodes ()
 
Span< MFFunctionNode * > function_nodes ()
 
MFNodenode_or_null_by_id (int id)
 
const MFNodenode_or_null_by_id (int id) const
 
MFSocketsocket_or_null_by_id (int id)
 
const MFSocketsocket_or_null_by_id (int id) const
 
void find_dependencies (Span< const MFInputSocket * > sockets, VectorSet< const MFOutputSocket * > &r_dummy_sockets, VectorSet< const MFInputSocket * > &r_unlinked_inputs) const
 
bool have_dummy_or_unlinked_dependencies (Span< const MFInputSocket * > sockets) const
 
std::string to_dot (Span< const MFNode * > marked_nodes={}) const
 

Detailed Description

Definition at line 189 of file FN_multi_function_network.hh.

Constructor & Destructor Documentation

◆ MFNetwork()

blender::fn::MFNetwork::MFNetwork ( )
default

◆ ~MFNetwork()

blender::fn::MFNetwork::~MFNetwork ( )

Definition at line 24 of file multi_function_network.cc.

References node.

Member Function Documentation

◆ add_dummy()

MFDummyNode & blender::fn::MFNetwork::add_dummy ( StringRef  name,
Span< MFDataType input_types,
Span< MFDataType output_types,
Span< StringRef input_names,
Span< StringRef output_names 
)

◆ add_function()

MFFunctionNode & blender::fn::MFNetwork::add_function ( const MultiFunction function)

◆ add_input()

MFOutputSocket & blender::fn::MFNetwork::add_input ( StringRef  name,
MFDataType  data_type 
)

◆ add_link()

void blender::fn::MFNetwork::add_link ( MFOutputSocket from,
MFInputSocket to 
)

Connect two sockets. This invokes undefined behavior if the sockets belong to different networks, the sockets have a different data type, or the to socket is connected to something else already.

Definition at line 178 of file multi_function_network.cc.

References BLI_assert, blender::fn::MFSocket::data_type_, from, blender::fn::MFNode::network_, and blender::fn::MFSocket::node_.

Referenced by blender::nodes::create_function_for_node_that_expands_into_multiple(), blender::fn::mf_network_optimization::find_constant_inputs_to_fold(), and sh_node_math_expand_in_mf_network().

◆ add_output()

MFInputSocket & blender::fn::MFNetwork::add_output ( StringRef  name,
MFDataType  data_type 
)

◆ dummy_nodes()

Span< MFDummyNode * > blender::fn::MFNetwork::dummy_nodes ( )
inline

◆ find_dependencies()

void blender::fn::MFNetwork::find_dependencies ( Span< const MFInputSocket * >  sockets,
VectorSet< const MFOutputSocket * > &  r_dummy_sockets,
VectorSet< const MFInputSocket * > &  r_unlinked_inputs 
) const

◆ function_nodes()

Span< MFFunctionNode * > blender::fn::MFNetwork::function_nodes ( )
inline

◆ have_dummy_or_unlinked_dependencies()

bool blender::fn::MFNetwork::have_dummy_or_unlinked_dependencies ( Span< const MFInputSocket * >  sockets) const

◆ node_id_amount()

int blender::fn::MFNetwork::node_id_amount ( ) const
inline

◆ node_or_null_by_id() [1/2]

MFNode * blender::fn::MFNetwork::node_or_null_by_id ( int  id)
inline

◆ node_or_null_by_id() [2/2]

const MFNode * blender::fn::MFNetwork::node_or_null_by_id ( int  id) const
inline

Definition at line 511 of file FN_multi_function_network.hh.

References id.

◆ relink()

void blender::fn::MFNetwork::relink ( MFOutputSocket old_output,
MFOutputSocket new_output 
)

◆ remove() [1/2]

void blender::fn::MFNetwork::remove ( MFNode node)

◆ remove() [2/2]

void blender::fn::MFNetwork::remove ( Span< MFNode * >  nodes)

Definition at line 236 of file multi_function_network.cc.

References node, and remove().

◆ socket_id_amount()

int blender::fn::MFNetwork::socket_id_amount ( ) const
inline

◆ socket_or_null_by_id() [1/2]

MFSocket * blender::fn::MFNetwork::socket_or_null_by_id ( int  id)
inline

Definition at line 516 of file FN_multi_function_network.hh.

References id.

◆ socket_or_null_by_id() [2/2]

const MFSocket * blender::fn::MFNetwork::socket_or_null_by_id ( int  id) const
inline

Definition at line 521 of file FN_multi_function_network.hh.

References id.

◆ to_dot()

std::string blender::fn::MFNetwork::to_dot ( Span< const MFNode * >  marked_nodes = {}) const

The documentation for this class was generated from the following files: