Tatooine
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tatooine::flowexplorer::nodes::binary_operation Struct Reference

#include <binary_operation.h>

Inheritance diagram for tatooine::flowexplorer::nodes::binary_operation:
[legend]
Collaboration diagram for tatooine::flowexplorer::nodes::binary_operation:
[legend]

Public Types

enum class  operation_t : int {
  addition , subtraction , multiplication , division ,
  dot
}
 
template<typename Lhs , typename Rhs , typename Op >
using op_field = binary_operation_field< Lhs, Rhs, Op >
 
template<size_t LhsN, size_t RhsN, typename Op >
using op_field_vec_vec = binary_operation_field< polymorphic::vectorfield< real_type, LhsN > *, polymorphic::vectorfield< real_type, RhsN > *, Op >
 
template<size_t LhsN, size_t RhsN, typename Op >
using op_field_mat_vec = binary_operation_field< polymorphic::matrixfield< real_type, LhsN > *, polymorphic::vectorfield< real_type, RhsN > *, Op >
 
template<size_t N>
using mat_vec_mult_field_t = op_field_mat_vec< N, N, decltype(mult)>
 
using mat_vec_mult_field2_t = mat_vec_mult_field_t< 2 >
 
using mat_vec_mult_field3_t = mat_vec_mult_field_t< 3 >
 
template<size_t N>
using dot_field_t = op_field_vec_vec< N, N, decltype(dot)>
 
using dot_field2_t = dot_field_t< 2 >
 
using dot_field3_t = dot_field_t< 3 >
 
- Public Types inherited from tatooine::flowexplorer::ui::node< binary_operation >
using serializer_t = node_serializer< binary_operation >
 

Public Member Functions

 binary_operation (flowexplorer::scene &s)
 
virtual ~binary_operation ()=default
 
auto draw_properties () -> bool override
 
auto on_property_changed () -> void override
 
auto on_pin_connected (ui::input_pin &, ui::output_pin &) -> void override
 
auto on_pin_disconnected (ui::input_pin &) -> void override
 
auto deactivate_output_pins () -> void
 
- Public Member Functions inherited from tatooine::flowexplorer::ui::node< binary_operation >
auto serialize () const -> toml::table override final
 
auto deserialize (toml::table const &serialized_node) -> void override
 
auto draw_properties () -> bool override
 
auto type_name () const -> std::string_view override final
 
- Public Member Functions inherited from tatooine::flowexplorer::ui::base::node
 node (flowexplorer::scene &s)
 
 node (std::string const &title, flowexplorer::scene &s)
 
template<typename T >
 node (flowexplorer::scene &s, T &ref)
 
template<typename T >
 node (std::string const &title, flowexplorer::scene &s, T &ref)
 
virtual ~node ()=default
 
template<typename... Ts>
auto insert_input_pin (std::string const &title, icon_type const t=icon_type::flow) -> auto &
 
template<typename Prop >
auto insert_input_pin_property_link (input_pin &pin, Prop &prop) -> auto &
 
template<typename T >
auto insert_output_pin (std::string const &title, T &ref, icon_type const t=icon_type::flow) -> auto &
 
auto title () const -> auto const &
 
auto title () -> auto &
 
auto scene () const -> auto const &
 
auto scene () -> auto &
 
auto set_title (std::string const &title)
 
auto has_self_pin () const -> bool
 
auto self_pin () const -> auto const &
 
auto self_pin () -> auto &
 
auto input_pins () const -> auto const &
 
auto input_pins () -> auto &
 
auto output_pins () const -> auto const &
 
auto output_pins () -> auto &
 
auto draw_node () -> void
 
auto node_position () const -> ImVec2
 
auto notify_property_changed (bool const notify_self=true) -> void
 
auto update_property_links () -> void
 
virtual auto draw_properties () -> bool=0
 
virtual auto on_property_changed () -> void
 
virtual auto on_title_changed (std::string const &) -> void
 
virtual auto on_pin_connected (input_pin &, output_pin &) -> void
 
virtual auto on_pin_connected (output_pin &, input_pin &) -> void
 
virtual auto on_pin_disconnected (input_pin &) -> void
 
virtual auto on_pin_disconnected (output_pin &) -> void
 
virtual auto type_name () const -> std::string_view=0
 
virtual auto update (std::chrono::duration< double > const &) -> void
 
virtual auto on_path_selected (std::string const &) -> void
 
- Public Member Functions inherited from tatooine::flowexplorer::uuid_holder< ax::NodeEditor::NodeId >
 uuid_holder (size_t const id)
 
 uuid_holder (ax::NodeEditor::NodeId const &id)
 
 uuid_holder ()
 
auto get_id () const -> const auto &
 
auto get_id () -> auto &
 
auto get_id_number () const
 
auto set_id (size_t const new_id)
 
constexpr auto operator== (uuid_holder< ax::NodeEditor::NodeId > const &other) const -> bool
 
constexpr auto operator== (ax::NodeEditor::NodeId const &id) const -> bool
 
constexpr auto operator== (size_t const id) const -> bool
 
constexpr auto equals ()
 
virtual auto serialize () const -> toml::table=0
 
virtual void deserialize (toml::table const &)=0
 
