godot/thirdparty/embree/kernels/geometry/quadi.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 quads from an indexed face set */
  template <int M>
  struct QuadMi
  {};

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

#if !defined(EMBREE_COMPACT_POLYS)
  template<> template<> __forceinline const vuint<4>& QuadMi<4>::getVertexOffset<0>() const {}
  template<> template<> __forceinline const vuint<4>& QuadMi<4>::getVertexOffset<1>() const {}
  template<> template<> __forceinline const vuint<4>& QuadMi<4>::getVertexOffset<2>() const {}
  template<> template<> __forceinline const vuint<4>& QuadMi<4>::getVertexOffset<3>() const {}
#endif

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

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

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

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

  Quad4i;
}