TerraForge3D  2.3.1
3D Terrain And Landscape Generator

◆ CPUNodeEditor()

CPUNodeEditor::CPUNodeEditor ( ApplicationState appState)

Definition at line 133 of file CPUNodeEditor.cpp.

134 :appState(as)
135{
136 uid = GenerateId(32);
137 name.reserve(1024);
138 name = "CPU Node Editor " + std::to_string(count++);
139 NodeEditorConfig config;
140 config.saveFile = GetExecutableDir() + PATH_SEPARATOR "Data" PATH_SEPARATOR "configs" PATH_SEPARATOR "CPUNodeEditorconfigs.terr3d";
141 config.makeNodeFunc = [&]()
142 {
143 ImGuiNodeEditor::Suspend();
144 ImGui::OpenPopup("NodeMakerDropped");
145 ImGuiNodeEditor::Resume();
146 };
147 config.insNodeFunc = [&](nlohmann::json data) -> NodeEditorNode*
148 {
149 NodeEditorNode *node;
150 CPUNodeEditorE::CPUNodeType type = (CPUNodeEditorE::CPUNodeType)data["type"];
151
152 switch (type)
153 {
154 case CPUNodeEditorE::CPUNodeType::Dummy:
155 node = new DummyNode();
156 break;
157
158 case CPUNodeEditorE::CPUNodeType::Output:
159 node = new OutputNode();
160 break;
161
162 case CPUNodeEditorE::CPUNodeType::MeshCoordinates:
163 node = new MeshCoordinatesNode();
164 break;
165
166 case CPUNodeEditorE::CPUNodeType::MaxMeshCoordinates:
167 node = new MaxMeshCoordinatesNode();
168 break;
169
170 case CPUNodeEditorE::CPUNodeType::MinMeshCoordinates:
171 node = new MinMeshCoordinatesNode();
172 break;
173
174 case CPUNodeEditorE::CPUNodeType::TextureCoordinates:
175 node = new TextureCoordinatesNode();
176 break;
177
178 case CPUNodeEditorE::CPUNodeType::TimeBasedSeed:
179 node = new TimeBasedSeedNode();
180 break;
181
182 case CPUNodeEditorE::CPUNodeType::Duplicate:
183 node = new DuplicateNode();
184 break;
185
186 case CPUNodeEditorE::CPUNodeType::Add:
187 node = new AddNode();
188 break;
189
190 case CPUNodeEditorE::CPUNodeType::Sub:
191 node = new SubNode();
192 break;
193
194 case CPUNodeEditorE::CPUNodeType::Mul:
195 node = new MulNode();
196 break;
197
198 case CPUNodeEditorE::CPUNodeType::Div:
199 node = new DivNode();
200 break;
201
202 case CPUNodeEditorE::CPUNodeType::Sin:
203 node = new SinNode();
204 break;
205
206 case CPUNodeEditorE::CPUNodeType::Cos:
207 node = new CosNode();
208 break;
209
210 case CPUNodeEditorE::CPUNodeType::Square:
211 node = new SquareNode();
212 break;
213
214 case CPUNodeEditorE::CPUNodeType::Tan:
215 node = new TanNode();
216 break;
217
218 case CPUNodeEditorE::CPUNodeType::Abs:
219 node = new AbsNode();
220 break;
221
222 case CPUNodeEditorE::CPUNodeType::Blend:
223 node = new BlendNode();
224 break;
225
226 case CPUNodeEditorE::CPUNodeType::Curve:
227 node = new CurveNode();
228 break;
229
230 case CPUNodeEditorE::CPUNodeType::RandomNumber:
231 node = new RandomNumberNode();
232 break;
233
234 case CPUNodeEditorE::CPUNodeType::NoisePerlin:
235 node = new NoisePerlinNode();
236 break;
237
238 case CPUNodeEditorE::CPUNodeType::NoiseCellular:
239 node = new NoiseCellularNode();
240 break;
241
242 case CPUNodeEditorE::CPUNodeType::NoiseOpenSimplex2:
243 node = new NoiseOpenSimplex2Node();
244 break;
245
246 case CPUNodeEditorE::CPUNodeType::NoiseOpenSimplex2S:
247 node = new NoiseOpenSimplex2SNode();
248 break;
249
250 case CPUNodeEditorE::CPUNodeType::NoiseValue:
251 node = new NoiseValueNode();
252 break;
253
254 case CPUNodeEditorE::CPUNodeType::NoiseValueCubic:
255 node = new NoiseValueCubicNode();
256 break;
257
258 case CPUNodeEditorE::CPUNodeType::MathFunction:
259 node = new MathFunctionNode();
260 break;
261
262 case CPUNodeEditorE::CPUNodeType::Texture:
263 node = new TextureNode();
264 break;
265
266 case CPUNodeEditorE::CPUNodeType::Heightmap:
267 node = new HeightmapNode();
268 break;
269
270 case CPUNodeEditorE::CPUNodeType::Pixelate:
271 node = new PixelateNode();
272 break;
273
274 case CPUNodeEditorE::CPUNodeType::Visualizer:
275 node = new VisualizerNode();
276 break;
277
278 case CPUNodeEditorE::CPUNodeType::Hill:
279 node = new HillNode();
280 break;
281
282 case CPUNodeEditorE::CPUNodeType::Clamp:
283 node = new ClampNode();
284 break;
285
286 case CPUNodeEditorE::CPUNodeType::MinVal:
287 node = new MinValNode();
288 break;
289
290 default:
291 node = nullptr;
292 Log("Unknown Node Type!");
293 break;
294 }
295
296 return node;
297 };
298 editor = new NodeEditor(config);
299 editor->name = name;
300 editor->SetOutputNode(new OutputNode());
301}
Definition: AbsNode.h:7
Definition: AddNode.h:7
Definition: CosNode.h:7
Definition: DivNode.h:7
Definition: MulNode.h:7
Definition: SinNode.h:7
Definition: SubNode.h:7
Definition: TanNode.h:7
a class to store JSON values
Definition: json.hpp:17860