diff --git a/src/viewer/simpleViewer.cpp b/src/viewer/simpleViewer.cpp index 38d05d8..8733e86 100644 --- a/src/viewer/simpleViewer.cpp +++ b/src/viewer/simpleViewer.cpp @@ -1229,16 +1229,18 @@ void Viewer::deleteSelected() { // Remove Shape from its parent if(selectedObj.shape == nullptr) return; -// selectedObj.shape->getParent()->getChildren()->erase( -// std::remove(selectedObj.shape->getParent()->getChildren()->begin(), -// selectedObj.shape->getParent()->getChildren()->end(), -// selection), -// selectedObj.shape->getParent()->getChildren()->end()); + selectedObj.shape->getParent()->getChildren()->erase( + std::remove(selectedObj.shape->getParent()->getChildren()->begin(), + selectedObj.shape->getParent()->getChildren()->end(), + selection), + selectedObj.shape->getParent()->getChildren()->end()); // Get Children if available, and attach to parent if(selectedObj.shape->getParent()->getChildren()->size() > 1) { + QMatrix4x4 parentMatrix = QMatrix4x4(selectedObj.shape->getParent()->transform); for(int i = 0; i < selectedObj.shape->getParent()->getChildren()->size(); i++) { if(selectedObj.shape != selectedObj.shape->getParent()->getChildren()->at(i)) { + selectedObj.shape->getParent()->getChildren()->at(i)->transform = parentMatrix * selectedObj.shape->getParent()->getChildren()->at(i)->transform; selectedObj.shape->getParent()->getParent()->addChild(selectedObj.shape->getParent()->getChildren()->at(i)); } }