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

0026656: ShapeFix_Face introduces extremely high vertex tolerance in the input shape

Added set of methods CopyVertex in BRepTools_ReShape. Usage of this non-modifying methods added in ShapeFix_Wire, ShapeFix_Edge.
Test case for issue 26656.
Test cases updated to the new behavior.

Correction of test cases for issue CR26656

Changed access by value to access by reference in method CopyVertex.
This commit is contained in:
aml
2015-09-24 15:01:44 +03:00
committed by bugmaster
parent 10a4116e31
commit ed5ca017c7
64 changed files with 308 additions and 121 deletions

View File

@@ -1079,7 +1079,7 @@ void ShapeUpgrade_UnifySameDomain::UnifyFaces()
TopExp_Explorer exps;
for (exps.Init(myShape, TopAbs_SHELL); exps.More(); exps.Next()) {
TopoDS_Shell aShell = TopoDS::Shell(exps.Current());
// map of processed shapes
TopTools_MapOfShape aProcessed;
@@ -1357,11 +1357,11 @@ void ShapeUpgrade_UnifySameDomain::UnifyFaces()
}
else
{
Handle(ShapeExtend_WireData) sbwd =
Handle(ShapeExtend_WireData) sbwd =
new ShapeExtend_WireData (aWire);
ShapeFix_WireSegment seg ( sbwd, TopAbs_REVERSED );
wires.Append(seg);
}
ShapeFix_WireSegment seg ( sbwd, TopAbs_REVERSED );
wires.Append(seg);
}
}
CompShell.DispatchWires ( parts,wires );
@@ -1415,6 +1415,7 @@ void ShapeUpgrade_UnifySameDomain::UnifyFaces()
TopoDS_Shape aResult = myContext->Apply(aShell);
ShapeFix_Edge sfe;
if (!myContext.IsNull()) sfe.SetContext(myContext);
for (exp.Init(aResult,TopAbs_EDGE); exp.More(); exp.Next()) {
TopoDS_Edge E = TopoDS::Edge(exp.Current());
sfe.FixVertexTolerance (E);