// Copyright 2009-2021 Intel Corporation // SPDX-License-Identifier: Apache-2.0 #pragma once namespace embree { namespace isa { /*! Intersects a ray with a quad with backface culling * enabled. The quad v0,v1,v2,v3 is split into two triangles * v0,v1,v3 and v2,v3,v1. The edge v1,v2 decides which of the two * triangles gets intersected. */ template<int N> __forceinline vbool<N> intersect_quad_backface_culling(const vbool<N>& valid0, const Vec3fa& ray_org, const Vec3fa& ray_dir, const float ray_tnear, const float ray_tfar, const Vec3vf<N>& quad_v0, const Vec3vf<N>& quad_v1, const Vec3vf<N>& quad_v2, const Vec3vf<N>& quad_v3, vfloat<N>& u_o, vfloat<N>& v_o, vfloat<N>& t_o) { … } } }