godot/thirdparty/embree/kernels/geometry/trianglei.h

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

#pragma once

#include "primitive.h"
#include "../common/scene.h"

namespace embree
{
  /* Stores M triangles from an indexed face set */
  template <int M>
  struct TriangleMi
  {};

  namespace isa
  {
    
  template<int M>
    struct TriangleMi : public embree::TriangleMi<M>
  {};

#if !defined(EMBREE_COMPACT_POLYS)
  template<> template<> __forceinline const vuint<4>& TriangleMi<4>::getVertexOffset<0>() const {}
  template<> template<> __forceinline const vuint<4>& TriangleMi<4>::getVertexOffset<1>() const {}
  template<> template<> __forceinline const vuint<4>& TriangleMi<4>::getVertexOffset<2>() const {}
#endif
  
  template<>
  __forceinline void TriangleMi<4>::gather(Vec3vf4& p0,
                                           Vec3vf4& p1,
                                           Vec3vf4& p2,
                                           const Scene* const scene) const
  {}

  template<>
  __forceinline void TriangleMi<4>::gather(Vec3vf4& p0,
                                           Vec3vf4& p1,
                                           Vec3vf4& p2,
                                           const TriangleMesh* mesh,
                                           const Scene *const scene,
                                           const int itime) const
  {}

  template<>
  __forceinline void TriangleMi<4>::gather(Vec3vf4& p0,
                                           Vec3vf4& p1,
                                           Vec3vf4& p2,
                                           const Scene *const scene,
                                           const float time) const
  {}
  }

  template<int M>
  typename TriangleMi<M>::Type TriangleMi<M>::type;

  Triangle4i;
}