MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / setScene

Method setScene

Source/RenderPasses/SDFEditor/SDFEditor.cpp:206–264  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

204}
205
206void SDFEditor::setScene(RenderContext* pRenderContext, const ref<Scene>& pScene)
207{
208 mpScene = pScene;
209
210 if (!mpScene)
211 return;
212
213 mpCamera = mpScene->getCamera();
214 mpGUIPass = FullScreenPass::create(
215 mpDevice, ProgramDesc().addShaderLibrary(kGUIPassShaderFilename).psEntry("psMain"), mpScene->getSceneDefines()
216 );
217
218 // Initialize editing primitive.
219 {
220 const SDF3DShapeType kDefaultShapeType = SDF3DShapeType::Sphere;
221 const float3 kDefaultShapeData = float3(0.01f);
222 const float kDefaultShapeBlobbing = 0.0f;
223 const float kDefaultOperationSmoothing = 0.0f;
224 const SDFOperationType kDefaultOperationType = SDFOperationType::Union;
225 const Transform kDefaultTransform = Transform();
226
227 mUI2D.currentEditingShape = kDefaultShapeType;
228 mUI2D.currentEditingOperator = kDefaultOperationType;
229
230 if (mpScene->getSDFGridCount() > 0)
231 {
232 std::vector<uint32_t> instanceIDs = mpScene->getGeometryInstanceIDsByType(Scene::GeometryType::SDFGrid);
233 if (instanceIDs.empty())
234 FALCOR_THROW("Scene missing SDFGrid object!");
235
236 mCurrentEdit.instanceID = instanceIDs[0];
237 GeometryInstanceData instance = mpScene->getGeometryInstance(mCurrentEdit.instanceID);
238 SdfGridID sdfGridID = mpScene->findSDFGridIDFromGeometryInstanceID(mCurrentEdit.instanceID);
239 FALCOR_ASSERT(sdfGridID != SdfGridID::Invalid());
240 mCurrentEdit.gridID = sdfGridID;
241 mCurrentEdit.pSDFGrid = mpScene->getSDFGrid(sdfGridID);
242 mCurrentEdit.primitive = SDF3DPrimitiveFactory::initCommon(
243 kDefaultShapeType,
244 kDefaultShapeData,
245 kDefaultShapeBlobbing,
246 kDefaultOperationSmoothing,
247 kDefaultOperationType,
248 kDefaultTransform
249 );
250
251 const AnimationController* pAnimationController = mpScene->getAnimationController();
252 const float4x4& transform = pAnimationController->getGlobalMatrices()[instance.globalMatrixID];
253
254 // Update GUI variables
255 mUI2D.bbRenderSettings.selectedInstanceID = mCurrentEdit.instanceID;
256 mUI2D.gridPlane.position = transform.getCol(3).xyz();
257 mUI2D.previousGridPlane.position = transform.getCol(3).xyz();
258
259 updateSymmetryPrimitive();
260 }
261 }
262
263 mNonBakedPrimitiveCount = mCurrentEdit.pSDFGrid->getPrimitiveCount();

Callers

nothing calls this directly

Calls 8

ProgramDescClass · 0.85
getSceneDefinesMethod · 0.80
getColMethod · 0.80
createFunction · 0.70
InvalidEnum · 0.50
emptyMethod · 0.45

Tested by

no test coverage detected