Dynamic Neural Field Composer 0.0.0
A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.
Loading...
Searching...
No Matches
simulation_window.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <algorithm>
5#include <cmath>
6#include <imgui-platform-kit/user_interface_window.h>
7
13
14extern ImFont* g_BlackLargeFont;
15extern ImFont* g_BlackMediumFont;
16extern ImFont* g_MediumIconsFont;
17
18enum CharSize : size_t
19{
20 CHAR_SIZE = 50
21};
22
24{
25 class SimulationWindow final : public imgui_kit::UserInterfaceWindow
26 {
27 private:
28 std::shared_ptr<Simulation> simulation;
29 static int activePane;
30 public:
31 explicit SimulationWindow(const std::shared_ptr<Simulation>& simulation);
32
37
38 void render() override;
39 void renderSidebarContents() const;
40 void renderAddElementCard() const;
41 void renderRemoveElementCard() const;
42 void renderSetInteractionCard() const;
43 void renderDataCard() const;
45 void renderMonitoringCard() const;
46 ~SimulationWindow() override = default;
47 private:
48 static void drawIconStrip();
49 static void renderContentPaneTitle();
50 void addElementNeuralField(const char* id, bool addRequested) const;
51 void addElementGaussStimulus(char* id, bool addRequested) const;
52 void addElementTimedGaussStimulus(char* id, bool addRequested) const;
53 void addElementTimedGaussStimulus2D(char* id, bool addRequested) const;
54 void addElementGaussKernel(char* id, bool addRequested) const;
55 void addElementMexicanHatKernel(char* id, bool addRequested) const;
56 void addElementOscillatoryKernel(char* id, bool addRequested) const;
57 void addElementAsymmetricGaussKernel(char* id, bool addRequested) const;
58 void addElementNormalNoise(char* id, bool addRequested) const;
59 void addElementCorrelatedNormalNoise(char* id, bool addRequested) const;
60 void addElementFieldCoupling(char* id, bool addRequested) const;
61 void addElementGaussFieldCoupling(char* id, bool addRequested) const;
62 void addElementBoostStimulus(char* id, bool addRequested) const;
63 void addElementMemoryTrace(char* id, bool addRequested) const;
64 void addElementNeuralField2D(char* id, bool addRequested) const;
65 void addElementGaussStimulus2D(char* id, bool addRequested) const;
66 void addElementGaussKernel2D(char* id, bool addRequested) const;
67 void addElementMexicanHatKernel2D(char* id, bool addRequested) const;
68 void addElementNormalNoise2D(char* id, bool addRequested) const;
69 void addElementOscillatoryKernel2D(char* id, bool addRequested) const;
70 void addElementAsymmetricGaussKernel2D(char* id, bool addRequested) const;
71 void addElementBoostStimulus2D(char* id, bool addRequested) const;
72 void addElementCorrelatedNormalNoise2D(char* id, bool addRequested) const;
73 void addElementMemoryTrace2D(char* id, bool addRequested) const;
74 void addElementResize(char* id, bool addRequested) const;
75 void addElementResize2D(char* id, bool addRequested) const;
76 void addElementCollapse(char* id, bool addRequested) const;
77 void addElementExpand(char* id, bool addRequested) const;
78 };
79}
Definition simulation_window.h:26
void renderSetInteractionCard() const
Definition simulation_window.cpp:1750
SimulationWindow(SimulationWindow &&)=delete
SimulationWindow & operator=(const SimulationWindow &)=delete
void renderLogElementParametersCard() const
Definition simulation_window.cpp:2127
void renderRemoveElementCard() const
Definition simulation_window.cpp:1661
SimulationWindow(const SimulationWindow &)=delete
void renderDataCard() const
Definition simulation_window.cpp:1915
void renderSidebarContents() const
Definition simulation_window.cpp:71
void renderMonitoringCard() const
Definition simulation_window.cpp:2254
SimulationWindow & operator=(SimulationWindow &&)=delete
void render() override
Definition simulation_window.cpp:21
void renderAddElementCard() const
Definition simulation_window.cpp:198
Definition control_bar_window.h:10
ImFont * g_BlackMediumFont
CharSize
Definition simulation_window.h:19
@ CHAR_SIZE
Definition simulation_window.h:20
ImFont * g_MediumIconsFont
ImFont * g_BlackLargeFont