aboutsummaryrefslogtreecommitdiff
path: root/src/scene/shapes
diff options
context:
space:
mode:
Diffstat (limited to 'src/scene/shapes')
-rw-r--r--src/scene/shapes/mod.rs12
-rw-r--r--src/scene/shapes/sphere.rs16
2 files changed, 28 insertions, 0 deletions
diff --git a/src/scene/shapes/mod.rs b/src/scene/shapes/mod.rs
new file mode 100644
index 0000000..76fb6f2
--- /dev/null
+++ b/src/scene/shapes/mod.rs
@@ -0,0 +1,12 @@
+mod sphere;
+
+pub use sphere::Sphere;
+
+use crate::core::Ray;
+use crate::Float;
+
+trait Shape {
+ //
+ fn intersect(ray: Ray) -> Float;
+ fn intersect_
+}
diff --git a/src/scene/shapes/sphere.rs b/src/scene/shapes/sphere.rs
new file mode 100644
index 0000000..9598422
--- /dev/null
+++ b/src/scene/shapes/sphere.rs
@@ -0,0 +1,16 @@
+use crate::Float;
+use crate::core::{Ray, Vector3f};
+
+pub struct Sphere {
+ radius: Float,
+ center: Vector3f,
+}
+
+impl Sphere {
+ pub fn new(radius: Float, center: Vector3f) -> Sphere {
+ Sphere {
+ radius,
+ center,
+ }
+ }
+}