| 416 | } |
| 417 | |
| 418 | RTC_API void rtcGetSceneLinearBounds(RTCScene hscene, RTCLinearBounds* bounds_o) |
| 419 | { |
| 420 | Scene* scene = (Scene*) hscene; |
| 421 | RTC_CATCH_BEGIN; |
| 422 | RTC_TRACE(rtcGetSceneBounds); |
| 423 | RTC_VERIFY_HANDLE(hscene); |
| 424 | if (bounds_o == nullptr) |
| 425 | throw_RTCError(RTC_ERROR_INVALID_OPERATION,"invalid destination pointer"); |
| 426 | if (scene->isModified()) |
| 427 | throw_RTCError(RTC_ERROR_INVALID_OPERATION,"scene not committed"); |
| 428 | |
| 429 | bounds_o->bounds0.lower_x = scene->bounds.bounds0.lower.x; |
| 430 | bounds_o->bounds0.lower_y = scene->bounds.bounds0.lower.y; |
| 431 | bounds_o->bounds0.lower_z = scene->bounds.bounds0.lower.z; |
| 432 | bounds_o->bounds0.align0 = 0; |
| 433 | bounds_o->bounds0.upper_x = scene->bounds.bounds0.upper.x; |
| 434 | bounds_o->bounds0.upper_y = scene->bounds.bounds0.upper.y; |
| 435 | bounds_o->bounds0.upper_z = scene->bounds.bounds0.upper.z; |
| 436 | bounds_o->bounds0.align1 = 0; |
| 437 | bounds_o->bounds1.lower_x = scene->bounds.bounds1.lower.x; |
| 438 | bounds_o->bounds1.lower_y = scene->bounds.bounds1.lower.y; |
| 439 | bounds_o->bounds1.lower_z = scene->bounds.bounds1.lower.z; |
| 440 | bounds_o->bounds1.align0 = 0; |
| 441 | bounds_o->bounds1.upper_x = scene->bounds.bounds1.upper.x; |
| 442 | bounds_o->bounds1.upper_y = scene->bounds.bounds1.upper.y; |
| 443 | bounds_o->bounds1.upper_z = scene->bounds.bounds1.upper.z; |
| 444 | bounds_o->bounds1.align1 = 0; |
| 445 | RTC_CATCH_END2(scene); |
| 446 | } |
| 447 | |
| 448 | RTC_API void rtcCollide (RTCScene hscene0, RTCScene hscene1, RTCCollideFunc callback, void* userPtr) |
| 449 | { |