1#ifndef TATOOINE_FLOWEXPLORER_NODES_BINARY_OPERATION_H
2#define TATOOINE_FLOWEXPLORER_NODES_BINARY_OPERATION_H
6#include <tatooine/real.h>
11 template <
typename Lhs,
typename Rhs,
typename Op>
14 template <
size_t LhsN,
size_t RhsN,
typename Op>
18 template <
size_t LhsN,
size_t RhsN,
typename Op>
30 static constexpr auto mult = [](
auto const& lhs,
auto const& rhs) {
33 static constexpr auto dot = [](
auto const& lhs,
auto const& rhs) {
47 std::variant<std::monostate,
77 TATOOINE_REFLECTION_INSERT_METHOD(scalar_operation, m_operation));
TATOOINE_FLOWEXPLORER_REGISTER_NODE(tatooine::flowexplorer::nodes::binary_operation, TATOOINE_REFLECTION_INSERT_METHOD(scalar_operation, m_operation))
constexpr auto dot(base_tensor< Tensor0, T0, N > const &lhs, base_tensor< Tensor1, T1, N > const &rhs)
Definition: tensor_operations.h:120
Definition: binary_operation_field.h:16
Definition: binary_operation.h:10
ui::output_pin & m_scalar_pin_out
Definition: binary_operation.h:58
ui::output_pin & m_mat_vec_mult_field3_pin_out
Definition: binary_operation.h:62
mat_vec_mult_field_t< 2 > mat_vec_mult_field2_t
Definition: binary_operation.h:39
auto deactivate_output_pins() -> void
std::variant< std::monostate, real_type, dot_field2_t, dot_field3_t, mat_vec_mult_field2_t, mat_vec_mult_field3_t > m_output_data
Definition: binary_operation.h:53
ui::input_pin & m_input0
Definition: binary_operation.h:56
dot_field_t< 2 > dot_field2_t
Definition: binary_operation.h:43
auto draw_properties() -> bool override
dot_field_t< 3 > dot_field3_t
Definition: binary_operation.h:44
ui::output_pin & m_dot_field3_pin_out
Definition: binary_operation.h:60
static constexpr auto mult
Definition: binary_operation.h:30
static constexpr auto dot
Definition: binary_operation.h:33
binary_operation(flowexplorer::scene &s)
operation_t
Definition: binary_operation.h:23
auto on_pin_connected(ui::input_pin &, ui::output_pin &) -> void override
ui::input_pin & m_input1
Definition: binary_operation.h:57
int m_operation
Definition: binary_operation.h:55
virtual ~binary_operation()=default
auto on_property_changed() -> void override
ui::output_pin & m_mat_vec_mult_field2_pin_out
Definition: binary_operation.h:61
ui::output_pin & m_dot_field2_pin_out
Definition: binary_operation.h:59
auto on_pin_disconnected(ui::input_pin &) -> void override