+ make mesh merge more performant
This commit is contained in:
parent
b4ea012edc
commit
76c0f55ebe
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user