MCPcopy Create free account
hub / github.com/RenderKit/embree / UpdateScene

Function UpdateScene

tutorials/common/tutorial/scene_device.cpp:1136–1168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1134 }
1135
1136 extern "C" void UpdateScene(ISPCScene* scene_in, float time)
1137 {
1138 TutorialScene* tutorial_scene = (TutorialScene*) scene_in->tutorialScene;
1139 if (!tutorial_scene) return;
1140 if (!g_animation_mode) return;
1141
1142 for (unsigned int geomID=0; geomID<scene_in->numGeometries; geomID++)
1143 {
1144 ISPCGeometry* geometry = scene_in->geometries[geomID];
1145
1146 if (geometry->type == INSTANCE) {
1147 ISPCInstance* inst = (ISPCInstance*) geometry;
1148 Ref<SceneGraph::TransformNode> node = tutorial_scene->geometries[geomID].dynamicCast<SceneGraph::TransformNode>();
1149 assert(node);
1150 inst->spaces[0] = node->get(time);
1151 inst->commit();
1152 }
1153 else if (geometry->type == INSTANCE_ARRAY) {
1154 ISPCInstanceArray* inst = (ISPCInstanceArray*) geometry;
1155 Ref<SceneGraph::MultiTransformNode> node = tutorial_scene->geometries[geomID].dynamicCast<SceneGraph::MultiTransformNode>();
1156 assert(node);
1157 for (size_t i = 0; i < inst->numInstances; ++i) {
1158 inst->spaces_array[0][i] = node->get(i, time);
1159 }
1160 inst->commit();
1161 }
1162 }
1163
1164 rtcCommitScene(scene_in->scene);
1165
1166 for (unsigned int i=0; i<scene_in->numLights; i++)
1167 ISPCScene::updateLight(tutorial_scene->lights[i]->get(time), scene_in->lights[i]);
1168 }
1169}

Callers 2

device_renderFunction · 0.85
device_renderFunction · 0.85

Calls 3

rtcCommitSceneFunction · 0.85
getMethod · 0.45
commitMethod · 0.45

Tested by

no test coverage detected