use crate::genomic::cortical_area::descriptors::NeuronVoxelCoordinate;
#[derive(Clone, Debug, PartialEq)]
pub struct NeuronVoxelXYZP {
pub neuron_voxel_coordinate: NeuronVoxelCoordinate,
pub potential: f32, }
impl NeuronVoxelXYZP {
pub const NUMBER_BYTES_PER_NEURON: usize = (size_of::<u32>() * 3) + size_of::<f32>();
pub fn new(x: u32, y: u32, z: u32, potential: f32) -> Self {
NeuronVoxelXYZP {
neuron_voxel_coordinate: NeuronVoxelCoordinate::new(x, y, z),
potential,
}
}
pub fn as_tuple(&self) -> (u32, u32, u32, f32) {
(
self.neuron_voxel_coordinate.x,
self.neuron_voxel_coordinate.y,
self.neuron_voxel_coordinate.z,
self.potential,
)
}
}
impl std::fmt::Display for NeuronVoxelXYZP {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
let s = format!(
"NeuronVoxelXYZP({}, {}, {}, {})",
self.neuron_voxel_coordinate.x,
self.neuron_voxel_coordinate.y,
self.neuron_voxel_coordinate.z,
self.potential
);
write!(f, "{}", s)
}
}