#pragma once
#include "vec2.h"
#include "vec3.h"
#include "bbox.h"
namespace embree
{
template<typename V>
struct Interval
{ … };
__forceinline bool isEmpty(const Interval<float>& v) { … }
__forceinline vboolx isEmpty(const Interval<vfloatx>& v) { … }
template<typename T> __forceinline bool subset( const Interval<T>& a, const Interval<T>& b ) { … }
template<typename T> __forceinline bool subset( const Vec2<Interval<T>>& a, const Vec2<Interval<T>>& b ) { … }
template<typename T> __forceinline const Vec2<Interval<T>> intersect( const Vec2<Interval<T>>& a, const Vec2<Interval<T>>& b ) { … }
template<typename T> __forceinline Interval<T> select ( bool s, const Interval<T>& t, const Interval<T>& f ) { … }
template<typename T> __forceinline Interval<T> select ( const typename T::Bool& s, const Interval<T>& t, const Interval<T>& f ) { … }
__forceinline int numRoots(const Interval<float>& p0, const Interval<float>& p1)
{ … }
Interval1f;
Interval2f;
Interval3f;
inline void swap(float& a, float& b) { … }
inline Interval1f shift(const Interval1f& v, float shift) { … }
#define TWO_PI …
inline Interval1f sin(Interval1f interval)
{ … }
inline Interval1f cos(Interval1f interval)
{ … }
#undef TWO_PI
}