acceln.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2009-2021 Intel Corporation
  2. // SPDX-License-Identifier: Apache-2.0
  3. #pragma once
  4. #include "accel.h"
  5. namespace embree
  6. {
  7. /*! merges N acceleration structures together, by processing them in order */
  8. class AccelN : public Accel
  9. {
  10. public:
  11. AccelN ();
  12. ~AccelN();
  13. public:
  14. void accels_add(Accel* accel);
  15. void accels_init();
  16. public:
  17. static bool pointQuery (Accel::Intersectors* This, PointQuery* query, PointQueryContext* context);
  18. public:
  19. static void intersect (Accel::Intersectors* This, RTCRayHit& ray, IntersectContext* context);
  20. static void intersect4 (const void* valid, Accel::Intersectors* This, RTCRayHit4& ray, IntersectContext* context);
  21. static void intersect8 (const void* valid, Accel::Intersectors* This, RTCRayHit8& ray, IntersectContext* context);
  22. static void intersect16 (const void* valid, Accel::Intersectors* This, RTCRayHit16& ray, IntersectContext* context);
  23. static void intersectN (Accel::Intersectors* This, RTCRayHitN** ray, const size_t N, IntersectContext* context);
  24. public:
  25. static void occluded (Accel::Intersectors* This, RTCRay& ray, IntersectContext* context);
  26. static void occluded4 (const void* valid, Accel::Intersectors* This, RTCRay4& ray, IntersectContext* context);
  27. static void occluded8 (const void* valid, Accel::Intersectors* This, RTCRay8& ray, IntersectContext* context);
  28. static void occluded16 (const void* valid, Accel::Intersectors* This, RTCRay16& ray, IntersectContext* context);
  29. static void occludedN (Accel::Intersectors* This, RTCRayN** ray, const size_t N, IntersectContext* context);
  30. public:
  31. void accels_print(size_t ident);
  32. void accels_immutable();
  33. void accels_build ();
  34. void accels_select(bool filter);
  35. void accels_deleteGeometry(size_t geomID);
  36. void accels_clear ();
  37. public:
  38. std::vector<Accel*> accels;
  39. };
  40. }