Go to the documentation of this file.    1 #ifndef OGLPLUS_TEXGEN_COMPLEMENT_NODE_HPP 
    9 #define OGLPLUS_TEXGEN_COMPLEMENT_NODE_HPP 
   14 namespace eagine::oglp::texgen {
 
   16 class complement_input : 
public input_with_const_default<float[4]> {
 
   18     using _base = input_with_const_default<float[4]>;
 
   28       : _base(parent, name, r, g, b, a) {}
 
   30     bool accepts_value_type(slot_data_type type)
 override {
 
   31         return data_type_dims(type) == data_type_dims(output().
value_type());
 
   35 class complement_output : 
public base_output {
 
   37     input_with_const_default<float[4]> input;
 
   38     input_with_const_default<float[4]> complement;
 
   40     complement_output(node_intf& parent);
 
   46     std::ostream& definitions(std::ostream& out, compile_context& ctxt) 
override;
 
   50   : 
public binary_single_output_node<
 
   52       decltype(complement_output::input),
 
   53       &complement_output::input,
 
   54       decltype(complement_output::complement),
 
   55       &complement_output::complement> {
 
   57     complement_node& set_complement(
float r, 
float g, 
float b, 
float a) {
 
   58         _output.complement.fallback().set(r, g, b, a);
 
   65 #if !OGLPLUS_LINK_LIBRARY || defined(OGLPLUS_IMPLEMENTING_LIBRARY) 
   66 #include <oglplus/texgen/complement_node.inl> 
   69 #endif // OGLPLUS_TEXGEN_COMPLEMENT_NODE_HPP 
 
value_type
Value tree value element data type enumeration.
Definition: interface.hpp:27
 
basic_string_span< const char > string_view
Alias for const string views.
Definition: string_span.hpp:116
 
static auto type_name(const T &) noexcept -> std::string
Returns the demangled name for type T.
Definition: type_name.hpp:24