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:
@@ -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 );
|
||||
|
@@ -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 );
|
||||
}
|
||||
|
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user