diff --git a/src/geometry.rs b/src/geometry.rs index 4597a75..dd7306b 100644 --- a/src/geometry.rs +++ b/src/geometry.rs @@ -33,6 +33,22 @@ pub enum Geometry { Line(Line), } +impl Geometry { + pub fn greet(&self) { + match self { + Geometry::Sphere(_) => { + println!("Sphere!"); + } + Geometry::Line(_) => { + println!("Line!"); + } + Geometry::Plane(_) => { + println!("Plane!"); + } + } + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/main.rs b/src/main.rs index 7181bf2..79df7ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -61,6 +61,9 @@ impl RenderableGeometry { fn main() { let tex = Rc::new(Texture::load_texture()); + let sphere = Geometry::Sphere(Sphere::new(Point3::new(0.0, 0.0, 0.0), 1.0)); + sphere.greet(); + let geo1 = RenderableGeometry::new( Mat4x4::ident(), Geometry::Sphere(Sphere::new(Point3::new(0.0, 0.0, 0.0), 1.0)),