summaryrefslogtreecommitdiff
path: root/src/interval.rs
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-01 19:19:25 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-01 19:19:25 +0700
commit006c0c1f7d622bb2eabbf8b2445cd48d2c493d3b (patch)
treee5bcba34bc50a1f145f3fb2b814e4083748001bd /src/interval.rs
parent5e61a588a59008705846326956ff0b1f8ee43b16 (diff)
upd interval struct
Diffstat (limited to 'src/interval.rs')
-rw-r--r--src/interval.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/interval.rs b/src/interval.rs
new file mode 100644
index 0000000..24b1841
--- /dev/null
+++ b/src/interval.rs
@@ -0,0 +1,41 @@
+pub struct Interval {
+ pub min: f32,
+ pub max: f32,
+}
+
+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
+ }
+}
+
+impl Default for Interval {
+ fn default() -> Self {
+ Self {
+ min: f32::NEG_INFINITY,
+ max: f32::INFINITY
+ }
+ }
+}
+
+pub const INTERVAL_EMPTY: Interval = Interval {
+ min: f32::INFINITY,
+ max: f32::NEG_INFINITY
+};
+
+pub const INTERVAL_UNIVERSE: Interval = Interval {
+ min: f32::NEG_INFINITY,
+ max: f32::INFINITY
+};