#[derive(Debug, Clone, Copy)]
pub struct Point {
pub x: f64,
pub y: f64,
pub z: Option<f64>,
}
impl Point {
pub fn new(x: f64, y: f64) -> Self {
Point { x, y, z: None }
}
pub fn new_3d(x: f64, y: f64, z: f64) -> Self {
Point { x, y, z: Some(z) }
}
pub fn has_z(&self) -> bool {
self.z.is_some()
}
pub fn z_value(&self) -> f64 {
self.z.unwrap_or(0.0)
}
}