TerraForge3D  2.3.1
3D Terrain And Landscape Generator
Float3Node.cpp
1#include "Shading/ShaderNodes/Float3Node.h"
2
3#include <iostream>
4
5void Float3Node::OnEvaluate(GLSLFunction *function, GLSLLine *line)
6{
7 line->line = "vec3(" + SDATA(0) + ", " + SDATA(1) + ", " + SDATA(2) + ")";
8}
9
10void Float3Node::Load(nlohmann::json data)
11{
12 x = data["x"];
13 y = data["y"];
14 z = data["z"];
15}
16
17nlohmann::json Float3Node::Save()
18{
19 nlohmann::json data;
20 data["type"] = "Float3";
21 data["x"] = x;
22 data["y"] = y;
23 data["z"] = z;
24 return data;
25}
26
27void Float3Node::UpdateShaders()
28{
29 sharedData->d0 = x;
30 sharedData->d1 = y;
31 sharedData->d2 = z;
32}
33
34void Float3Node::OnRender()
35{
36 DrawHeader("Float 3");
37 ImGui::PushItemWidth(100);
38
39 if(ImGui::DragFloat("X", &x, 0.01f))
40 {
41 sharedData->d0 = x;
42 }
43
44 ImGui::SameLine();
45 outputPins[0]->Render();
46
47 if(ImGui::DragFloat("Y", &y, 0.01f))
48 {
49 sharedData->d1 = y;
50 }
51
52 if(ImGui::DragFloat("Z", &z, 0.01f))
53 {
54 sharedData->d2 = z;
55 }
56
57 ImGui::PopItemWidth();
58}
59
60Float3Node::Float3Node(GLSLHandler *handler)
61 :SNENode(handler)
62{
63 name = "Float 3";
64 x = y = z = 0.0f;
65 headerColor = ImColor(SHADER_VALUE_NODE_COLOR);
66 outputPins.push_back(new SNEPin(NodeEditorPinType::Output, SNEPinType::SNEPinType_Float3));
67}
68
69
70Float3Node::~Float3Node()
71{
72}
a class to store JSON values
Definition: json.hpp:17860