This commit is contained in:
Simon Gardling
2021-04-05 12:55:06 -04:00
parent a7497d6629
commit bff0f8faf1
5 changed files with 784 additions and 38 deletions

View File

@@ -123,19 +123,10 @@ impl Model {
let agents_tick_time = Instant::now();
// Tick agents
for grid in grids.iter_mut() {
grid.tick();
}
// Deposit
for grid in self.grids.iter_mut() {
grid.deposit_all();
}
// Diffuse + Decay
let diffusivity = self.diffusivity;
let diffusivity = self.diffusivity;
self.grids.par_iter_mut().for_each(|grid| {
grid.diffuse(diffusivity);
grid.tick();
grid.diffuse(diffusivity); // Diffuse + Decay
});
self.save_image_data();
@@ -167,11 +158,21 @@ impl Model {
);
}
fn size_of_imgdata_vec(&self) -> usize {
return (self.img_data_vec[0].size_of() as usize) * (self.img_data_vec.len() as usize);
}
fn save_image_data(&mut self) {
let grids = ThinGridData::new_from_grid_vec(self.grids.clone());
let img_data = ImgData::new(grids, self.palette, self.iteration);
self.img_data_vec.push(img_data);
if self.grids[0].width > 1024 && self.grids[0].height > 1024 && self.img_data_vec.len() > 100 {
let size: usize = self.size_of_imgdata_vec();
let mb = size/1024/1024;
// println!("{} B | {} KB | {} MB", size, size/1024, size/1024/1024);
let max_mb = 6000;
if mb >= max_mb {
println!("ram usage is over {} MB (and len of {}), flushing to disk\n", max_mb, self.img_data_vec.len());
self.render_all_imgdata();
self.flush_image_data();
}