From b9298c9c5e67202ce16437854343584bedb5bc19 Mon Sep 17 00:00:00 2001 From: Jean-Marie Mineau Date: Sat, 15 May 2021 21:31:41 +0200 Subject: [PATCH] some getters and setters --- src/lib.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 79ba38b..47e12b8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -52,6 +52,25 @@ impl Universe{ } count } + + fn regenerate_cells(&mut self) { + let size = (self.width * self.height) as usize; + self.cells = FixedBitSet::with_capacity(size); + for i in 0..size { + self.cells.set(i, false); + } + } + + pub fn get_cells(&self) -> &FixedBitSet { + &self.cells + } + + pub fn set_cells(&mut self, cells: &[(u32, u32)]) { + for (row, col) in cells.iter().cloned() { + let i = self.get_index(row, col); + self.cells.set(i, true); + } + } } #[wasm_bindgen] @@ -76,6 +95,16 @@ impl Universe { self.cells = next; } + pub fn set_width(&mut self, width: u32) { + self.width = width; + self.regenerate_cells(); + } + + pub fn set_height(&mut self, height: u32) { + self.height = height; + self.regenerate_cells(); + } + pub fn new() -> Universe { let width = 64; let height = 64;