From 26d5124abdbe9bda5d2d479a68f64368d4a2d410 Mon Sep 17 00:00:00 2001 From: Usman Jamshed Date: Tue, 14 Dec 2021 18:37:10 -0500 Subject: [PATCH 1/2] Some gui work and output services --- Makefile | 3 ++ bin/test_CA_input | Bin 0 -> 64040 bytes include/CellularAutomata.h | 12 ++++++- include/wxgui.h | 35 ++++++++++++++++++++ src/input/CA_input.cxx | 10 +++--- src/output/CA_output.cxx | 60 ++++++++++++++++++++++++++++++++++ src/output/Makefile | 6 +++- src/output/wx | Bin 0 -> 216136 bytes src/output/wxgui.cxx | 65 +++++++++++++++++++++++++++++++++++++ tests/Makefile | 2 +- tests/test_CA_input.cxx | 10 +++++- wx | Bin 0 -> 332736 bytes 12 files changed, 194 insertions(+), 9 deletions(-) create mode 100755 bin/test_CA_input create mode 100644 include/wxgui.h create mode 100644 src/output/CA_output.cxx create mode 100755 src/output/wx create mode 100644 src/output/wxgui.cxx create mode 100755 wx diff --git a/Makefile b/Makefile index 9cf4a2a..96f7f7c 100644 --- a/Makefile +++ b/Makefile @@ -10,10 +10,12 @@ UTILS_DIR = utils/ TEST_DIR = tests/ SRC_INP = src/input +SRC_OUT = src/output all: cd $(UTILS_DIR); make all cd $(SRC_INP); make all + cd $(SRC_OUT); make all cd $(TEST_DIR); make all @@ -23,4 +25,5 @@ testall: cleanall: cd $(UTILS_DIR); make cleanall cd $(SRC_INP); make cleanall + cd $(SRC_OUT); make cleanall cd $(TEST_DIR); make cleanall \ No newline at end of file diff --git a/bin/test_CA_input b/bin/test_CA_input new file mode 100755 index 0000000000000000000000000000000000000000..b5fb08e01a199e5d019b7fdf7fb2f276f7309801 GIT binary patch literal 64040 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 literal 0 HcmV?d00001 diff --git a/include/CellularAutomata.h b/include/CellularAutomata.h index fc8c138..8869307 100644 --- a/include/CellularAutomata.h +++ b/include/CellularAutomata.h @@ -53,7 +53,17 @@ class CellularAutomata void vn_neighborhood(int row, int column); // Code to evaluate moore neighborhood where r=1. - void moore_neighborhood(int row, int column); + void moore_neighborhood(int row, int column); + + // Getter function to retrieve the data of the Cellular Automata. + std::vector> get_data(); + + // Gives information on the stats of the states in the Cellular Automata. + void get_stats(); + + void step(int rule_num); + + void run(int num_steps, int rule_num); // Function to print out the Cellular Automata. void print(); diff --git a/include/wxgui.h b/include/wxgui.h new file mode 100644 index 0000000..d55dbf4 --- /dev/null +++ b/include/wxgui.h @@ -0,0 +1,35 @@ +#pragma once +// wxWidgets "Hello World" Program +// For compilers that support precompilation, includes "wx/wx.h". +#include +#ifndef WX_PRECOMP + #include + #include + #include + #include +#endif + +class cMain : public wxFrame +{ + +private: + wxGrid *grid; + wxString mystring; + wxColourDatabase *colour; + +public: + cMain(int rows, int columns); + +}; + +class cApp : public wxApp +{ + private: + cMain* m_frame1 = nullptr; + + public: + virtual bool OnInit(); +}; + + + diff --git a/src/input/CA_input.cxx b/src/input/CA_input.cxx index c7c4be8..4b2ec01 100644 --- a/src/input/CA_input.cxx +++ b/src/input/CA_input.cxx @@ -127,7 +127,6 @@ void CellularAutomata::Initialize_Density() _data[_starting_position.first][_starting_position.second] = _legend_density[_reactor].first; } - // Code to evaluate von neumman neighborhood where r = 1 with periodic bounds. void CellularAutomata::vn_neighborhood(int row, int column) { @@ -165,9 +164,11 @@ void CellularAutomata::moore_neighborhood(int row, int column) } -void CellularAutomata::run(int num_steps, int rule_num){ - for(int i=0; i < num_steps; i++){ - step(int rule_num); +void CellularAutomata::run(int num_steps, int rule_num) +{ + for(int i=0; i < num_steps; i++) + { + step(rule_num); } } @@ -181,7 +182,6 @@ void CellularAutomata::step(int rule_num){ } } - // Temporary print that is being used to test if the Initialize function is working as intended. // Print the formatted matrix out to the terminal using std::cout. Each row is printed with the first element of the Cellular Automata following an opening square bracket and all elements being seperated by commas. The last element of the Cellular Automata is also followed by a closing square bracket. void CellularAutomata::print() diff --git a/src/output/CA_output.cxx b/src/output/CA_output.cxx new file mode 100644 index 0000000..13830de --- /dev/null +++ b/src/output/CA_output.cxx @@ -0,0 +1,60 @@ +#include +#include +#include "CellularAutomata.h" +#include "myutils.h" + +// Getter function to retreive the vector +std::vector> CellularAutomata::get_data() +{ + std::vector> return_data; + return_data.resize(_rows); + for (int i = 0; i < _rows; i++) + { + for (int j = 0; j < _columns; j++) + { + return_data[i].push_back(_data[i][j]); + } + } + return return_data; +} + +// Gives information on the stats of the states in the Cellular Automata. +void CellularAutomata::get_stats() +{ + if (_legend.empty() == false) + { + for(const auto &it : _legend) + { + int counter = 0; + for (int i = 0; i < _rows; i++) + { + for (int j = 0; j < _columns; j++) + { + if (_data[i][j] == it.second) + { + counter++; + } + } + } + std::cout << "The state: " << it.first << " occupied " << counter << " cells" << std::endl; + } + } + else + { + for(const auto &it2 : _legend_density) + { + int counter2 = 0; + for (int i = 0; i < _rows; i++) + { + for (int j = 0; j < _columns; j++) + { + if (_data[i][j] == it2.second.first) + { + counter2++; + } + } + } + std::cout << "The state: " << it2.first << " occupied " << counter2 << " cells" << std::endl; + } + } +} \ No newline at end of file diff --git a/src/output/Makefile b/src/output/Makefile index b6f3d4f..7538081 100644 --- a/src/output/Makefile +++ b/src/output/Makefile @@ -20,7 +20,11 @@ INC_DIR = ../../include LIB_DIR = ../../lib # targets this makefile builds -OUTPUT_OBJS= +OUTPUT_OBJS = CA_output.o + +CA_output.o: $(INC_DIR)/myutils.h $(INC_DIR)/CellularAutomata.h + $(CXX) $(CXXFLAGS) CA_output.cxx -I$(INC_DIR) + mv CA_output.o $(LIB_DIR) all: $(OUTPUT_OBJS) diff --git a/src/output/wx b/src/output/wx new file mode 100755 index 0000000000000000000000000000000000000000..e1f11e460e70edbb576f2aab2fc7ee7e00b55a61 GIT binary patch literal 216136 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
  • fR8@WC8Q>jWFy>V)ou<#JB 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 PzJ7YwZ`1}9Z#zE)YTf3l literal 0 HcmV?d00001 diff --git a/src/output/wxgui.cxx b/src/output/wxgui.cxx new file mode 100644 index 0000000..60b1e4d --- /dev/null +++ b/src/output/wxgui.cxx @@ -0,0 +1,65 @@ +#include "../../include/wxgui.h" +#include "../../include/CellularAutomata.h" +#include +#include +#include + +wxIMPLEMENT_APP(cApp); + +cMain::cMain(int rows, int columns) : wxFrame(nullptr, wxID_ANY, "Cellular Automata", wxPoint(30, 30), wxSize(1700, 1000)) +{ + // Sets up the grid + grid = new wxGrid( this, -1, wxPoint( 0, 0 )); + + // Sets up Colour database which will be used to convert wxString colours to wxColour + colour = new wxColourDatabase(); + + // Then we call CreateGrid to set the dimensions of the grid + // (10 rows and 10 columns) + grid->CreateGrid(rows, columns, wxGrid::wxGridSelectNone); + + // Prevents any editing from the user input + grid->EnableEditing(false); + + // Makes the header labels disappear + grid->SetRowLabelSize(0); + grid->SetColLabelSize(0); + + // Sets the grind line between cells to black + grid->SetGridLineColour (*wxBLACK); + + // Prevent users to resizing the cells + grid->DisableDragRowSize(); + grid->DisableDragColSize(); + + // Setting size for the row and columns + grid->SetDefaultColSize (50); + grid->SetDefaultRowSize (50); + + // Set up grid colours based on Cellular automata states. + std::vector> test = {{1, 1, 1}, {1, 0, 1}, {0, 1, 2}}; + std::map test_map{{0, "White"}, {1, "Green"}, {2, "Red"}, {3, "Brown"}}; + + for (int i = 0; i < rows; i++) + { + for (int j = 0; j < columns; j++) + { + // Get string for color at that cell + std::string color = test_map[test[i][j]]; + + // Now convert the string to the wxString + mystring = wxString(color); + + // Colour each cell in the grid with the colour associated with it + // colour->find(mystring) is used to look up the wxColour associated with the name + grid->SetCellBackgroundColour(i, j, colour->Find(mystring)); + } + } +} + +bool cApp::OnInit() +{ + m_frame1 = new cMain(3, 3); + m_frame1->Show(); + return true; +} \ No newline at end of file diff --git a/tests/Makefile b/tests/Makefile index 348fd25..0a02041 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -23,7 +23,7 @@ BIN_DIR = ../bin EXECUTABLES = test_CA_input test_CA_input: $(INC_DIR)/myutils.h $(INC_DIR)/CellularAutomata.h - $(CXX) $(CXXFLAGS) test_CA_input test_CA_input.cxx -I$(INC_DIR) $(LIB_DIR)/utils.o $(LIB_DIR)/CA_input.o + $(CXX) $(CXXFLAGS) test_CA_input test_CA_input.cxx -I$(INC_DIR) $(LIB_DIR)/utils.o $(LIB_DIR)/CA_input.o $(LIB_DIR)/CA_output.o mv test_CA_input $(BIN_DIR) all: $(EXECUTABLES) diff --git a/tests/test_CA_input.cxx b/tests/test_CA_input.cxx index de6c0d5..4f0be90 100644 --- a/tests/test_CA_input.cxx +++ b/tests/test_CA_input.cxx @@ -31,9 +31,13 @@ int main(void) Test_2.print(); // Testing von neumaan neighborhood analysis std::cout << "Testing Von Neumaan Neighborhood funtionality around 5, 5:" << std::endl; - Test_2.vn_neighborhood(5,5); + Test_2.vn_neighborhood(5,5); std::cout << std::endl; std::cout << std::endl; + Test_2.get_stats(); + std::cout << std::endl; + std::cout << std::endl; + std::cout << "Creating Cellular Automata using Density: " << std::endl; std::map> test_legend_density{{"empty", {0, 0.5}}, {"tree", {1, 0.5}}, {"fire", {2, 0.0}}, {"char", {3, 0.0}}}; @@ -46,4 +50,8 @@ int main(void) Test_3.moore_neighborhood(0,5); std::cout << std::endl; std::cout << std::endl; + Test_3.get_stats(); + std::cout << std::endl; + std::cout << std::endl; + } \ No newline at end of file diff --git a/wx b/wx new file mode 100755 index 0000000000000000000000000000000000000000..ff6b166f8f20ba674eaaf7d6745605454b131a83 GIT binary patch literal 332736 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 Date: Tue, 14 Dec 2021 21:56:43 -0500 Subject: [PATCH 2/2] DO NOT MERGE THIS, THIS IS FOR JOYCE --- src/output/wxgui.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/output/wxgui.cxx b/src/output/wxgui.cxx index 60b1e4d..b0d99ea 100644 --- a/src/output/wxgui.cxx +++ b/src/output/wxgui.cxx @@ -8,6 +8,7 @@ wxIMPLEMENT_APP(cApp); cMain::cMain(int rows, int columns) : wxFrame(nullptr, wxID_ANY, "Cellular Automata", wxPoint(30, 30), wxSize(1700, 1000)) { + // This is still very early development, do not merge into the repo // Sets up the grid grid = new wxGrid( this, -1, wxPoint( 0, 0 ));