Revision control
++ // Copyright 2009-2021 Intel Corporation
++ // SPDX-License-Identifier: Apache-2.0
++
++ #pragma once
++
++ #include "bvh.h"
++
++ namespace embree
++ {
++ namespace isa
++ {
++ struct NearFarPrecalculations
++ {
++ size_t nearX, nearY, nearZ;
++ size_t farX, farY, farZ;
++
++ __forceinline NearFarPrecalculations() {}
++
++ __forceinline NearFarPrecalculations(const Vec3fa& dir, size_t N)
++ {
++ const size_t size = sizeof(float)*N;
++ nearX = (dir.x < 0.0f) ? 1*size : 0*size;
++ nearY = (dir.y < 0.0f) ? 3*size : 2*size;
++ nearZ = (dir.z < 0.0f) ? 5*size : 4*size;
++ farX = nearX ^ size;
++ farY = nearY ^ size;
++ farZ = nearZ ^ size;
++ }
++ };
++ }
++ }