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

Function ConvertScene

tutorials/common/tutorial/scene_device.cpp:1090–1134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1088 }
1089
1090 extern "C" RTCScene ConvertScene(RTCDevice g_device, ISPCScene* scene_in, RTCBuildQuality quality, RTCSceneFlags flags, RTCFeatureFlags *used_features_out)
1091 {
1092 TutorialScene* tutorial_scene = (TutorialScene*) scene_in->tutorialScene;
1093 if (!tutorial_scene) return scene_in->scene;
1094
1095 RTCFeatureFlags used_features = RTC_FEATURE_FLAG_NONE;
1096
1097 RTCScene scene = scene_in->scene;
1098 rtcSetSceneFlags(scene, flags);
1099
1100 for (unsigned int geomID=0; geomID<scene_in->numGeometries; geomID++)
1101 {
1102 ISPCGeometry* geometry = scene_in->geometries[geomID];
1103 if (geometry->type == SUBDIV_MESH)
1104 ConvertSubdivMesh(g_device,(ISPCSubdivMesh*) geometry, quality, flags, used_features);
1105 else if (geometry->type == TRIANGLE_MESH)
1106 ConvertTriangleMesh(g_device,(ISPCTriangleMesh*) geometry, quality, flags, used_features);
1107 else if (geometry->type == QUAD_MESH)
1108 ConvertQuadMesh(g_device,(ISPCQuadMesh*) geometry, quality, flags, used_features);
1109 else if (geometry->type == CURVES)
1110 ConvertCurveGeometry(g_device,(ISPCHairSet*) geometry, quality, flags, used_features);
1111 else if (geometry->type == GRID_MESH)
1112 ConvertGridMesh(g_device,(ISPCGridMesh*) geometry, quality, flags, used_features);
1113 else if (geometry->type == POINTS)
1114 ConvertPoints(g_device,(ISPCPointSet*) geometry, quality, flags, used_features);
1115 else if (geometry->type == INSTANCE)
1116 ConvertInstance(g_device, (ISPCInstance*) geometry, quality, flags, 0, used_features);
1117 else if (geometry->type == INSTANCE_ARRAY)
1118 ConvertInstanceArray(g_device, (ISPCInstanceArray*) geometry, quality, flags, 0, used_features);
1119 else
1120 assert(false);
1121
1122 rtcAttachGeometryByID(scene,geometry->geometry,geomID);
1123 }
1124
1125 if (Application::instance) {
1126 Application::instance->log(1,"scene features = " + to_string(used_features));
1127 Application::instance->log(1,"creating Embree objects done");
1128 }
1129
1130 if (used_features_out)
1131 *used_features_out = used_features;
1132
1133 return scene;
1134 }
1135
1136 extern "C" void UpdateScene(ISPCScene* scene_in, float time)
1137 {

Callers 3

convertSceneFunction · 0.85
convertSceneFunction · 0.85
convertSceneFunction · 0.85

Calls 12

rtcSetSceneFlagsFunction · 0.85
ConvertSubdivMeshFunction · 0.85
ConvertTriangleMeshFunction · 0.85
ConvertQuadMeshFunction · 0.85
ConvertCurveGeometryFunction · 0.85
ConvertGridMeshFunction · 0.85
ConvertPointsFunction · 0.85
ConvertInstanceFunction · 0.85
ConvertInstanceArrayFunction · 0.85
rtcAttachGeometryByIDFunction · 0.85
logMethod · 0.80
to_stringFunction · 0.70

Tested by

no test coverage detected