2
0

node_intersector.h 693 B

12345678910111213141516171819202122232425262728293031
  1. // Copyright 2009-2021 Intel Corporation
  2. // SPDX-License-Identifier: Apache-2.0
  3. #pragma once
  4. #include "bvh.h"
  5. namespace embree
  6. {
  7. namespace isa
  8. {
  9. struct NearFarPrecalculations
  10. {
  11. size_t nearX, nearY, nearZ;
  12. size_t farX, farY, farZ;
  13. __forceinline NearFarPrecalculations() {}
  14. __forceinline NearFarPrecalculations(const Vec3fa& dir, size_t N)
  15. {
  16. const size_t size = sizeof(float)*N;
  17. nearX = (dir.x < 0.0f) ? 1*size : 0*size;
  18. nearY = (dir.y < 0.0f) ? 3*size : 2*size;
  19. nearZ = (dir.z < 0.0f) ? 5*size : 4*size;
  20. farX = nearX ^ size;
  21. farY = nearY ^ size;
  22. farZ = nearZ ^ size;
  23. }
  24. };
  25. }
  26. }