From: jfa Date: Thu, 14 Dec 2017 11:59:19 +0000 (+0300) Subject: 0023451: EDF - Remove Extra edges. Improvement by JGV in BlockFix_UnionFaces.cxx... X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=0ba64ea09925cdf7fef65a0051f9e12c531946f6;p=modules%2Fgeom.git 0023451: EDF - Remove Extra edges. Improvement by JGV in BlockFix_UnionFaces.cxx. And porting to OCCT dev (7.2.1). --- diff --git a/src/BlockFix/BlockFix_UnionFaces.cxx b/src/BlockFix/BlockFix_UnionFaces.cxx index 9a42dde43..612272223 100644 --- a/src/BlockFix/BlockFix_UnionFaces.cxx +++ b/src/BlockFix/BlockFix_UnionFaces.cxx @@ -82,6 +82,10 @@ #include #include #include +#include +#include +#include +#include #include #include @@ -233,17 +237,88 @@ static Standard_Boolean IsFacesOfSameSolids return isSame; } +//======================================================================= +//function : IsTangentFaces +//purpose : decides: is edge on closed surface tangent or not +//======================================================================= +static Standard_Boolean IsTangentFaces(const TopoDS_Edge& theEdge, + const TopoDS_Face& theFace) +{ + Standard_Real TolC0 = Max(0.001, 1.5*BRep_Tool::Tolerance(theEdge)); + + Standard_Real aFirst; + Standard_Real aLast; + +// Obtaining of pcurves of edge on two faces. + const Handle(Geom2d_Curve) aC2d1 = BRep_Tool::CurveOnSurface + (theEdge, theFace, aFirst, aLast); + TopoDS_Edge ReversedEdge = theEdge; + ReversedEdge.Reverse(); + const Handle(Geom2d_Curve) aC2d2 = BRep_Tool::CurveOnSurface + (ReversedEdge, theFace, aFirst, aLast); + if (aC2d1.IsNull() || aC2d2.IsNull()) + return Standard_False; + +// Obtaining of two surfaces from adjacent faces. + Handle(Geom_Surface) aSurf = BRep_Tool::Surface(theFace); + + if (aSurf.IsNull()) + return Standard_False; + +// Computation of the number of samples on the edge. + BRepAdaptor_Surface aBAS(theFace); + Handle(BRepAdaptor_HSurface) aBAHS = new BRepAdaptor_HSurface(aBAS); + Handle(BRepTopAdaptor_TopolTool) aTool = new BRepTopAdaptor_TopolTool(aBAHS); + Standard_Integer aNbSamples = aTool->NbSamples(); + const Standard_Integer aNbSamplesMax = 23; + aNbSamples = Min(aNbSamplesMax, aNbSamples); + const Standard_Real aTolAngle = M_PI/18; + + +// Computation of the continuity. + Standard_Real aPar; + Standard_Real aDelta = (aLast - aFirst)/(aNbSamples - 1); + Standard_Integer i, nbNotDone = 0; + + for (i = 1, aPar = aFirst; i <= aNbSamples; i++, aPar += aDelta) { + if (i == aNbSamples) aPar = aLast; + + LocalAnalysis_SurfaceContinuity aCont(aC2d1, aC2d2, aPar, + aSurf, aSurf, GeomAbs_G1, + 0.001, TolC0, aTolAngle, 0.1, 0.1); + if (!aCont.IsDone()) + { + nbNotDone++; + continue; + } + + if (!aCont.IsG1()) + return Standard_False; + } + + if (nbNotDone == aNbSamples) + return Standard_False; + + return Standard_True; +} + //======================================================================= //function : IsEdgeValidToMerge //purpose : Edge is valid if it is not seam or if it is a seam and the face // has another seam edge. //======================================================================= -static Standard_Boolean IsEdgeValidToMerge(const TopoDS_Edge &theEdge, - const TopoDS_Face &theFace) +static Standard_Boolean IsEdgeValidToMerge(const TopoDS_Edge& theEdge, + const TopoDS_Face& theFace, + const Handle(Geom_Surface)& theSurface, + Standard_Boolean& theToMakeUPeriodic, + Standard_Boolean& theToMakeVPeriodic) { Standard_Boolean isValid = Standard_True; - if (BRep_Tool::IsClosed(theEdge, theFace)) { + if (BRepTools::IsReallyClosed(theEdge, theFace)) { + // Mantis issue 0023451, now code corresponds to the comment to this method + isValid = Standard_False; + // This is a seam edge. Check if there are another seam edges on the face. TopExp_Explorer anExp(theFace, TopAbs_EDGE); @@ -259,11 +334,38 @@ static Standard_Boolean IsEdgeValidToMerge(const TopoDS_Edge &theEdge, TopoDS_Edge anEdge = TopoDS::Edge(aShEdge); if (BRep_Tool::IsClosed(anEdge, theFace)) { - isValid = Standard_False; + // Mantis issue 0023451, now code corresponds to the comment to this method + //isValid = Standard_False; + isValid = Standard_True; break; } } } + else if (BRep_Tool::IsClosed(theEdge, theFace)) + { + Standard_Real fpar, lpar; + Handle(Geom2d_Curve) aPCurve = BRep_Tool::CurveOnSurface(theEdge, theFace, fpar, lpar); + gp_Pnt2d P2d1 = aPCurve->Value(fpar); + gp_Pnt2d P2d2 = aPCurve->Value(lpar); + if (!theSurface->IsUPeriodic() && + theSurface->IsUClosed() && + Abs(P2d1.X() - P2d2.X()) < Abs(P2d1.Y() - P2d2.Y())) + { + if (IsTangentFaces(theEdge, theFace)) + theToMakeUPeriodic = Standard_True; + else + isValid = Standard_False; + } + if (!theSurface->IsVPeriodic() && + theSurface->IsVClosed() && + Abs(P2d1.Y() - P2d2.Y()) < Abs(P2d1.X() - P2d2.X())) + { + if (IsTangentFaces(theEdge, theFace)) + theToMakeVPeriodic = Standard_True; + else + isValid = Standard_False; + } + } return isValid; } @@ -334,12 +436,14 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) Handle(Geom_Surface) aBaseSurface = BRep_Tool::Surface(aFace,aBaseLocation); aBaseSurface = ClearRts(aBaseSurface); aBaseSurface = Handle(Geom_Surface)::DownCast(aBaseSurface->Copy()); + Standard_Boolean ToMakeUPeriodic = Standard_False, ToMakeVPeriodic = Standard_False; // find adjacent faces to union Standard_Integer i; for (i = 1; i <= edges.Length(); i++) { TopoDS_Edge edge = TopoDS::Edge(edges(i)); - if (BRep_Tool::Degenerated(edge) || !IsEdgeValidToMerge(edge, aFace)) + if (BRep_Tool::Degenerated(edge) || + !IsEdgeValidToMerge(edge, aFace, aBaseSurface, ToMakeUPeriodic, ToMakeVPeriodic)) continue; const TopTools_ListOfShape& aList = aMapEdgeFaces.FindFromKey(edge); @@ -352,7 +456,8 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) if (aProcessed.Contains(anCheckedFace)) continue; - if (!IsEdgeValidToMerge(edge, anCheckedFace)) { + if (!IsEdgeValidToMerge(edge, anCheckedFace, + aBaseSurface, ToMakeUPeriodic, ToMakeVPeriodic)) { // Skip seam edge. continue; } @@ -392,6 +497,27 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) NbModif++; TopoDS_Face aResult; BRep_Builder B; + if (ToMakeUPeriodic || ToMakeVPeriodic) + { + Handle(Geom_BSplineSurface) aBSplineSurface = Handle(Geom_BSplineSurface)::DownCast(aBaseSurface); + if (aBSplineSurface.IsNull()) + { + Standard_Real aTol = 1.e-4; + GeomAbs_Shape aUCont = GeomAbs_C1, aVCont = GeomAbs_C1; + Standard_Integer degU = 14, degV = 14; + Standard_Integer nmax = 16; + Standard_Integer aPrec = 1; + GeomConvert_ApproxSurface Approximator(aBaseSurface,aTol,aUCont,aVCont,degU,degV,nmax,aPrec); + aBSplineSurface = Approximator.Surface(); + } + + if (ToMakeUPeriodic) + aBSplineSurface->SetUPeriodic(); + if (ToMakeVPeriodic) + aBSplineSurface->SetVPeriodic(); + + aBaseSurface = aBSplineSurface; + } B.MakeFace(aResult,aBaseSurface,aBaseLocation,0); Standard_Integer nbWires = 0; @@ -516,6 +642,9 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) sff.SetMaxTolerance(Max(1.,myTolerance*1000.)); //Setting modes sff.FixOrientationMode() = 0; +#if OCC_VERSION_LARGE > 0x07020001 + sff.FixWireTool()->CheckMissingEdgesMode() = Standard_False; +#endif //sff.FixWireMode() = 0; sff.SetContext(aContext); // Applying the fixes diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer.cxx b/src/GEOMAlgo/GEOMAlgo_Gluer.cxx index bb09bceb2..b012b3e35 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer.cxx @@ -27,6 +27,8 @@ // #include +#include + #include #include @@ -508,7 +510,12 @@ void GEOMAlgo_Gluer::MakeSolids() myResult=aCmp; // if (aMS.Extent()) { +#if OCC_VERSION_LARGE > 0x07020001 + TopTools_IndexedMapOfShape aMapToAvoid; + BOPTools_AlgoTools::CorrectCurveOnSurface(myResult, aMapToAvoid, 0.0001); +#else BOPTools_AlgoTools::CorrectCurveOnSurface(myResult, 0.0001); +#endif } } //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_RemoverWebs.cxx b/src/GEOMAlgo/GEOMAlgo_RemoverWebs.cxx index 98981f651..758fe8476 100644 --- a/src/GEOMAlgo/GEOMAlgo_RemoverWebs.cxx +++ b/src/GEOMAlgo/GEOMAlgo_RemoverWebs.cxx @@ -39,9 +39,8 @@ #include -#include #include -#include +#include //======================================================================= //function : @@ -119,11 +118,11 @@ void GEOMAlgo_RemoverWebs::BuildSolid() TopoDS_Iterator aIt1, aIt2; TopoDS_Shape aShape; BRep_Builder aBB; - BOPCol_MapOfShape aMFence; - BOPCol_IndexedMapOfShape aMSI; - BOPCol_IndexedDataMapOfShapeListOfShape aMFS; - BOPCol_ListOfShape aSFS; - BOPCol_ListIteratorOfListOfShape aItLS; + TopTools_MapOfShape aMFence; + TopTools_IndexedMapOfShape aMSI; + TopTools_IndexedDataMapOfShapeListOfShape aMFS; + TopTools_ListOfShape aSFS; + TopTools_ListIteratorOfListOfShape aItLS; BOPAlgo_BuilderSolid aSB; // //modified by NIZNHY-PKV Thu Jul 11 06:54:51 2013f @@ -144,7 +143,7 @@ void GEOMAlgo_RemoverWebs::BuildSolid() // aNbR=aMFence.Extent(); if (aNbS!=aNbR) { - BOPCol_MapIteratorOfMapOfShape aItMS; + TopTools_MapIteratorOfMapOfShape aItMS; // BOPTools_AlgoTools::MakeContainer(TopAbs_COMPOUND, aShape); // @@ -159,7 +158,7 @@ void GEOMAlgo_RemoverWebs::BuildSolid() aNbF2=0; // // 1. aSFS: Faces - BOPTools::MapShapesAndAncestors(aShape, TopAbs_FACE, TopAbs_SOLID, aMFS); + TopExp::MapShapesAndAncestors(aShape, TopAbs_FACE, TopAbs_SOLID, aMFS); // aNbF=aMFS.Extent(); for (i=1; i<=aNbF; ++i) { @@ -175,7 +174,7 @@ void GEOMAlgo_RemoverWebs::BuildSolid() aSFS.Append(aFi); } else { - const BOPCol_ListOfShape& aLSx=aMFS(i); + const TopTools_ListOfShape& aLSx=aMFS(i); aNbSx=aLSx.Extent(); if (aNbSx==1) { aSFS.Append(aFx); @@ -221,7 +220,7 @@ void GEOMAlgo_RemoverWebs::BuildSolid() return; } // - const BOPCol_ListOfShape& aLSR=aSB.Areas(); + const TopTools_ListOfShape& aLSR=aSB.Areas(); // // 4 Add the internals if (aNbSI) { @@ -239,14 +238,14 @@ void GEOMAlgo_RemoverWebs::BuildSolid() //function : AddInternalShapes //purpose : //======================================================================= -void GEOMAlgo_RemoverWebs::AddInternalShapes(const BOPCol_ListOfShape& aLSR, - const BOPCol_IndexedMapOfShape& aMSI) +void GEOMAlgo_RemoverWebs::AddInternalShapes(const TopTools_ListOfShape& aLSR, + const TopTools_IndexedMapOfShape& aMSI) { Standard_Integer i, aNbSI; TopAbs_State aState; TopoDS_Solid aSd; BRep_Builder aBB; - BOPCol_ListIteratorOfListOfShape aItLS; + TopTools_ListIteratorOfListOfShape aItLS; Handle(IntTools_Context) aCtx=new IntTools_Context; // aNbSI=aMSI.Extent(); diff --git a/src/GEOMAlgo/GEOMAlgo_RemoverWebs.hxx b/src/GEOMAlgo/GEOMAlgo_RemoverWebs.hxx index 39002fe40..ccfea5a8f 100644 --- a/src/GEOMAlgo/GEOMAlgo_RemoverWebs.hxx +++ b/src/GEOMAlgo/GEOMAlgo_RemoverWebs.hxx @@ -38,8 +38,8 @@ #include // #include -#include -#include +#include +#include //======================================================================= //function : GEOMAlgo_RemoverWebs @@ -66,8 +66,8 @@ protected: void BuildSolid() ; Standard_EXPORT - static void AddInternalShapes(const BOPCol_ListOfShape& , - const BOPCol_IndexedMapOfShape& ); + static void AddInternalShapes(const TopTools_ListOfShape& , + const TopTools_IndexedMapOfShape& ); // }; diff --git a/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx b/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx index 942538773..111d9911c 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx @@ -48,8 +48,8 @@ #include -#include -#include +#include +#include #include #include #include @@ -206,7 +206,7 @@ void GEOMAlgo_ShellSolid::Perform() // const BOPDS_DS& aDS=myDSFiller->DS(); BOPDS_DS* pDS=(BOPDS_DS*)&aDS; - const BOPCol_ListOfShape& aLS=pDS->Arguments(); + const TopTools_ListOfShape& aLS=pDS->Arguments(); // aNbArgs=aLS.Extent(); if (aNbArgs!=2) { @@ -245,7 +245,7 @@ void GEOMAlgo_ShellSolid::Perform() return; } // - const BOPCol_DataMapOfShapeListOfShape& aImages=aSSB.Images(); + const TopTools_DataMapOfShapeListOfShape& aImages=aSSB.Images(); // //------------------------------- for (i=iBeg; i<=iEnd; ++i) { @@ -268,7 +268,7 @@ void GEOMAlgo_ShellSolid::Perform() aState=BOPTools_AlgoTools::ComputeState(aP, aSolid, aTol, aCtx); } else { - const BOPCol_ListOfShape& aLSp=aImages.Find(aS); + const TopTools_ListOfShape& aLSp=aImages.Find(aS); aNbSp=aLSp.Extent(); if (aNbSp>0) { continue; diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.cxx b/src/GEOMAlgo/GEOMAlgo_Splitter.cxx index db1a8ad58..aea5bb8dc 100644 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.cxx @@ -36,14 +36,14 @@ #include -#include -#include +#include +#include -#include +#include static void TreatCompound(const TopoDS_Shape& aC, - BOPCol_ListOfShape& aLSX); + TopTools_ListOfShape& aLSX); //======================================================================= //function : @@ -95,7 +95,7 @@ void GEOMAlgo_Splitter::AddTool(const TopoDS_Shape& theShape) //function : Tools //purpose : //======================================================================= -const BOPCol_ListOfShape& GEOMAlgo_Splitter::Tools()const +const TopTools_ListOfShape& GEOMAlgo_Splitter::Tools()const { return myTools; } @@ -150,8 +150,8 @@ void GEOMAlgo_Splitter::BuildResult(const TopAbs_ShapeEnum theType) { TopAbs_ShapeEnum aType; BRep_Builder aBB; - BOPCol_MapOfShape aM; - BOPCol_ListIteratorOfListOfShape aIt, aItIm; + TopTools_MapOfShape aM; + TopTools_ListIteratorOfListOfShape aIt, aItIm; // aIt.Initialize(myArguments); for (; aIt.More(); aIt.Next()) { @@ -159,7 +159,7 @@ void GEOMAlgo_Splitter::BuildResult(const TopAbs_ShapeEnum theType) aType=aS.ShapeType(); if (aType==theType && !myMapTools.Contains(aS)) { if (myImages.IsBound(aS)) { - const BOPCol_ListOfShape& aLSIm=myImages.Find(aS); + const TopTools_ListOfShape& aLSIm=myImages.Find(aS); aItIm.Initialize(aLSIm); for (; aItIm.More(); aItIm.Next()) { const TopoDS_Shape& aSIm=aItIm.Value(); @@ -186,11 +186,11 @@ void GEOMAlgo_Splitter::PostTreat() Standard_Integer i, aNbS; BRep_Builder aBB; TopoDS_Compound aC; - BOPCol_IndexedMapOfShape aMx; + TopTools_IndexedMapOfShape aMx; // aBB.MakeCompound(aC); // - BOPTools::MapShapes(myShape, myLimit, aMx); + TopExp::MapShapes(myShape, myLimit, aMx); aNbS=aMx.Extent(); for (i=1; i<=aNbS; ++i) { const TopoDS_Shape& aS=aMx(i); @@ -199,9 +199,9 @@ void GEOMAlgo_Splitter::PostTreat() if (myLimitMode) { Standard_Integer iType, iLimit, iTypeX; TopAbs_ShapeEnum aType, aTypeX; - BOPCol_ListOfShape aLSP, aLSX; - BOPCol_ListIteratorOfListOfShape aIt, aItX, aItIm; - BOPCol_MapOfShape aM; + TopTools_ListOfShape aLSP, aLSX; + TopTools_ListIteratorOfListOfShape aIt, aItX, aItIm; + TopTools_MapOfShape aM; // iLimit=(Standard_Integer)myLimit; // @@ -239,13 +239,13 @@ void GEOMAlgo_Splitter::PostTreat() }// for (; aIt.More(); aIt.Next()) { // aMx.Clear(); - BOPTools::MapShapes(aC, aMx); + TopExp::MapShapes(aC, aMx); // 2. Add them to aC aIt.Initialize(aLSP); for (; aIt.More(); aIt.Next()) { const TopoDS_Shape& aS=aIt.Value(); if (myImages.IsBound(aS)) { - const BOPCol_ListOfShape& aLSIm=myImages.Find(aS); + const TopTools_ListOfShape& aLSIm=myImages.Find(aS); aItIm.Initialize(aLSIm); for (; aItIm.More(); aItIm.Next()) { const TopoDS_Shape& aSIm=aItIm.Value(); @@ -270,7 +270,7 @@ void GEOMAlgo_Splitter::PostTreat() // Standard_Integer aNbS; TopoDS_Iterator aIt; - BOPCol_ListOfShape aLS; + TopTools_ListOfShape aLS; // aIt.Initialize(myShape); for (; aIt.More(); aIt.Next()) { @@ -289,12 +289,12 @@ void GEOMAlgo_Splitter::PostTreat() //purpose : //======================================================================= void TreatCompound(const TopoDS_Shape& aC1, - BOPCol_ListOfShape& aLSX) + TopTools_ListOfShape& aLSX) { Standard_Integer aNbC1; TopAbs_ShapeEnum aType; - BOPCol_ListOfShape aLC, aLC1; - BOPCol_ListIteratorOfListOfShape aIt, aIt1; + TopTools_ListOfShape aLC, aLC1; + TopTools_ListIteratorOfListOfShape aIt, aIt1; TopoDS_Iterator aItC; // aLC.Append (aC1); diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.hxx b/src/GEOMAlgo/GEOMAlgo_Splitter.hxx index 378985535..27f7260ba 100644 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.hxx @@ -37,8 +37,8 @@ #include -#include -#include +#include +#include #include @@ -63,7 +63,7 @@ class GEOMAlgo_Splitter : public BOPAlgo_Builder void AddTool(const TopoDS_Shape& theShape); Standard_EXPORT - const BOPCol_ListOfShape& Tools()const; + const TopTools_ListOfShape& Tools()const; Standard_EXPORT void SetLimit(const TopAbs_ShapeEnum aLimit); @@ -88,8 +88,8 @@ class GEOMAlgo_Splitter : public BOPAlgo_Builder virtual void PostTreat(); protected: - BOPCol_ListOfShape myTools; - BOPCol_MapOfShape myMapTools; + TopTools_ListOfShape myTools; + TopTools_MapOfShape myMapTools; TopAbs_ShapeEnum myLimit; Standard_Integer myLimitMode; }; diff --git a/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx b/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx index 8be6ab038..02a28c8e5 100644 --- a/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx @@ -45,7 +45,7 @@ #include #include // -#include +#include #include // #include @@ -93,7 +93,7 @@ void GEOMAlgo_VertexSolid::Perform() TopTools_IndexedMapOfShape aM; // const BOPDS_DS& aDS=myDSFiller->DS(); - const BOPCol_ListOfShape& aLS=aDS.Arguments(); + const TopTools_ListOfShape& aLS=aDS.Arguments(); aNbArgs=aLS.Extent(); if (aNbArgs!=2) { myErrorStatus=14; @@ -136,7 +136,7 @@ void GEOMAlgo_VertexSolid::BuildResult() BOPDS_VectorOfInterfVE& aVEs=pDS->InterfVE(); BOPDS_VectorOfInterfVF& aVFs=pDS->InterfVF(); // - const BOPCol_ListOfShape& aLS=aDS.Arguments(); + const TopTools_ListOfShape& aLS=aDS.Arguments(); const TopoDS_Shape& aObj=aLS.First(); // const TopoDS_Shape& aTool=aLS.Last(); @@ -161,7 +161,7 @@ void GEOMAlgo_VertexSolid::BuildResult() iFound=0; // // 1 - aNbVV=aVVs.Extent(); + aNbVV=aVVs.Length(); for (j=0; jDS(); - const BOPCol_ListOfShape& aLS=aDS.Arguments(); + const TopTools_ListOfShape& aLS=aDS.Arguments(); aNbArgs=aLS.Extent(); if (!aNbArgs) { myErrorStatus=13; @@ -115,7 +115,7 @@ void GEOMAlgo_WireSolid::BuildResult() const BOPDS_DS& aDS=myDSFiller->DS(); BOPDS_DS* pDS=(BOPDS_DS*)&aDS; // - const BOPCol_ListOfShape& aLS=pDS->Arguments(); + const TopTools_ListOfShape& aLS=pDS->Arguments(); aNbArgs=aLS.Extent(); if (aNbArgs!=2) { myErrorStatus=14; diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx index abfc738ea..9339d174d 100644 --- a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx @@ -145,7 +145,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(Handle(TFunction_Logbook)& log) if (isCheckSelfInte) { BOPAlgo_CheckerSI aCSI; // checker of self-interferences aCSI.SetLevelOfCheck(BOP_SELF_INTERSECTIONS_LEVEL); - BOPCol_ListOfShape aList1, aList2; + TopTools_ListOfShape aList1, aList2; aList1.Append(aShape1); aList2.Append(aShape2); aCSI.SetArguments(aList1); @@ -201,7 +201,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(Handle(TFunction_Logbook)& log) if (isCheckSelfInte) { aCSI.SetLevelOfCheck(BOP_SELF_INTERSECTIONS_LEVEL); - BOPCol_ListOfShape aList1; + TopTools_ListOfShape aList1; aList1.Append(aShape); aCSI.SetArguments(aList1); aCSI.Perform(); @@ -225,7 +225,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(Handle(TFunction_Logbook)& log) StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid"); if (isCheckSelfInte) { - BOPCol_ListOfShape aList2; + TopTools_ListOfShape aList2; aList2.Append(aShape2); aCSI.SetArguments(aList2); aCSI.Perform(); @@ -266,7 +266,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(Handle(TFunction_Logbook)& log) if (isCheckSelfInte) { aCSI.SetLevelOfCheck(BOP_SELF_INTERSECTIONS_LEVEL); - BOPCol_ListOfShape aList1; + TopTools_ListOfShape aList1; aList1.Append(aShape); aCSI.SetArguments(aList1); aCSI.Perform(); @@ -296,7 +296,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(Handle(TFunction_Logbook)& log) StdFail_NotDone::Raise("Boolean operation will not be performed, because argument shape is not valid"); if (isCheckSelfInte) { - BOPCol_ListOfShape aList2; + TopTools_ListOfShape aList2; aList2.Append(aTool); aCSI.SetArguments(aList2); aCSI.Perform(); @@ -354,7 +354,7 @@ TopoDS_Shape GEOMImpl_BooleanDriver::makeCompoundShellFromFaces } } - BOPCol_ListOfShape aListShapes; + TopTools_ListOfShape aListShapes; BOPTools_AlgoTools::MakeConnexityBlocks(aFaces, TopAbs_EDGE, TopAbs_FACE, aListShapes); if (aListShapes.IsEmpty()) @@ -362,7 +362,7 @@ TopoDS_Shape GEOMImpl_BooleanDriver::makeCompoundShellFromFaces TopoDS_Compound aResult; B.MakeCompound(aResult); - BOPCol_ListIteratorOfListOfShape anIter(aListShapes); + TopTools_ListIteratorOfListOfShape anIter(aListShapes); for (; anIter.More(); anIter.Next()) { TopoDS_Shell aShell; diff --git a/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx b/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx index cbf78afd3..b9598338e 100644 --- a/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx @@ -38,9 +38,8 @@ // OCCT Includes #include #include -#include +#include #include -#include #include #include #include @@ -1551,7 +1550,7 @@ bool GEOMImpl_IMeasureOperations::CheckSelfIntersections TopTools_IndexedMapOfShape anIndices; TopExp::MapShapes(aScopy, anIndices); - BOPCol_ListOfShape aLCS; + TopTools_ListOfShape aLCS; aLCS.Append(aScopy); // BOPAlgo_CheckerSI aCSI; // checker of self-interferences @@ -1748,7 +1747,7 @@ bool GEOMImpl_IMeasureOperations::FastIntersect (Handle(GEOM_Object) theShape1, TopExp::MapShapes(aScopy1, anIndices1); TopExp::MapShapes(aScopy2, anIndices2); - BOPCol_ListOfShape aLCS1, aLCS2; + TopTools_ListOfShape aLCS1, aLCS2; aLCS1.Append(aScopy1); aLCS2.Append(aScopy2); // BRepExtrema_ShapeProximity aBSP; // checker of fast interferences diff --git a/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx b/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx index 0988e6ddc..09ed9bb5d 100644 --- a/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx @@ -45,8 +45,8 @@ #include #include #include -#include -#include +#include +#include #include // Depth of self-intersection check (see BOPAlgo_CheckerSI::SetLevelOfCheck() for more details) @@ -101,7 +101,7 @@ static void PrepareShapes (const TopoDS_Shape& theShape, static void CheckSelfIntersection(const TopoDS_Shape &theShape) { BOPAlgo_CheckerSI aCSI; // checker of self-interferences - BOPCol_ListOfShape aList; + TopTools_ListOfShape aList; aList.Append(theShape); aCSI.SetLevelOfCheck(BOP_SELF_INTERSECTIONS_LEVEL); @@ -436,7 +436,7 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(Handle(TFunction_Logbook)& lo TopExp::MapShapes(aShape, aResIndices); // Map: source_shape/images of source_shape in Result - const BOPCol_IndexedDataMapOfShapeListOfShape& aMR = PS.ImagesResult(); + const TopTools_IndexedDataMapOfShapeListOfShape& aMR = PS.ImagesResult(); //const TopTools_IndexedDataMapOfShapeListOfShape& aMR = PS.ImagesResult(); // history for all argument shapes @@ -468,13 +468,13 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(Handle(TFunction_Logbook)& lo // if (!aMR.Contains(anEntity)) continue; - const BOPCol_ListOfShape& aModified = aMR.FindFromKey(anEntity); + const TopTools_ListOfShape& aModified = aMR.FindFromKey(anEntity); //const TopTools_ListOfShape& aModified = aMR.FindFromKey(anEntity); Standard_Integer nbModified = aModified.Extent(); if (nbModified > 0) { // Mantis issue 0021182 int ih = 1; - BOPCol_ListIteratorOfListOfShape itM (aModified); + TopTools_ListIteratorOfListOfShape itM (aModified); for (; itM.More() && nbModified > 0; itM.Next(), ++ih) { if (!aResIndices.Contains(itM.Value())) { nbModified = 0; @@ -487,7 +487,7 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(Handle(TFunction_Logbook)& lo TDataStd_IntegerArray::Set(aWhatHistoryLabel, 1, nbModified); int ih = 1; - BOPCol_ListIteratorOfListOfShape itM (aModified); + TopTools_ListIteratorOfListOfShape itM (aModified); //TopTools_ListIteratorOfListOfShape itM (aModified); for (; itM.More(); itM.Next(), ++ih) { int id = aResIndices.FindIndex(itM.Value()); diff --git a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx index 06b7fdc95..11830b2a3 100644 --- a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx @@ -744,7 +744,7 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(Handle(TFunction_Logbook)& log) c unsigned int ind, nbshapes = aShapes->Length(); // add faces - BOPCol_ListOfShape aLS; + TopTools_ListOfShape aLS; for (ind = 1; ind <= nbshapes; ind++) { Handle(GEOM_Function) aRefShape = Handle(GEOM_Function)::DownCast(aShapes->Value(ind)); TopoDS_Shape aShape_i = aRefShape->GetValue();