1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0028226: Incorrect history support in ShapeUpgrade_UnifySameDomain algorithm

- The methods "Modified" and "IsDeleted" have been added for history support in "ShapeUpgrade_UnifySameDomain" class.
- The new Draw commands "unifysamedommod" and "unifysamedomisdel" have been added.
- Adoption of other algorithms using this one to its new behavior.

Removing code duplication

Correcting regressions

Correcting remarks
This commit is contained in:
imn
2017-03-09 19:20:43 +03:00
committed by bugmaster
parent f1191d3099
commit 20aa0d3fdd
7 changed files with 364 additions and 63 deletions

View File

@@ -667,9 +667,18 @@ Standard_Integer BOPAlgo_CellsBuilder::RemoveInternals(const BOPCol_ListOfShape&
aNb = aMG.Extent();
for (i = 1; i <= aNb; ++i) {
const TopoDS_Shape& aSS = aMG(i);
const TopoDS_Shape& aSGen = anUnify.Generated(aSS);
if (!aSGen.IsNull() && !aSS.IsSame(aSGen)) {
myMapGenerated.Bind(aSS, aSGen);
const TopTools_ListOfShape& aLSGen = anUnify.Generated(aSS);
TopTools_ListIteratorOfListOfShape aIt(aLSGen);
for (; aIt.More(); aIt.Next()) {
const TopoDS_Shape& aShape = aIt.Value();
if (!aShape.IsNull() && !aSS.IsSame(aShape))
myMapGenerated.Bind(aSS, aShape);
}
const TopTools_ListOfShape& aLSMod = anUnify.Modified(aSS);
for (aIt.Init(aLSMod); aIt.More(); aIt.Next()) {
const TopoDS_Shape& aShape = aIt.Value();
if (!aShape.IsNull() && !aSS.IsSame(aShape))
myMapGenerated.Bind(aSS, aShape);
}
}
}