UPML boundary now applies to z dimension
This commit is contained in:
@@ -56,13 +56,15 @@ struct RenderSteps<'a> {
|
||||
im: RgbImage,
|
||||
sim: &'a dyn GenericSim,
|
||||
meas: &'a [Box<dyn AbstractMeasurement>],
|
||||
/// Simulation z coordinate to sample
|
||||
z: u32,
|
||||
}
|
||||
|
||||
impl<'a> RenderSteps<'a> {
|
||||
fn render(state: &'a dyn GenericSim, measurements: &'a [Box<dyn AbstractMeasurement>]) -> RgbImage {
|
||||
fn render(state: &'a dyn GenericSim, measurements: &'a [Box<dyn AbstractMeasurement>], z: u32) -> RgbImage {
|
||||
let width = 768;
|
||||
let height = width * state.height() / state.width();
|
||||
let mut me = Self::new(state, measurements, width, height);
|
||||
let height = width * state.height() / state.width();
|
||||
let mut me = Self::new(state, measurements, width, height, z);
|
||||
me.render_scalar_field(10.0, false, 2, |cell| cell.mat().conductivity().mag());
|
||||
me.render_scalar_field(100.0, true, 0, |cell| cell.mat().m().mag());
|
||||
if false {
|
||||
@@ -75,11 +77,12 @@ impl<'a> RenderSteps<'a> {
|
||||
me.render_measurements();
|
||||
me.im
|
||||
}
|
||||
fn new(sim: &'a dyn GenericSim, meas: &'a [Box<dyn AbstractMeasurement>], width: u32, height: u32) -> Self {
|
||||
fn new(sim: &'a dyn GenericSim, meas: &'a [Box<dyn AbstractMeasurement>], width: u32, height: u32, z: u32) -> Self {
|
||||
RenderSteps {
|
||||
im: RgbImage::new(width, height),
|
||||
sim,
|
||||
meas
|
||||
meas,
|
||||
z
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +91,8 @@ impl<'a> RenderSteps<'a> {
|
||||
let x_m = x_prop * (self.sim.width() as Flt * self.sim.feature_size());
|
||||
let y_prop = y_px as Flt / self.im.height() as Flt;
|
||||
let y_m = y_prop * (self.sim.height() as Flt * self.sim.feature_size());
|
||||
self.sim.sample(Vec3::new(x_m, y_m, 0.0))
|
||||
let z_m = self.z as Flt * self.sim.feature_size();
|
||||
self.sim.sample(Vec3::new(x_m, y_m, z_m))
|
||||
}
|
||||
|
||||
////////////// Ex/Ey/Bz configuration ////////////
|
||||
@@ -212,7 +216,7 @@ impl ImageRenderExt for RgbImage {
|
||||
|
||||
pub trait Renderer {
|
||||
fn render(&mut self, state: &dyn GenericSim, measurements: &[Box<dyn AbstractMeasurement>]) {
|
||||
self.render_with_image(state, &RenderSteps::render(state, measurements));
|
||||
self.render_with_image(state, &RenderSteps::render(state, measurements, state.depth() / 2));
|
||||
}
|
||||
fn render_with_image(&mut self, state: &dyn GenericSim, _im: &RgbImage) {
|
||||
self.render(state, &[]);
|
||||
@@ -327,7 +331,7 @@ impl MultiRenderer {
|
||||
impl Renderer for MultiRenderer {
|
||||
fn render(&mut self, state: &dyn GenericSim, measurements: &[Box<dyn AbstractMeasurement>]) {
|
||||
if self.renderers.len() != 0 {
|
||||
self.render_with_image(state, &RenderSteps::render(state, measurements));
|
||||
self.render_with_image(state, &RenderSteps::render(state, measurements, state.depth() / 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user