134 :appState(as)
135{
136 uid = GenerateId(32);
137 name.reserve(1024);
138 name = "CPU Node Editor " + std::to_string(count++);
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 };
148 {
150 CPUNodeEditorE::CPUNodeType type = (CPUNodeEditorE::CPUNodeType)data["type"];
151
152 switch (type)
153 {
154 case CPUNodeEditorE::CPUNodeType::Dummy:
156 break;
157
158 case CPUNodeEditorE::CPUNodeType::Output:
160 break;
161
162 case CPUNodeEditorE::CPUNodeType::MeshCoordinates:
164 break;
165
166 case CPUNodeEditorE::CPUNodeType::MaxMeshCoordinates:
168 break;
169
170 case CPUNodeEditorE::CPUNodeType::MinMeshCoordinates:
172 break;
173
174 case CPUNodeEditorE::CPUNodeType::TextureCoordinates:
176 break;
177
178 case CPUNodeEditorE::CPUNodeType::TimeBasedSeed:
180 break;
181
182 case CPUNodeEditorE::CPUNodeType::Duplicate:
184 break;
185
186 case CPUNodeEditorE::CPUNodeType::Add:
188 break;
189
190 case CPUNodeEditorE::CPUNodeType::Sub:
192 break;
193
194 case CPUNodeEditorE::CPUNodeType::Mul:
196 break;
197
198 case CPUNodeEditorE::CPUNodeType::Div:
200 break;
201
202 case CPUNodeEditorE::CPUNodeType::Sin:
204 break;
205
206 case CPUNodeEditorE::CPUNodeType::Cos:
208 break;
209
210 case CPUNodeEditorE::CPUNodeType::Square:
212 break;
213
214 case CPUNodeEditorE::CPUNodeType::Tan:
216 break;
217
218 case CPUNodeEditorE::CPUNodeType::Abs:
220 break;
221
222 case CPUNodeEditorE::CPUNodeType::Blend:
224 break;
225
226 case CPUNodeEditorE::CPUNodeType::Curve:
228 break;
229
230 case CPUNodeEditorE::CPUNodeType::RandomNumber:
232 break;
233
234 case CPUNodeEditorE::CPUNodeType::NoisePerlin:
236 break;
237
238 case CPUNodeEditorE::CPUNodeType::NoiseCellular:
240 break;
241
242 case CPUNodeEditorE::CPUNodeType::NoiseOpenSimplex2:
244 break;
245
246 case CPUNodeEditorE::CPUNodeType::NoiseOpenSimplex2S:
248 break;
249
250 case CPUNodeEditorE::CPUNodeType::NoiseValue:
252 break;
253
254 case CPUNodeEditorE::CPUNodeType::NoiseValueCubic:
256 break;
257
258 case CPUNodeEditorE::CPUNodeType::MathFunction:
260 break;
261
262 case CPUNodeEditorE::CPUNodeType::Texture:
264 break;
265
266 case CPUNodeEditorE::CPUNodeType::Heightmap:
268 break;
269
270 case CPUNodeEditorE::CPUNodeType::Pixelate:
272 break;
273
274 case CPUNodeEditorE::CPUNodeType::Visualizer:
276 break;
277
278 case CPUNodeEditorE::CPUNodeType::Hill:
280 break;
281
282 case CPUNodeEditorE::CPUNodeType::Clamp:
284 break;
285
286 case CPUNodeEditorE::CPUNodeType::MinVal:
288 break;
289
290 default:
291 node = nullptr;
292 Log("Unknown Node Type!");
293 break;
294 }
295
296 return node;
297 };
299 editor->name = name;
301}
a class to store JSON values