MCPcopy Create free account
hub / github.com/RenderKit/ospray / commit

Method commit

modules/cpu/common/Group.cpp:69–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67}
68
69void Group::commit()
70{
71 geometricModels = getParamDataT<GeometricModel *>("geometry");
72#ifdef OSPRAY_ENABLE_VOLUMES
73 volumetricModels = getParamDataT<VolumetricModel *>("volume");
74#endif
75 clipModels = getParamDataT<GeometricModel *>("clippingGeometry");
76 lights = getParamDataT<Light *>("light");
77
78 size_t numGeometries = geometricModels ? geometricModels->size() : 0;
79#ifdef OSPRAY_ENABLE_VOLUMES
80 size_t numVolumes = volumetricModels ? volumetricModels->size() : 0;
81#endif
82 size_t numClippers = clipModels ? clipModels->size() : 0;
83 size_t numLights = lights ? lights->size() : 0;
84
85 postStatusMsg(OSP_LOG_DEBUG)
86 << "=======================================================\n"
87 << "Finalizing instance, which has " << numGeometries << " geometries, "
88#ifdef OSPRAY_ENABLE_VOLUMES
89 << numVolumes << " volumes, "
90#endif
91 << numClippers << " clipping geometries and " << numLights << " lights";
92
93 int sceneFlags = RTC_SCENE_FLAG_NONE;
94 RTCBuildQuality buildQuality = RTC_BUILD_QUALITY_HIGH;
95 if (getParam<bool>("dynamicScene", false)) {
96 sceneFlags |= RTC_SCENE_FLAG_DYNAMIC;
97 buildQuality = RTC_BUILD_QUALITY_LOW;
98 }
99 sceneFlags |=
100 (getParam<bool>("compactMode", false) ? RTC_SCENE_FLAG_COMPACT : 0);
101 sceneFlags |=
102 (getParam<bool>("robustMode", false) ? RTC_SCENE_FLAG_ROBUST : 0);
103
104 freeAndNullifyEmbreeScene(sceneGeometries);
105#ifdef OSPRAY_ENABLE_VOLUMES
106 freeAndNullifyEmbreeScene(sceneVolumes);
107#endif
108 freeAndNullifyEmbreeScene(sceneClippers);
109
110 geometricModelsArray = nullptr;
111#ifdef OSPRAY_ENABLE_VOLUMES
112 volumetricModelsArray = nullptr;
113#endif
114 clipModelsArray = nullptr;
115
116 getSh()->geometricModels = nullptr;
117#ifdef OSPRAY_ENABLE_VOLUMES
118 getSh()->volumetricModels = nullptr;
119#endif
120 getSh()->clipModels = nullptr;
121
122 RTCDevice embreeDevice = getISPCDevice().getEmbreeDevice();
123 if (!embreeDevice) {
124 throw std::runtime_error("invalid Embree device");
125 }
126

Callers

nothing calls this directly

Calls 8

postStatusMsgFunction · 0.85
createEmbreeSceneFunction · 0.85
resetMethod · 0.80
sharedPtrMethod · 0.80
invertedNormalsMethod · 0.80
sizeMethod · 0.45
getFeatureFlagsMethod · 0.45

Tested by

no test coverage detected