| 4274 | } |
| 4275 | |
| 4276 | FALCOR_SCRIPT_BINDING(Scene) |
| 4277 | { |
| 4278 | using namespace pybind11::literals; |
| 4279 | |
| 4280 | FALCOR_SCRIPT_BINDING_DEPENDENCY(Material) |
| 4281 | FALCOR_SCRIPT_BINDING_DEPENDENCY(Rectangle) |
| 4282 | FALCOR_SCRIPT_BINDING_DEPENDENCY(Light) |
| 4283 | FALCOR_SCRIPT_BINDING_DEPENDENCY(GridVolume) |
| 4284 | FALCOR_SCRIPT_BINDING_DEPENDENCY(Animation) |
| 4285 | FALCOR_SCRIPT_BINDING_DEPENDENCY(AABB) |
| 4286 | FALCOR_SCRIPT_BINDING_DEPENDENCY(Camera) |
| 4287 | FALCOR_SCRIPT_BINDING_DEPENDENCY(EnvMap) |
| 4288 | FALCOR_SCRIPT_BINDING_DEPENDENCY(SDFGrid) |
| 4289 | |
| 4290 | // RenderSettings |
| 4291 | pybind11::class_<Scene::RenderSettings> renderSettings(m, "SceneRenderSettings"); |
| 4292 | renderSettings.def_readwrite("useEnvLight", &Scene::RenderSettings::useEnvLight); |
| 4293 | renderSettings.def_readwrite("useAnalyticLights", &Scene::RenderSettings::useAnalyticLights); |
| 4294 | renderSettings.def_readwrite("useEmissiveLights", &Scene::RenderSettings::useEmissiveLights); |
| 4295 | renderSettings.def_readwrite("useGridVolumes", &Scene::RenderSettings::useGridVolumes); |
| 4296 | renderSettings.def_readwrite("diffuseAlbedoMultiplier", &Scene::RenderSettings::diffuseAlbedoMultiplier); |
| 4297 | renderSettings.def(pybind11::init<>([](bool useEnvLight, bool useAnalyticLights, bool useEmissiveLights, bool useGridVolumes, float diffuseAlbedoMultiplier) { |
| 4298 | Scene::RenderSettings settings; |
| 4299 | settings.useEnvLight = useEnvLight; |
| 4300 | settings.useAnalyticLights = useAnalyticLights; |
| 4301 | settings.useEmissiveLights = useEmissiveLights; |
| 4302 | settings.useGridVolumes = useGridVolumes; |
| 4303 | settings.diffuseAlbedoMultiplier = diffuseAlbedoMultiplier; |
| 4304 | return settings; |
| 4305 | }), "useEnvLight"_a = true, "useAnalyticLights"_a = true, "useEmissiveLights"_a = true, "useGridVolumes"_a = true, "diffuseAlbedoMultiplier"_a = 1.f); |
| 4306 | renderSettings.def("__repr__", [](const Scene::RenderSettings& self) { |
| 4307 | return fmt::format( |
| 4308 | "SceneRenderSettings(useEnvLight={}, useAnalyticLights={}, useEmissiveLights={}, useGridVolumes={}, diffuseAlbedoMultiplier={})", |
| 4309 | self.useEnvLight ? "True" : "False", |
| 4310 | self.useAnalyticLights ? "True" : "False", |
| 4311 | self.useEmissiveLights ? "True" : "False", |
| 4312 | self.useGridVolumes ? "True" : "False", |
| 4313 | self.diffuseAlbedoMultiplier |
| 4314 | ); |
| 4315 | }); |
| 4316 | |
| 4317 | // Scene |
| 4318 | pybind11::class_<Scene, ref<Scene>> scene(m, "Scene"); |
| 4319 | |
| 4320 | scene.def_property_readonly(kStats.c_str(), [](const Scene* pScene) { return toPython(pScene->getSceneStats()); }); |
| 4321 | scene.def_property_readonly(kBounds.c_str(), &Scene::getSceneBounds, pybind11::return_value_policy::copy); |
| 4322 | scene.def_property(kCamera.c_str(), &Scene::getCamera, &Scene::setCamera); |
| 4323 | scene.def_property(kEnvMap.c_str(), &Scene::getEnvMap, &Scene::setEnvMap); |
| 4324 | scene.def_property_readonly(kAnimations.c_str(), &Scene::getAnimations); |
| 4325 | scene.def_property_readonly(kCameras.c_str(), &Scene::getCameras); |
| 4326 | scene.def_property_readonly(kLights.c_str(), &Scene::getLights); |
| 4327 | scene.def_property_readonly(kGridVolumes.c_str(), &Scene::getGridVolumes); |
| 4328 | scene.def_property_readonly("volumes", &Scene::getGridVolumes); // PYTHONDEPRECATED |
| 4329 | scene.def_property(kCameraSpeed.c_str(), &Scene::getCameraSpeed, &Scene::setCameraSpeed); |
| 4330 | scene.def_property(kAnimated.c_str(), &Scene::isAnimated, &Scene::setIsAnimated); |
| 4331 | scene.def_property(kLoopAnimations.c_str(), &Scene::isLooped, &Scene::setIsLooped); |
| 4332 | scene.def_property(kRenderSettings.c_str(), pybind11::overload_cast<>(&Scene::getRenderSettings, pybind11::const_), &Scene::setRenderSettings); |
| 4333 |
nothing calls this directly
no test coverage detected