summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-03 23:07:03 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-03 23:07:03 +0700
commit5fd5bb979765ec47e04e3f1f34d362d8d0c9c41e (patch)
treeca82c91e210d1cb1af98a8a4c23172aab2393b52
parent210259c586ba950392bb5ae413d050da2f9bb430 (diff)
refactor move interval related to calculus.rs
-rw-r--r--src/calculus.rs52
-rw-r--r--src/camera.rs2
-rw-r--r--src/common.rs2
-rw-r--r--src/interval.rs50
-rw-r--r--src/main.rs1
-rw-r--r--src/object.rs2
6 files changed, 54 insertions, 55 deletions
diff --git a/src/calculus.rs b/src/calculus.rs
index 12b0f3d..30ada32 100644
--- a/src/calculus.rs
+++ b/src/calculus.rs
@@ -184,4 +184,54 @@ pub mod calculus {
0.0)
}
-} \ No newline at end of file
+}
+
+pub struct Interval {
+ pub min: f32,
+ pub max: f32,
+}
+
+#[allow(unused)]
+impl Interval {
+ pub fn new(min: f32, max: f32) -> Self {
+ Self { min, max }
+ }
+
+ pub fn size(&self) -> f32 {
+ self.max - self.min
+ }
+
+ pub fn contains(&self, x: f32) -> bool {
+ self.min <= x && x <= self.max
+ }
+
+ pub fn surrounds(&self, x: f32) -> bool {
+ self.min < x && x < self.max
+ }
+
+ pub fn clamp(&self, x: f32) -> f32 {
+ if x < self.min { return self.min }
+ if x > self.max { return self.max }
+ x
+ }
+}
+
+impl Default for Interval {
+ fn default() -> Self {
+ Self {
+ min: f32::NEG_INFINITY,
+ max: f32::INFINITY
+ }
+ }
+}
+
+#[allow(unused)]
+pub const INTERVAL_EMPTY: Interval = Interval {
+ min: f32::INFINITY,
+ max: f32::NEG_INFINITY
+};
+#[allow(unused)]
+pub const INTERVAL_UNIVERSE: Interval = Interval {
+ min: f32::NEG_INFINITY,
+ max: f32::INFINITY
+}; \ No newline at end of file
diff --git a/src/camera.rs b/src/camera.rs
index 1b96575..0832bff 100644
--- a/src/camera.rs
+++ b/src/camera.rs
@@ -1,6 +1,6 @@
use crate::calculus::calculus::{deg2rad, sample_square, Point3, Ray, Vec3};
use crate::common::{get_image_height, Color, DisplayBuffer, Pixel, ASPECT_RATIO, DEFOCUS_ANGLE, FOCUS_DIST, IMG_WIDTH, LOOK_AT, LOOK_FROM, MAX_DEPTH, SAMPLES_PER_PIXEL, VFOV, VUP};
-use crate::interval::Interval;
+use crate::calculus::Interval;
use crate::object::{HitRecord, Hittable, HittableList};
pub struct Camera {
diff --git a/src/common.rs b/src/common.rs
index 92b8203..4ea9e72 100644
--- a/src/common.rs
+++ b/src/common.rs
@@ -1,5 +1,5 @@
use crate::calculus::calculus::{Point3, Vec3};
-use crate::interval::Interval;
+use crate::calculus::Interval;
// "Ideal" aspect ratio, allowing fraction
pub const ASPECT_RATIO: f32 = 16.0 / 9.0;
diff --git a/src/interval.rs b/src/interval.rs
deleted file mode 100644
index 21c5f6e..0000000
--- a/src/interval.rs
+++ /dev/null
@@ -1,50 +0,0 @@
-pub struct Interval {
- pub min: f32,
- pub max: f32,
-}
-
-#[allow(unused)]
-impl Interval {
- pub fn new(min: f32, max: f32) -> Self {
- Self { min, max }
- }
-
- pub fn size(&self) -> f32 {
- self.max - self.min
- }
-
- pub fn contains(&self, x: f32) -> bool {
- self.min <= x && x <= self.max
- }
-
- pub fn surrounds(&self, x: f32) -> bool {
- self.min < x && x < self.max
- }
-
- pub fn clamp(&self, x: f32) -> f32 {
- if x < self.min { return self.min }
- if x > self.max { return self.max }
- x
- }
-}
-
-impl Default for Interval {
- fn default() -> Self {
- Self {
- min: f32::NEG_INFINITY,
- max: f32::INFINITY
- }
- }
-}
-
-#[allow(unused)]
-pub const INTERVAL_EMPTY: Interval = Interval {
- min: f32::INFINITY,
- max: f32::NEG_INFINITY
-};
-
-#[allow(unused)]
-pub const INTERVAL_UNIVERSE: Interval = Interval {
- min: f32::NEG_INFINITY,
- max: f32::INFINITY
-};
diff --git a/src/main.rs b/src/main.rs
index 8c632f7..69542fb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,7 +3,6 @@ mod common;
mod calculus;
mod camera;
mod object;
-mod interval;
mod material;
use crate::calculus::calculus::Point3;
diff --git a/src/object.rs b/src/object.rs
index 0161d38..4bc1853 100644
--- a/src/object.rs
+++ b/src/object.rs
@@ -1,6 +1,6 @@
use crate::calculus::calculus::{Point3, Ray, Vec3};
use crate::common::Color;
-use crate::interval::Interval;
+use crate::calculus::Interval;
use crate::material::{Material, MaterialType};
#[derive(Clone)]