![]() |
Prusa Slicer 2.6.0
|
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
| struct __RTCScene |
Defines an opaque scene type.
Type of progress callback function.
| typedef struct __RTCScene* RTCScene |
Defines an opaque scene type.
| enum RTCAlgorithmFlags |
enabled algorithm flags
| enum RTCRayNFlags |
| enum RTCSceneFlags |
scene flags
| RTCORE_API void rtcCommit | ( | RTCScene | scene | ) |
Commits the geometry of the scene. After initializing or modifying geometries, commit has to get called before tracing rays.
Referenced by igl::embree::EmbreeIntersector::init().
Here is the caller graph for this function:| RTCORE_API void rtcCommitThread | ( | RTCScene | scene, |
| unsigned int | threadID, | ||
| unsigned int | numThreads | ||
| ) |
Commits the geometry of the scene. The calling threads will be used internally as a worker threads on some implementations. The function will wait until 'numThreads' threads have called this function and all threads return from the function after the scene commit is finished. The application threads will not be used as worker threads when the TBB tasking system is enabled (which is the default). On CPUs, we recommend also using TBB inside your application to share threads. We recommend using the rtcCommitThread feature to share threads on the Xeon Phi coprocessor.
| RTCORE_API void rtcDeleteScene | ( | RTCScene | scene | ) |
Deletes the scene. All contained geometry get also destroyed.
Referenced by igl::embree::EmbreeIntersector::deinit().
Here is the caller graph for this function:| RTCORE_API RTCScene rtcDeviceNewScene | ( | RTCDevice | device, |
| RTCSceneFlags | flags, | ||
| RTCAlgorithmFlags | aflags | ||
| ) |
Creates a new scene.
| RTCORE_API void rtcGetBounds | ( | RTCScene | scene, |
| RTCBounds & | bounds_o | ||
| ) |
Returns to AABB of the scene. rtcCommit has to get called previously to this function.
| RTCORE_API void rtcIntersect | ( | RTCScene | scene, |
| RTCRay & | ray | ||
| ) |
Intersects a single ray with the scene. The ray has to be aligned to 16 bytes. This function can only be called for scenes with the RTC_INTERSECT1 flag set.
Referenced by igl::embree::EmbreeIntersector::intersectRay(), igl::embree::EmbreeIntersector::intersectRay(), and igl::embree::EmbreeIntersector::intersectSegment().
Here is the caller graph for this function:| RTCORE_API void rtcIntersect16 | ( | const void * | valid, |
| RTCScene | scene, | ||
| RTCRay16 & | ray | ||
| ) |
Intersects a packet of 16 rays with the scene. The valid mask and ray have both to be aligned to 64 bytes. This function can only be called for scenes with the RTC_INTERSECT16 flag set. For performance reasons, the rtcIntersect16 function should only get called if the CPU supports the 16-wide SIMD instructions.
| RTCORE_API void rtcIntersect4 | ( | const void * | valid, |
| RTCScene | scene, | ||
| RTCRay4 & | ray | ||
| ) |
Intersects a packet of 4 rays with the scene. The valid mask and ray have both to be aligned to 16 bytes. This function can only be called for scenes with the RTC_INTERSECT4 flag set.
| RTCORE_API void rtcIntersect8 | ( | const void * | valid, |
| RTCScene | scene, | ||
| RTCRay8 & | ray | ||
| ) |
Intersects a packet of 8 rays with the scene. The valid mask and ray have both to be aligned to 32 bytes. This function can only be called for scenes with the RTC_INTERSECT8 flag set. For performance reasons, the rtcIntersect8 function should only get called if the CPU supports AVX.
| RTCORE_API void rtcIntersectN | ( | RTCScene | scene, |
| RTCRay * | rayN, | ||
| const size_t | N, | ||
| const size_t | stride, | ||
| const size_t | flags = RTC_RAYN_DEFAULT |
||
| ) |
Intersects a stream of N rays in AOS layout with the scene. This function can only be called for scenes with the RTC_INTERSECTN flag set. The stride specifies the offset between rays in bytes.
| RTCORE_API void rtcIntersectN_SOA | ( | RTCScene | scene, |
| RTCRaySOA & | rayN, | ||
| const size_t | N, | ||
| const size_t | streams, | ||
| const size_t | stride, | ||
| const size_t | flags = RTC_RAYN_DEFAULT |
||
| ) |
Intersects one or multiple streams of N rays in compact SOA layout with the scene. This function can only be called for scenes with the RTC_INTERSECTN flag set. 'streams' specifies the number of dense SOA ray streams, and 'stride' the offset in bytes between those.
| RTCORE_API RTCORE_DEPRECATED RTCScene rtcNewScene | ( | RTCSceneFlags | flags, |
| RTCAlgorithmFlags | aflags | ||
| ) |
Creates a new scene. WARNING: This function is deprecated, use rtcDeviceNewScene instead.
Referenced by igl::embree::EmbreeIntersector::init().
Here is the caller graph for this function:| RTCORE_API void rtcOccluded | ( | RTCScene | scene, |
| RTCRay & | ray | ||
| ) |
Tests if a single ray is occluded by the scene. The ray has to be aligned to 16 bytes. This function can only be called for scenes with the RTC_INTERSECT1 flag set.
| RTCORE_API void rtcOccluded16 | ( | const void * | valid, |
| RTCScene | scene, | ||
| RTCRay16 & | ray | ||
| ) |
Tests if a packet of 16 rays is occluded by the scene. The valid mask and ray have both to be aligned to 64 bytes. This function can only be called for scenes with the RTC_INTERSECT16 flag set. For performance reasons, the rtcOccluded16 function should only get called if the CPU supports the 16-wide SIMD instructions.
| RTCORE_API void rtcOccluded4 | ( | const void * | valid, |
| RTCScene | scene, | ||
| RTCRay4 & | ray | ||
| ) |
Tests if a packet of 4 rays is occluded by the scene. This function can only be called for scenes with the RTC_INTERSECT4 flag set. The valid mask and ray have both to be aligned to 16 bytes.
| RTCORE_API void rtcOccluded8 | ( | const void * | valid, |
| RTCScene | scene, | ||
| RTCRay8 & | ray | ||
| ) |
Tests if a packet of 8 rays is occluded by the scene. The valid mask and ray have both to be aligned to 32 bytes. This function can only be called for scenes with the RTC_INTERSECT8 flag set. For performance reasons, the rtcOccluded8 function should only get called if the CPU supports AVX.
| RTCORE_API void rtcOccludedN | ( | RTCScene | scene, |
| RTCRay * | rayN, | ||
| const size_t | N, | ||
| const size_t | stride, | ||
| const size_t | flags = RTC_RAYN_DEFAULT |
||
| ) |
Tests if a stream of N rays on AOS layout is occluded by the scene. This function can only be called for scenes with the RTC_INTERSECTN flag set. The stride specifies the offset between rays in bytes.
| RTCORE_API void rtcOccludedN_SOA | ( | RTCScene | scene, |
| RTCRaySOA & | rayN, | ||
| const size_t | N, | ||
| const size_t | streams, | ||
| const size_t | stride, | ||
| const size_t | flags = RTC_RAYN_DEFAULT |
||
| ) |
Intersects one or multiple streams of N rays in compact SOA layout with the scene. This function can only be called for scenes with the RTC_INTERSECTN flag set. 'streams' specifies the number of dense SOA ray streams, and 'stride' the offset in bytes between those.
| RTCORE_API void rtcSetProgressMonitorFunction | ( | RTCScene | scene, |
| RTCProgressMonitorFunc | func, | ||
| void * | ptr | ||
| ) |
Sets the progress callback function which is called during hierarchy build of this scene.
| RTCORE_DEPRECATED typedef RTCProgressMonitorFunc RTC_PROGRESS_MONITOR_FUNCTION |