1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0024983: For the incorrect seam edge in STEP file no fix is provided

fix the notched edges twice per face - before checking for missing seam and after
Test case correction for issue CR24983
Add check for invalid Surface of linear extrusion (with basis curve - line and extrusion direction parallel to this line) during converting STEP surface
Small corrections of test cases for issue CR24983
This commit is contained in:
razmyslovich
2014-07-03 17:16:07 +04:00
committed by apn
parent 9cbe629085
commit 0d4e350159
13 changed files with 71 additions and 70 deletions

View File

@@ -383,10 +383,10 @@ Standard_Boolean ShapeFix_Face::Perform()
theAdvFixWire->SetFace ( myFace );
Standard_Integer usFixLackingMode = theAdvFixWire->FixLackingMode();
Standard_Integer usFixNotchedEdgesMode = theAdvFixWire->FixNotchedEdgesMode();
//Standard_Integer usFixNotchedEdgesMode = theAdvFixWire->FixNotchedEdgesMode(); // CR0024983
Standard_Integer usFixSelfIntersectionMode = theAdvFixWire->FixSelfIntersectionMode();
theAdvFixWire->FixLackingMode() = Standard_False;
theAdvFixWire->FixNotchedEdgesMode() = Standard_False;
//theAdvFixWire->FixNotchedEdgesMode() = Standard_False; // CR0024983
theAdvFixWire->FixSelfIntersectionMode() = Standard_False;
Standard_Boolean fixed = Standard_False;
@@ -459,6 +459,7 @@ Standard_Boolean ShapeFix_Face::Perform()
fixed = (theAdvFixWire->StatusSmall(ShapeExtend_DONE) ||
theAdvFixWire->StatusConnected(ShapeExtend_DONE) ||
theAdvFixWire->StatusEdgeCurves(ShapeExtend_DONE) ||
theAdvFixWire->StatusNotches(ShapeExtend_DONE) || // CR0024983
theAdvFixWire->StatusDegenerated(ShapeExtend_DONE) ||
theAdvFixWire->StatusClosed(ShapeExtend_DONE));
TopoDS_Wire w = theAdvFixWire->Wire();
@@ -480,7 +481,7 @@ Standard_Boolean ShapeFix_Face::Perform()
}
theAdvFixWire->FixLackingMode() = usFixLackingMode;
theAdvFixWire->FixNotchedEdgesMode() = usFixNotchedEdgesMode;
//theAdvFixWire->FixNotchedEdgesMode() = usFixNotchedEdgesMode; // CR0024983
theAdvFixWire->FixSelfIntersectionMode() = usFixSelfIntersectionMode;
if ( ! myFwd ) tmpFace.Orientation ( TopAbs_REVERSED );