+ make mesh merge more performant

This commit is contained in:
wmayer 2015-08-04 11:32:52 +02:00
parent b4ea012edc
commit 76c0f55ebe

View File

@ -1643,7 +1643,7 @@ CmdMeshMerge::CmdMeshMerge()
sAppModule = "Mesh";
sGroup = QT_TR_NOOP("Mesh");
sMenuText = QT_TR_NOOP("Merge");
sToolTipText = "Merges selected meshes into one";
sToolTipText = QT_TR_NOOP("Merges selected meshes into one");
sWhatsThis = "Mesh_Merge";
sStatusTip = sToolTipText;
}
@ -1653,16 +1653,17 @@ void CmdMeshMerge::activated(int iMsg)
App::Document *pcDoc = App::GetApplication().getActiveDocument();
if (!pcDoc)
return;
openCommand("Mesh merge");
Mesh::MeshObject* newMesh = new(Mesh::MeshObject);
Mesh::Feature *pcFeature = static_cast<Mesh::Feature*>(pcDoc->addObject("Mesh::Feature", "Mesh"));
Mesh::MeshObject* newMesh = pcFeature->Mesh.startEditing();
std::vector<App::DocumentObject*> objs = Gui::Selection().getObjectsOfType(Mesh::Feature::getClassTypeId());
for (std::vector<App::DocumentObject*>::const_iterator it = objs.begin(); it != objs.end(); ++it) {
const MeshObject& mesh = static_cast<Mesh::Feature*>(*it)->Mesh.getValue();
MeshCore::MeshKernel kernel = mesh.getKernel();
newMesh->addMesh(kernel);
newMesh->addMesh(mesh);
}
Mesh::Feature *pcFeature = (Mesh::Feature*)pcDoc->addObject("Mesh::Feature", "Mesh");
pcFeature->Mesh.setValue(*newMesh);
pcFeature->Mesh.finishEditing();
updateActive();
commitCommand();
}