1#include "Generators/CPUNodeEditor/Nodes/ClampNode.h"
2#include "Base/ImGuiShapes.h"
3#include "Generators/CPUNodeEditor/CPUNodeEditor.h"
15 if (inputPins[0]->IsLinked())
17 vv = inputPins[0]->other->Evaluate(input).value;
25 if (inputPins[1]->IsLinked())
27 mn = inputPins[1]->other->Evaluate(input).value;
35 if (inputPins[2]->IsLinked())
37 mx = inputPins[2]->other->Evaluate(input).value;
45 return NodeOutput({ vv > mx ? mx : ( vv < mn ? mn : vv ) });
58 data[
"type"] = MeshNodeEditor::MeshNodeType::Clamp;
65void ClampNode::OnRender()
68 inputPins[0]->Render();
71 if (!inputPins[0]->IsLinked())
73 ImGui::PushItemWidth(100);
74 ImGui::DragFloat((
"##" + std::to_string(inputPins[0]->
id)).c_str(), &inpt, 0.01f);
75 ImGui::PopItemWidth();
80 outputPins[0]->Render();
81 inputPins[1]->Render();
82 ImGui::Text(
"Minimum");
84 if (!inputPins[1]->IsLinked())
86 ImGui::PushItemWidth(100);
87 ImGui::DragFloat((
"##" + std::to_string(inputPins[1]->
id)).c_str(), &minV, 0.01f);
88 ImGui::PopItemWidth();
91 inputPins[2]->Render();
92 ImGui::Text(
"Maximum");
94 if (!inputPins[2]->IsLinked())
96 ImGui::PushItemWidth(100);
97 ImGui::DragFloat((
"##" + std::to_string(inputPins[2]->
id)).c_str(), &maxV, 0.01f);
98 ImGui::PopItemWidth();
104ClampNode::ClampNode()
109 outputPins.push_back(
new NodeEditorPin(NodeEditorPinType::Output));
110 headerColor = ImColor(OP_NODE_COLOR);
a class to store JSON values