- Public Member Functions inherited from tatooine::flowexplorer::toggleable
constexpr toggleable (bool active=true)
 
constexpr toggleable (toggleable const &)=default
 
constexpr toggleable (toggleable &&)=default
 
constexpr auto operator= (toggleable const &) -> toggleable &=default
 
constexpr auto operator= (toggleable &&) -> toggleable &=default
 
 ~toggleable ()=default
 
virtual constexpr auto set_active (bool active=true) -> void
 
constexpr auto activate () -> void
 
constexpr auto deactivate () -> void
 
constexpr auto toggle () -> void
 
constexpr auto is_active () const -> bool const &
 
constexpr auto is_active () -> bool &
 
- Public Member Functions inherited from tatooine::flowexplorer::ui::node_serializer< T >
auto serialize (T const &t) const -> toml::table
 
auto deserialize (T &t, toml::table const &serialized_node) -> void
 
auto draw_properties (T &t) -> bool
 
constexpr auto type_name () const -> std::string_view
 

Public Attributes

std::variant< std::monostate, real_type, dot_field2_t, dot_field3_t, mat_vec_mult_field2_t, mat_vec_mult_field3_tm_output_data
 
int m_operation = 0
 
ui::input_pinm_input0
 
ui::input_pinm_input1
 
ui::output_pinm_scalar_pin_out
 
ui::output_pinm_dot_field2_pin_out
 
ui::output_pinm_dot_field3_pin_out
 
ui::output_pinm_mat_vec_mult_field2_pin_out
 
ui::output_pinm_mat_vec_mult_field3_pin_out
 

Static Public Attributes

static constexpr auto mult
 
static constexpr auto dot
 

Member Typedef Documentation

◆ dot_field2_t

◆ dot_field3_t

◆ dot_field_t

◆ mat_vec_mult_field2_t

◆ mat_vec_mult_field3_t

◆ mat_vec_mult_field_t

◆ op_field

template<typename Lhs , typename Rhs , typename Op >
using tatooine::flowexplorer::nodes::binary_operation::op_field = binary_operation_field<Lhs, Rhs, Op>

◆ op_field_mat_vec

◆ op_field_vec_vec

Member Enumeration Documentation

◆ operation_t

Enumerator
addition 
subtraction 
multiplication 
division 
dot 

Constructor & Destructor Documentation

◆ binary_operation()

◆ ~binary_operation()

virtual tatooine::flowexplorer::nodes::binary_operation::~binary_operation ( )
virtualdefault

Member Function Documentation

◆ deactivate_output_pins()

auto tatooine::flowexplorer::nodes::binary_operation::deactivate_output_pins ( ) -> void

◆ draw_properties()

auto tatooine::flowexplorer::nodes::binary_operation::draw_properties ( ) -> bool
overridevirtual

◆ on_pin_connected()

auto tatooine::flowexplorer::nodes::binary_operation::on_pin_connected ( ui::input_pin ,
ui::output_pin  
) -> void
overridevirtual

◆ on_pin_disconnected()

auto tatooine::flowexplorer::nodes::binary_operation::on_pin_disconnected ( ui::input_pin ) -> void
overridevirtual

◆ on_property_changed()

auto tatooine::flowexplorer::nodes::binary_operation::on_property_changed ( ) -> void
overridevirtual

Member Data Documentation

◆ dot

constexpr auto tatooine::flowexplorer::nodes::binary_operation::dot
staticconstexpr
Initial value:
= [](auto const& lhs, auto const& rhs) {
return tatooine::dot(lhs, rhs);
}
constexpr auto dot(base_tensor< Tensor0, T0, N > const &lhs, base_tensor< Tensor1, T1, N > const &rhs)
Definition: tensor_operations.h:120

◆ m_dot_field2_pin_out

ui::output_pin& tatooine::flowexplorer::nodes::binary_operation::m_dot_field2_pin_out

◆ m_dot_field3_pin_out

ui::output_pin& tatooine::flowexplorer::nodes::binary_operation::m_dot_field3_pin_out

◆ m_input0

ui::input_pin& tatooine::flowexplorer::nodes::binary_operation::m_input0

◆ m_input1

ui::input_pin& tatooine::flowexplorer::nodes::binary_operation::m_input1

◆ m_mat_vec_mult_field2_pin_out

ui::output_pin& tatooine::flowexplorer::nodes::binary_operation::m_mat_vec_mult_field2_pin_out

◆ m_mat_vec_mult_field3_pin_out

ui::output_pin& tatooine::flowexplorer::nodes::binary_operation::m_mat_vec_mult_field3_pin_out

◆ m_operation

int tatooine::flowexplorer::nodes::binary_operation::m_operation = 0

◆ m_output_data

std::variant<std::monostate, real_type, dot_field2_t, dot_field3_t, mat_vec_mult_field2_t, mat_vec_mult_field3_t> tatooine::flowexplorer::nodes::binary_operation::m_output_data

◆ m_scalar_pin_out

ui::output_pin& tatooine::flowexplorer::nodes::binary_operation::m_scalar_pin_out

◆ mult

constexpr auto tatooine::flowexplorer::nodes::binary_operation::mult
staticconstexpr
Initial value:
= [](auto const& lhs, auto const& rhs) {
return lhs * rhs;
}

The documentation for this struct was generated from the following file: