godot/thirdparty/embree/common/math/interval.h

// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#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) {}
  
  /*! subset relation */
  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 ) {}

  ////////////////////////////////////////////////////////////////////////////////
  /// Select
  ////////////////////////////////////////////////////////////////////////////////

  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
}