12345678910111213141516171819202122232425262728293031 |
- // 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;
- }
- };
- }
- }
|