@@ -398,6 +398,32 @@ RTC_NAMESPACE_BEGIN;
398
398
RTC_CATCH_END2 (scene);
399
399
}
400
400
401
+ RTC_API RTCProgressMonitorFunction rtcGetSceneProgressMonitorFunction (RTCScene hscene)
402
+ {
403
+ Scene* scene = (Scene*) hscene;
404
+ RTC_CATCH_BEGIN;
405
+ RTC_TRACE (rtcGetSceneProgressMonitorFunction);
406
+ RTC_VERIFY_HANDLE (hscene);
407
+ RTC_ENTER_DEVICE (hscene);
408
+ Lock<MutexSys> lock (g_mutex);
409
+ return scene->getProgressMonitorFunction ();
410
+ RTC_CATCH_END2 (scene);
411
+ return nullptr ;
412
+ }
413
+
414
+ RTC_API void * rtcGetSceneProgressMonitorFunctionUserPtr (RTCScene hscene)
415
+ {
416
+ Scene* scene = (Scene*) hscene;
417
+ RTC_CATCH_BEGIN;
418
+ RTC_TRACE (rtcGetSceneProgressMonitorFunctionUserPtr);
419
+ RTC_VERIFY_HANDLE (hscene);
420
+ RTC_ENTER_DEVICE (hscene);
421
+ Lock<MutexSys> lock (g_mutex);
422
+ return scene->getProgressMonitorFunctionUserPtr ();
423
+ RTC_CATCH_END2 (scene);
424
+ return nullptr ;
425
+ }
426
+
401
427
RTC_API void rtcSetSceneBuildQuality (RTCScene hscene, RTCBuildQuality quality)
402
428
{
403
429
Scene* scene = (Scene*) hscene;
@@ -412,6 +438,18 @@ RTC_NAMESPACE_BEGIN;
412
438
RTC_CATCH_END2 (scene);
413
439
}
414
440
441
+ RTC_API RTCBuildQuality rtcGetSceneBuildQuality (RTCScene hscene)
442
+ {
443
+ Scene* scene = (Scene*) hscene;
444
+ RTC_CATCH_BEGIN;
445
+ RTC_TRACE (rtcGetSceneBuildQuality);
446
+ RTC_VERIFY_HANDLE (hscene);
447
+ RTC_ENTER_DEVICE (hscene);
448
+ return scene->getBuildQuality ();
449
+ RTC_CATCH_END2 (scene);
450
+ return RTC_BUILD_QUALITY_MEDIUM;
451
+ }
452
+
415
453
RTC_API void rtcSetSceneFlags (RTCScene hscene, RTCSceneFlags flags)
416
454
{
417
455
Scene* scene = (Scene*) hscene;
@@ -462,6 +500,18 @@ RTC_NAMESPACE_BEGIN;
462
500
RTC_CATCH_END2 (scene);
463
501
}
464
502
503
+ RTC_API bool rtcIsSceneModified (RTCScene hscene)
504
+ {
505
+ Scene* scene = (Scene*) hscene;
506
+ RTC_CATCH_BEGIN;
507
+ RTC_TRACE (rtcIsSceneModified);
508
+ RTC_VERIFY_HANDLE (hscene);
509
+ RTC_ENTER_DEVICE (hscene);
510
+ return scene->isModified ();
511
+ RTC_CATCH_END2 (scene);
512
+ return false ;
513
+ }
514
+
465
515
RTC_API void rtcGetSceneBounds (RTCScene hscene, RTCBounds* bounds_o)
466
516
{
467
517
Scene* scene = (Scene*) hscene;
@@ -2361,6 +2411,84 @@ RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeSte
2361
2411
RTC_CATCH_END2 (geometry);
2362
2412
}
2363
2413
2414
+ RTC_API size_t rtcGetNumAttachedGeometryIDs (RTCScene hscene)
2415
+ {
2416
+ Scene* scene = (Scene*) hscene;
2417
+ RTC_CATCH_BEGIN;
2418
+ RTC_TRACE (rtcGetNumAttachedGeometryIDs);
2419
+ RTC_VERIFY_HANDLE (hscene);
2420
+ RTC_ENTER_DEVICE (hscene);
2421
+ unsigned int numGeomIDs = scene->size ();
2422
+ for (unsigned int i = 0 ; i < scene->size (); ++i) {
2423
+ Geometry* ptr = scene->get (i);
2424
+ if (!ptr) {
2425
+ numGeomIDs -= 1 ;
2426
+ }
2427
+ }
2428
+ return numGeomIDs;
2429
+ RTC_CATCH_END2 (scene);
2430
+ return 0 ;
2431
+ }
2432
+
2433
+ RTC_API void rtcGetAttachedGeometryIDs (RTCScene hscene, size_t * numGeomIDs, unsigned int * geomIDs)
2434
+ {
2435
+ Scene* scene = (Scene*) hscene;
2436
+ RTC_CATCH_BEGIN;
2437
+ RTC_TRACE (rtcGetAttachedGeometryIDs);
2438
+ RTC_VERIFY_HANDLE (hscene);
2439
+ RTC_VERIFY_HANDLE (numGeomIDs);
2440
+ RTC_ENTER_DEVICE (hscene);
2441
+ *numGeomIDs = scene->size ();
2442
+ for (unsigned int i = 0 ; i < scene->size (); ++i) {
2443
+ Geometry* ptr = scene->get (i);
2444
+ if (!ptr) {
2445
+ *numGeomIDs -= 1 ;
2446
+ } else if (geomIDs) {
2447
+ *geomIDs++ = i;
2448
+ }
2449
+ }
2450
+ RTC_CATCH_END2 (scene);
2451
+ }
2452
+
2453
+ RTC_API size_t rtcGetNumAttachedGeometries (RTCScene hscene)
2454
+ {
2455
+ Scene* scene = (Scene*) hscene;
2456
+ RTC_CATCH_BEGIN;
2457
+ RTC_TRACE (rtcGetNumAttachedGeometryIDs);
2458
+ RTC_VERIFY_HANDLE (hscene);
2459
+ RTC_ENTER_DEVICE (hscene);
2460
+ unsigned int numGeomIDs = scene->size ();
2461
+ for (unsigned int i = 0 ; i < scene->size (); ++i) {
2462
+ Geometry* ptr = scene->get (i);
2463
+ if (!ptr) {
2464
+ numGeomIDs -= 1 ;
2465
+ }
2466
+ }
2467
+ return numGeomIDs;
2468
+ RTC_CATCH_END2 (scene);
2469
+ return 0 ;
2470
+ }
2471
+
2472
+ RTC_API void rtcGetAttachedGeometries (RTCScene hscene, size_t * numGeoms, RTCGeometry* geometries)
2473
+ {
2474
+ Scene* scene = (Scene*) hscene;
2475
+ RTC_CATCH_BEGIN;
2476
+ RTC_TRACE (rtcGetAttachedGeometries);
2477
+ RTC_VERIFY_HANDLE (hscene);
2478
+ RTC_VERIFY_HANDLE (numGeoms);
2479
+ RTC_ENTER_DEVICE (hscene);
2480
+ *numGeoms = scene->size ();
2481
+ for (unsigned int i = 0 ; i < scene->size (); ++i) {
2482
+ Geometry* ptr = scene->get (i);
2483
+ if (!ptr) {
2484
+ *numGeoms -= 1 ;
2485
+ } else if (geometries) {
2486
+ *geometries++ = (RTCGeometry) ptr;
2487
+ }
2488
+ }
2489
+ RTC_CATCH_END2 (scene);
2490
+ }
2491
+
2364
2492
RTC_API RTCGeometry rtcGetGeometry (RTCScene hscene, unsigned int geomID)
2365
2493
{
2366
2494
Scene* scene = (Scene*) hscene;
0 commit comments