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