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

Method handleRedo

Source/RenderPasses/SDFEditor/SDFEditor.cpp:1001–1034  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

999}
1000
1001void SDFEditor::handleRedo()
1002{
1003 uint32_t primitivesAffectedCount = calcPrimitivesAffectedCount(mRedoPressedCount++);
1004
1005 // Redo - Go through the undone SDF edits and put them back into the mPerformedSDFEdits list.
1006 std::unordered_map<SdfGridID, std::vector<SDF3DPrimitive>> primitivesToAddPerSDF;
1007
1008 uint32_t editsToRedoCount = std::min(primitivesAffectedCount, uint32_t(mUndoneSDFEdits.size()));
1009 for (uint32_t i = 0; i < editsToRedoCount; i++)
1010 {
1011 UndoneSDFEdit undoneEdit = mUndoneSDFEdits.back();
1012 primitivesToAddPerSDF[undoneEdit.gridID].push_back(undoneEdit.primitive);
1013 mUndoneSDFEdits.pop_back();
1014 }
1015
1016 for (auto pair : primitivesToAddPerSDF)
1017 {
1018 SdfGridID gridID = pair.first;
1019 const std::vector<SDF3DPrimitive>& primitivesToAdd = pair.second;
1020
1021 uint32_t basePrimitiveID;
1022 basePrimitiveID = mpScene->getSDFGrid(gridID)->addPrimitives(primitivesToAdd);
1023 mNonBakedPrimitiveCount++;
1024
1025 SDFEdit redoEdit;
1026 redoEdit.gridID = gridID;
1027
1028 for (uint32_t id = basePrimitiveID; id < basePrimitiveID + primitivesToAdd.size(); id++)
1029 {
1030 redoEdit.primitiveID = id;
1031 mPerformedSDFEdits.push_back(redoEdit);
1032 }
1033 }
1034}
1035
1036void SDFEditor::bakePrimitives()
1037{

Callers

nothing calls this directly

Calls 5

backMethod · 0.80
addPrimitivesMethod · 0.80
minFunction · 0.50
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected