Mark remeshed component as Uncombined
parent
2d05583937
commit
8c6a9fef29
|
@ -716,9 +716,12 @@ MeshCombiner::Mesh *MeshGenerator::combinePartMesh(const QString &partIdString,
|
|||
it += xMirrorStart;
|
||||
partCache.faces.push_back(newFace);
|
||||
}
|
||||
MeshCombiner::Mesh *newMesh = nullptr;
|
||||
MeshCombiner::Mesh *xMirroredMesh = new MeshCombiner::Mesh(xMirroredVertices, xMirroredFaces, false);
|
||||
MeshCombiner::Mesh *newMesh = combineTwoMeshes(*mesh,
|
||||
if (!xMirroredMesh->isNull()) {
|
||||
newMesh = combineTwoMeshes(*mesh,
|
||||
*xMirroredMesh, MeshCombiner::Method::Union);
|
||||
}
|
||||
delete xMirroredMesh;
|
||||
if (newMesh && !newMesh->isNull()) {
|
||||
delete mesh;
|
||||
|
@ -834,6 +837,8 @@ CombineMode MeshGenerator::componentCombineMode(const std::map<QString, QString>
|
|||
if (combineMode == CombineMode::Normal) {
|
||||
if (isTrueValueString(valueOfKeyInMapOrEmpty(*component, "inverse")))
|
||||
combineMode = CombineMode::Inversion;
|
||||
if (componentRemeshed(component))
|
||||
combineMode = CombineMode::Uncombined;
|
||||
}
|
||||
return combineMode;
|
||||
}
|
||||
|
@ -1058,7 +1063,15 @@ MeshCombiner::Mesh *MeshGenerator::combineComponentMesh(const QString &component
|
|||
delete mesh;
|
||||
mesh = new MeshCombiner::Mesh(newVertices, newTriangles, componentId.isNull());
|
||||
if (nullptr != mesh) {
|
||||
if (!componentId.isNull()) {
|
||||
if (mesh->isNull()) {
|
||||
delete mesh;
|
||||
mesh = nullptr;
|
||||
}
|
||||
}
|
||||
delete componentCache.mesh;
|
||||
componentCache.mesh = nullptr;
|
||||
if (nullptr != mesh)
|
||||
componentCache.mesh = new MeshCombiner::Mesh(*mesh);
|
||||
}
|
||||
}
|
||||
|
@ -1198,6 +1211,10 @@ MeshCombiner::Mesh *MeshGenerator::combineTwoMeshes(const MeshCombiner::Mesh &fi
|
|||
}
|
||||
}
|
||||
}
|
||||
if (newMesh->isNull()) {
|
||||
delete newMesh;
|
||||
return nullptr;
|
||||
}
|
||||
return newMesh;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue