RTCORE_API RTCScene rtcNewScene (RTCSceneFlags flags, RTCAlgorithmFlags aflags) { CATCH_BEGIN; TRACE(rtcNewScene); if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_INCOHERENT); return (RTCScene) new Scene(flags,aflags); CATCH_END; return NULL; }
RTCORE_API RTCScene rtcDeviceNewScene (RTCDevice device, RTCSceneFlags flags, RTCAlgorithmFlags aflags) { RTCORE_CATCH_BEGIN; RTCORE_TRACE(rtcDeviceNewScene); RTCORE_VERIFY_HANDLE(device); if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_INCOHERENT); return (RTCScene) new Scene((Device*)device,flags,aflags); RTCORE_CATCH_END((Device*)device); return nullptr; }
RTCORE_API RTCScene rtcNewScene (RTCSceneFlags flags, RTCAlgorithmFlags aflags) { RTCORE_CATCH_BEGIN; RTCORE_TRACE(rtcNewScene); assert(g_device); if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_INCOHERENT); return (RTCScene) new Scene(g_device,flags,aflags); RTCORE_CATCH_END(g_device); return nullptr; }
void Scene::createSubdivAccel() { if (g_subdiv_accel == "default") { if (isIncoherent(flags)) { if (isCompact()) accels.add(BVH4::BVH4SubdivGridLazy(this)); else accels.add(BVH4::BVH4SubdivGridEager(this)); } else { accels.add(BVH4::BVH4SubdivPatch1Cached(this)); } } else if (g_subdiv_accel == "bvh4.subdivpatch1" ) accels.add(BVH4::BVH4SubdivPatch1(this)); else if (g_subdiv_accel == "bvh4.subdivpatch1cached") accels.add(BVH4::BVH4SubdivPatch1Cached(this)); else if (g_subdiv_accel == "bvh4.grid.adaptive" ) accels.add(BVH4::BVH4SubdivGrid(this)); else if (g_subdiv_accel == "bvh4.grid.eager" ) accels.add(BVH4::BVH4SubdivGridEager(this)); else if (g_subdiv_accel == "bvh4.grid.lazy" ) accels.add(BVH4::BVH4SubdivGridLazy(this)); else THROW_RUNTIME_ERROR("unknown subdiv accel "+g_subdiv_accel); }
extern "C" RTCScene ispcNewScene (RTCSceneFlags flags, RTCAlgorithmFlags aflags) { if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_COHERENT); return rtcNewScene(flags,aflags); }
extern "C" RTCScene ispcNewScene (RTCSceneFlags flags, RTCAlgorithmFlags aflags) { if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_COHERENT); throw std::runtime_error("ispcNewScene is no longer working in ospray - do not use any more"); // return rtcNewScene(flags,aflags); }