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

0028715: Invalid shape produced by reading of attached STEP file. Regression from OCCT-6.9.1 to OCCT-7.0.0.

Corrections: to use fixed shape as result in the non-manifold mode was made.

Regression was due to using modified initial shape as result in the previous version OCCT. At present initial shape is not modified during ShapeProcessing. Therefore modification to use fixed result was made.

Additionally using of nonManifold flag is added to ShapeProcessing.
This commit is contained in:
skl
2017-07-31 17:20:25 +03:00
committed by bugmaster
parent a2456ed88a
commit 2bc6f71528
11 changed files with 108 additions and 27 deletions

View File

@@ -716,7 +716,8 @@ static Standard_Boolean fixshape (const Handle(ShapeProcess_Context)& context)
sfs->FixSolidTool()->CreateOpenSolidMode() = ctx->BooleanVal ( "CreateOpenSolidMode", Standard_True );
sfs->FixShellTool()->FixFaceMode() = ctx->IntegerVal ( "FixFaceMode", -1 );
sfs->FixShellTool()->FixOrientationMode() = ctx->IntegerVal ( "FixFaceOrientationMode", -1 );
sfs->FixShellTool()->SetNonManifoldFlag(ctx->IsNonManifold());
sfs->FixShellTool()->FixOrientationMode() = ctx->IntegerVal("FixFaceOrientationMode", -1);
//parameters for ShapeFix_Face
sff->FixWireMode() = ctx->IntegerVal ( "FixWireMode", -1 );

View File

@@ -38,7 +38,8 @@ IMPLEMENT_STANDARD_RTTIEXT(ShapeProcess_ShapeContext,ShapeProcess_Context)
//=======================================================================
ShapeProcess_ShapeContext::ShapeProcess_ShapeContext (const Standard_CString file,
const Standard_CString seq)
: ShapeProcess_Context ( file, seq ), myUntil(TopAbs_FACE)
: ShapeProcess_Context ( file, seq ), myUntil(TopAbs_FACE),
myNonManifold(Standard_False)
{
}
@@ -50,7 +51,8 @@ ShapeProcess_ShapeContext::ShapeProcess_ShapeContext (const Standard_CString fil
ShapeProcess_ShapeContext::ShapeProcess_ShapeContext (const TopoDS_Shape &S,
const Standard_CString file,
const Standard_CString seq)
: ShapeProcess_Context ( file, seq ), myUntil(TopAbs_FACE)
: ShapeProcess_Context ( file, seq ), myUntil(TopAbs_FACE),
myNonManifold(Standard_False)
{
Init ( S );
}

View File

@@ -126,7 +126,17 @@ public:
//! Prints statistics on Shape Processing onto the current Messenger.
Standard_EXPORT void PrintStatistics() const;
//! Set NonManifold flag
Standard_EXPORT void SetNonManifold(Standard_Boolean theNonManifold)
{
myNonManifold = theNonManifold;
}
//! Get NonManifold flag
Standard_EXPORT Standard_Boolean IsNonManifold()
{
return myNonManifold;
}
DEFINE_STANDARD_RTTIEXT(ShapeProcess_ShapeContext,ShapeProcess_Context)
@@ -144,7 +154,7 @@ private:
TopTools_DataMapOfShapeShape myMap;
Handle(ShapeExtend_MsgRegistrator) myMsg;
TopAbs_ShapeEnum myUntil;
Standard_Boolean myNonManifold;
};