Move the Driver away from the builder pattern and use mutators instead
This commit is contained in:
@@ -2,9 +2,9 @@ use coremem::{Driver, mat};
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let width = 201;
|
let width = 201;
|
||||||
let mut driver = Driver::new(width, 101, 1e-3 /* feature size */)
|
let mut driver = Driver::new(width, 101, 1e-3 /* feature size */);
|
||||||
.with_y4m_renderer("em_reflection.y4m")
|
driver.add_y4m_renderer("em_reflection.y4m");
|
||||||
.with_term_renderer();
|
driver.add_term_renderer();;
|
||||||
|
|
||||||
for inset in 0..20 {
|
for inset in 0..20 {
|
||||||
for x in 0..width {
|
for x in 0..width {
|
||||||
|
@@ -3,11 +3,10 @@ use coremem::{Driver, mat};
|
|||||||
fn main() {
|
fn main() {
|
||||||
let width = 1300;
|
let width = 1300;
|
||||||
let height = 1000;
|
let height = 1000;
|
||||||
let mut driver = Driver::new(width, height, 1e-5 /* feature size */)
|
let mut driver = Driver::new(width, height, 1e-5 /* feature size */);
|
||||||
.with_y4m_renderer("ferromagnet.y4m")
|
driver.set_steps_per_frame(40);
|
||||||
.with_term_renderer()
|
driver.add_y4m_renderer("ferromagnet.y4m");
|
||||||
.with_steps_per_frame(40)
|
driver.add_term_renderer();
|
||||||
;
|
|
||||||
|
|
||||||
for y in 0..height {
|
for y in 0..height {
|
||||||
for x in 500..600 {
|
for x in 500..600 {
|
||||||
|
@@ -22,22 +22,20 @@ impl Driver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_steps_per_frame(mut self, steps_per_frame: u64) -> Self {
|
pub fn set_steps_per_frame(&mut self, steps_per_frame: u64) {
|
||||||
self.steps_per_frame = steps_per_frame;
|
self.steps_per_frame = steps_per_frame;
|
||||||
self
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_renderer<R: Renderer + 'static>(mut self, renderer: R) -> Self {
|
pub fn add_renderer<R: Renderer + 'static>(&mut self, renderer: R) {
|
||||||
self.renderer.push(renderer);
|
self.renderer.push(renderer);
|
||||||
self
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_y4m_renderer<S: Into<PathBuf>>(self, output: S) -> Self {
|
pub fn add_y4m_renderer<S: Into<PathBuf>>(&mut self, output: S) {
|
||||||
self.with_renderer(render::Y4MRenderer::new(output))
|
self.add_renderer(render::Y4MRenderer::new(output));
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_term_renderer(self) -> Self {
|
pub fn add_term_renderer(&mut self) {
|
||||||
self.with_renderer(render::ColorTermRenderer)
|
self.add_renderer(render::ColorTermRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_boundary(&mut self, thickness: u32) {
|
pub fn add_boundary(&mut self, thickness: u32) {
|
||||||
|
Reference in New Issue
Block a user