Trait VoxelSliceExt

pub trait VoxelSliceExt {
    // Required methods
    fn maximum_voxel(&self) -> Result<&Voxel, Error>;
    fn minimum_voxel(&self) -> Result<&Voxel, Error>;
    fn maximum_result_error(&self) -> Result<(f64, f64), Error>;
    fn minimum_result_error(&self) -> Result<(f64, f64), Error>;
    fn average_result_error(&self) -> Result<(f64, f64), Error>;
    fn collect_result_error(&self) -> Vec<(f64, f64)>;
}
Expand description

Extension trait for slices of voxels

Required Methods§

fn maximum_voxel(&self) -> Result<&Voxel, Error>

Find the maximum Voxel

For example:

use ntools_mesh::{Voxel, VoxelSliceExt};
let voxels = vec![
    Voxel{result: 1.0, ..Default::default()},
    Voxel{result: 2.0, ..Default::default()},
    Voxel{result: 3.0, ..Default::default()},
];

assert_eq!(voxels.maximum_voxel().unwrap(), &voxels[2]);

fn minimum_voxel(&self) -> Result<&Voxel, Error>

Find the minimum Voxel

For example:

use ntools_mesh::{Voxel, VoxelSliceExt};
let voxels = vec![
    Voxel{result: 1.0, ..Default::default()},
    Voxel{result: 2.0, ..Default::default()},
    Voxel{result: 3.0, ..Default::default()},
];

assert_eq!(voxels.minimum_voxel().unwrap(), &voxels[0]);

fn maximum_result_error(&self) -> Result<(f64, f64), Error>

Find the maximum (value, error) in a Voxel collection

For example:

use ntools_mesh::{Voxel, VoxelSliceExt};
let voxels = vec![
    Voxel{result: 1.0, ..Default::default()},
    Voxel{result: 2.0, ..Default::default()},
    Voxel{result: 3.0, ..Default::default()},
];

assert_eq!(voxels.maximum_result_error().unwrap(), (3.0, 0.0));

fn minimum_result_error(&self) -> Result<(f64, f64), Error>

Find the minimum (value, error) in a Voxel collection

For example:

use ntools_mesh::{Voxel, VoxelSliceExt};
let voxels = vec![
    Voxel{result: 1.0, ..Default::default()},
    Voxel{result: 2.0, ..Default::default()},
    Voxel{result: 3.0, ..Default::default()},
];

assert_eq!(voxels.minimum_result_error().unwrap(), (1.0, 0.0));

fn average_result_error(&self) -> Result<(f64, f64), Error>

Find the average (value, error) in a Voxel collection

For example:

use ntools_mesh::{Voxel, VoxelSliceExt};
let voxels = vec![
    Voxel{result: 1.0, error: 0.1, ..Default::default()},
    Voxel{result: 2.0, error: 0.1, ..Default::default()},
    Voxel{result: 3.0, error: 0.1, ..Default::default()},
];

assert_eq!(voxels.average_result_error().unwrap(), (2.0, 0.18708286933869708));

fn collect_result_error(&self) -> Vec<(f64, f64)>

Collect (value, error) pairs from a Voxel collection

For example:

use ntools_mesh::{Voxel, VoxelSliceExt};
let voxels = vec![
    Voxel{result: 1.0, ..Default::default()},
    Voxel{result: 2.0, ..Default::default()},
    Voxel{result: 3.0, ..Default::default()},
];

assert_eq!(voxels.collect_result_error(), vec![(1.0, 0.0), (2.0, 0.0), (3.0, 0.0)]);

Implementors§

§

impl<V> VoxelSliceExt for V
where V: AsRef<[Voxel]>,