things
This commit is contained in:
27
src/model.rs
27
src/model.rs
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user