mirror of
https://github.com/Manoj-HV30/multithreaded-raytracer.git
synced 2026-05-16 19:35:24 +00:00
Add multithreaded ray tracer implementation
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#ifndef INTERVAL_H
|
||||
#define INTERVAL_H
|
||||
|
||||
class interval {
|
||||
public:
|
||||
double min, max;
|
||||
|
||||
interval() : min(+infinity), max(-infinity) {} // Default interval is empty
|
||||
|
||||
interval(double min, double max) : min(min), max(max) {}
|
||||
|
||||
double size() const {
|
||||
return max - min;
|
||||
}
|
||||
|
||||
bool contains(double x) const {
|
||||
return min <= x && x <= max;
|
||||
}
|
||||
|
||||
bool surrounds(double x) const {
|
||||
return min < x && x < max;
|
||||
}
|
||||
|
||||
|
||||
double clamp(double x) const {
|
||||
if (x < min) return min;
|
||||
if (x > max) return max;
|
||||
return x;
|
||||
}
|
||||
|
||||
static const interval empty, universe;
|
||||
};
|
||||
|
||||
const interval interval::empty = interval(+infinity, -infinity);
|
||||
const interval interval::universe = interval(-infinity, +infinity);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user