From 8b6aebeef0718b61eea1286c20e35484a65cb15b Mon Sep 17 00:00:00 2001 From: Skullheadx Date: Sun, 17 Nov 2024 11:32:14 -0500 Subject: [PATCH] testing masking patterns against standard --- qrgenerator.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/qrgenerator.cpp b/qrgenerator.cpp index 8d3a2fd..8af77d6 100644 --- a/qrgenerator.cpp +++ b/qrgenerator.cpp @@ -13,6 +13,7 @@ std::string id_generator(unsigned int seed); std::size_t get_degree(std::vector polynomial); std::vector field_multiply(std::vector polynomial, unsigned int value); std::vector> set_square(std::vector> grid, std::size_t x, std::size_t y, std::size_t length, bool value); +std::vector> set_rect(std::vector> grid, std::size_t x, std::size_t y, std::size_t length, std::size_t height, bool value); std::vector> symbol_placement_up(std::vector> grid, std::size_t x, std::size_t y, std::vector character); std::vector> symbol_placement_down(std::vector> grid, std::size_t x, std::size_t y, std::vector character); std::vector> symbol_placement_up_special(std::vector> grid, std::size_t x, std::size_t y, std::vector character); @@ -460,13 +461,46 @@ int main() { //print_grid(mask_patterns[7]); + + std::vector> test_grid(21, std::vector (21, 0)); + // top left finder pattern + test_grid = set_square(test_grid, 0,0,7,1); + test_grid = set_square(test_grid, 1,1,5,0); + test_grid = set_square(test_grid, 2,2,3,1); + + // top right finder pattern + test_grid = set_square(test_grid, 14,0,7,1); + test_grid = set_square(test_grid, 15,1,5,0); + test_grid = set_square(test_grid, 16,2,3,1); + + // bottom left finder pattern + test_grid = set_square(test_grid, 0,14,7,1); + test_grid = set_square(test_grid, 1,15,5,0); + test_grid = set_square(test_grid, 2,16,3,1); + test_grid = set_rect(test_grid, 9, 0, 3, 21, 1); + test_grid = set_rect(test_grid, 0, 9, 6, 4, 1); + test_grid = set_rect(test_grid, 14, 9, 7, 1, 1); + test_grid = set_rect(test_grid, 14, 11, 7, 3, 1); + test_grid = set_rect(test_grid, 14, 15, 7, 1, 1); + + + // timing pattern horiz + for (std::size_t i{8}; i < 8+5; ++i){ + test_grid[6][i] = (i+1) % 2; + } + // timing pattern vert + for (std::size_t i{8}; i < 8+5; ++i){ + test_grid[i][6] = (i+1) % 2; + } + print_grid(test_grid); + std::vector>> mask_pattern_results(8, std::vector>(21, std::vector (21, 1))); for (std::size_t ind{}; ind < 8; ++ind){ for (std::size_t i{}; i < 21; ++i){ for (std::size_t j{}; j < 21; ++j){ - mask_pattern_results[ind][i][j] = (mask_pattern_results[ind][i][j] && grid[i][j]); + mask_pattern_results[ind][i][j] = (mask_pattern_results[ind][i][j] && test_grid[i][j]); // CHANGE test_grid BACK TO grid for REAL USE if (mask_patterns[ind][i][j]){ mask_pattern_results[ind][i][j] = !mask_pattern_results[ind][i][j]; } @@ -474,7 +508,7 @@ int main() { } } - print_grid(mask_pattern_results[0]); + print_grid(mask_pattern_results[7]); return 0; } @@ -501,6 +535,14 @@ std::vector> set_square(std::vector> grid, s } return grid; } +std::vector> set_rect(std::vector> grid, std::size_t x, std::size_t y, std::size_t length, std::size_t height, bool value){ + for (std::size_t i{x}; i < x + length; ++i){ + for (std::size_t j{y}; j < y + height; ++j){ + grid[i][j] = value; + } + } + return grid; +} std::vector> symbol_placement_up(std::vector> grid, std::size_t x, std::size_t y, std::vector character){ std::size_t counter{7}; -- 2.54.0