//! Common data structures and models used throughout the library.
/// Represents a 3D point in space.
#[derive(Debug, Clone, Copy)]
pub struct Point3D {
/// X coordinate
pub x: f64,
/// Y coordinate
pub y: f64,
/// Z coordinate
pub z: f64,
}
impl Point3D {
/// Creates a new 3D point.
pub fn new(x: f64, y: f64, z: f64) -> Self {
Self { x, y, z }
}
/// Translates the point by the given offset.
pub fn translate(&mut self, dx: f64, dy: f64, dz: f64) {
self.x += dx;
self.y += dy;
self.z += dz;
}
}