| 190 | } |
| 191 | |
| 192 | extern "C" RTCScene initializeScene(TutorialData& data, RTCDevice device) |
| 193 | { |
| 194 | cleanupScene(data); |
| 195 | |
| 196 | data.g_instanceLevels.numLevels = 2; |
| 197 | data.g_instanceLevels.numInstancesOnLevel = (unsigned int*)alignedUSMMalloc(2*sizeof(unsigned int), 16); |
| 198 | data.g_instanceLevels.numInstancesOnLevel[0] = Trees::instances.numInstances; |
| 199 | data.g_instanceLevels.numInstancesOnLevel[1] = Twigs01::instances.numInstances; |
| 200 | data.g_normalTransforms = (LinearSpace3fa**)alignedUSMMalloc(2*sizeof(LinearSpace3fa*), 16); |
| 201 | data.g_normalTransforms[0] = (LinearSpace3fa*)alignedUSMMalloc(data.g_instanceLevels.numInstancesOnLevel[0]*sizeof(LinearSpace3fa), 16); |
| 202 | data.g_normalTransforms[1] = (LinearSpace3fa*)alignedUSMMalloc(data.g_instanceLevels.numInstancesOnLevel[1]*sizeof(LinearSpace3fa), 16); |
| 203 | data.g_instanceLevels.normalTransforms = data.g_normalTransforms; |
| 204 | |
| 205 | RandomSampler sampler; |
| 206 | RandomSampler_init(sampler, 98248); |
| 207 | |
| 208 | RTCScene twig = rtcNewScene(device); |
| 209 | rtcSetSceneFlags(twig, RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS); |
| 210 | addMesh(device, twig, Twig::mesh); |
| 211 | rtcCommitScene(twig); |
| 212 | |
| 213 | RTCScene tree = rtcNewScene(device); |
| 214 | rtcSetSceneFlags(tree, RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS); |
| 215 | addInstances(device, tree, twig, Twigs01::instances, data.g_normalTransforms[1]); |
| 216 | |
| 217 | addMesh(device, tree, Tree01::mesh); |
| 218 | rtcCommitScene(tree); |
| 219 | rtcReleaseScene(twig); |
| 220 | |
| 221 | RTCScene scene = rtcNewScene(device); |
| 222 | rtcSetSceneFlags(scene, RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS); |
| 223 | addInstances(device, scene, tree, Trees::instances, data.g_normalTransforms[0]); |
| 224 | addMesh(device, scene, Ground::mesh); |
| 225 | |
| 226 | rtcReleaseScene(tree); |
| 227 | |
| 228 | rtcCommitScene(scene); |
| 229 | return scene; |
| 230 | } |
| 231 | |
| 232 | // ----------------------------------------------------------------------------- |
| 233 | } // namespace embree |
no test coverage detected