1#include "Generators/CPUNodeEditor/Nodes/BlendNode.h"
2#include "Base/ImGuiShapes.h"
3#include "Generators/CPUNodeEditor/CPUNodeEditor.h"
8static const char *items[] = {
"Add",
"Subtract",
"Multiply",
"Divide" };
15 if (inputPins[0]->IsLinked())
17 v1 = inputPins[0]->other->Evaluate(input).value;
25 if (inputPins[1]->IsLinked())
27 v2 = inputPins[1]->other->Evaluate(input).value;
35 if (inputPins[2]->IsLinked())
37 f = inputPins[2]->other->Evaluate(input).value;
50 value1 = data[
"value1"];
51 value2 = data[
"value2"];
52 factor = data[
"factor"];
58 data[
"type"] = MeshNodeEditor::MeshNodeType::Blend;
59 data[
"value1"] = value1;
60 data[
"value2"] = value2;
61 data[
"factor"] = factor;
65void BlendNode::OnRender()
68 inputPins[0]->Render();
69 ImGui::Text(
"Value A");
71 if (!inputPins[0]->IsLinked())
73 ImGui::PushItemWidth(100);
74 ImGui::DragFloat((
"##" + std::to_string(inputPins[0]->
id)).c_str(), &value1, 0.01f);
75 ImGui::PopItemWidth();
80 outputPins[0]->Render();
81 inputPins[1]->Render();
82 ImGui::Text(
"Value B");
84 if (!inputPins[1]->IsLinked())
86 ImGui::PushItemWidth(100);
87 ImGui::DragFloat((
"##" + std::to_string(inputPins[1]->
id)).c_str(), &value2, 0.01f);
88 ImGui::PopItemWidth();
91 inputPins[2]->Render();
92 ImGui::Text(
"Factor");
94 if (!inputPins[2]->IsLinked())
96 ImGui::PushItemWidth(100);
97 ImGui::DragFloat((
"##" + std::to_string(inputPins[2]->
id)).c_str(), &factor, 0.01f, 0, 1);
98 ImGui::PopItemWidth();
102 ImGui::Text(
"Blend Mode");
105BlendNode::BlendNode()
110 outputPins.push_back(
new NodeEditorPin(NodeEditorPinType::Output));
111 headerColor = ImColor(OP_NODE_COLOR);
a class to store JSON values