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() {
|
||||
let width = 201;
|
||||
let mut driver = Driver::new(width, 101, 1e-3 /* feature size */)
|
||||
.with_y4m_renderer("em_reflection.y4m")
|
||||
.with_term_renderer();
|
||||
let mut driver = Driver::new(width, 101, 1e-3 /* feature size */);
|
||||
driver.add_y4m_renderer("em_reflection.y4m");
|
||||
driver.add_term_renderer();;
|
||||
|
||||
for inset in 0..20 {
|
||||
for x in 0..width {
|
||||
|
@@ -3,11 +3,10 @@ use coremem::{Driver, mat};
|
||||
fn main() {
|
||||
let width = 1300;
|
||||
let height = 1000;
|
||||
let mut driver = Driver::new(width, height, 1e-5 /* feature size */)
|
||||
.with_y4m_renderer("ferromagnet.y4m")
|
||||
.with_term_renderer()
|
||||
.with_steps_per_frame(40)
|
||||
;
|
||||
let mut driver = Driver::new(width, height, 1e-5 /* feature size */);
|
||||
driver.set_steps_per_frame(40);
|
||||
driver.add_y4m_renderer("ferromagnet.y4m");
|
||||
driver.add_term_renderer();
|
||||
|
||||
for y in 0..height {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
pub fn with_y4m_renderer<S: Into<PathBuf>>(self, output: S) -> Self {
|
||||
self.with_renderer(render::Y4MRenderer::new(output))
|
||||
pub fn add_y4m_renderer<S: Into<PathBuf>>(&mut self, output: S) {
|
||||
self.add_renderer(render::Y4MRenderer::new(output));
|
||||
}
|
||||
|
||||
pub fn with_term_renderer(self) -> Self {
|
||||
self.with_renderer(render::ColorTermRenderer)
|
||||
pub fn add_term_renderer(&mut self) {
|
||||
self.add_renderer(render::ColorTermRenderer);
|
||||
}
|
||||
|
||||
pub fn add_boundary(&mut self, thickness: u32) {
|
||||
|
Reference in New Issue
Block a user