Salome HOME
PAL9151. Restore some code from V2_2_2 revision V2_2_4b1
authoreap <eap@opencascade.com>
Wed, 15 Jun 2005 11:47:23 +0000 (11:47 +0000)
committereap <eap@opencascade.com>
Wed, 15 Jun 2005 11:47:23 +0000 (11:47 +0000)
src/NMTTools/NMTTools_PaveFiller_6.cxx

index b725d2c0a5971b35290864efc3eb6e04ab844fa7..139a6ea8c2b667b91cbaf36c3d0af3cac4c0fe02 100644 (file)
@@ -566,10 +566,9 @@ static
       //
       if (aCBAPI.IsCommonBlock(aPB)) {
        // it can be Common Block
-       Standard_Boolean bHasPCOnF, bFound;
-       Standard_Integer nF, k, nEOrx, nF1x, nF2x;
-       Standard_Real aTolEx, aT1x, aT2x;
-       BOPTools_ListIteratorOfListOfPaveBlock aItPBx;
+       Standard_Real aTolEx;
+       Handle(Geom2d_Curve) aC2D1, aC2D2;
+       TopoDS_Face aF1FWD, aF2FWD;
        //
        NMTTools_CommonBlock& aCB=aCBAPI.CommonBlock(aPB);
        const BOPTools_ListOfPaveBlock& aLPBx=aCB.PaveBlocks();
@@ -578,50 +577,67 @@ static
        mE=aPB.Edge(); // index of edge in tDS
        const TopoDS_Edge& aEx=TopoDS::Edge(tDS.Shape(mE));
        aTolEx=BRep_Tool::Tolerance(aEx);
+        //
+        // Commented out by EAP in the frame of PAL9151
+        //
+//     Standard_Boolean bHasPCOnF, bFound;
+//     Standard_Integer nF, k, nEOrx, nF1x, nF2x;
+//     Standard_Real aTolEx, aT1x, aT2x;
+//     BOPTools_ListIteratorOfListOfPaveBlock aItPBx;
        //
-       for (k=0; k<2; ++k) {   
-         nF=(!k) ? nF1 : nF2;
-         const TopoDS_Face& aF=TopoDS::Face(myDS->Shape(nF));
-         //
-         bHasPCOnF=BOPTools_Tools2D::HasCurveOnSurface(aEx, aF); 
-         if (bHasPCOnF) {
-           continue;
-         }
-         //
-         bFound=Standard_False;
-         aItPBx.Initialize(aLPBx);
-         for (; aItPBx.More(); aItPBx.Next()) {
-           BOPTools_PaveBlock& aPBx=aIt.Value();
-           nEOrx=aPBx.OriginalEdge();
-           const TopoDS_Shape& aEOrx=tDS.Shape(nEOrx);
-           BOPTools_PaveBlock& aPBSEx=aMEPB.ChangeFromKey(aEOrx);
-           aT1x=aPBSEx.Pave1().Param();
-           aT2x=aPBSEx.Pave2().Param();
-           const IntTools_Curve& aICx=aPBSEx.Curve();
-           //
-           nF1x=aPBSEx.Face1();
-           nF2x=aPBSEx.Face2();
-           //
-           if (nF1x==nF) {
-             Handle(Geom2d_Curve) aC2D1x=aICx.FirstCurve2d();
-             Handle(Geom2d_TrimmedCurve)aC2D1xT =new Geom2d_TrimmedCurve(aC2D1x, aT1x, aT2x);
-             aBB.UpdateEdge(aEx, aC2D1xT, aF, aTolEx);
-             bFound=!bFound;
-             break;
-           }
-           //
-           if (nF2x==nF) {
-             Handle(Geom2d_Curve) aC2D2x=aICx.SecondCurve2d();
-             Handle(Geom2d_TrimmedCurve)aC2D2xT =new Geom2d_TrimmedCurve(aC2D2x, aT1x, aT2x);
-             aBB.UpdateEdge(aEx, aC2D2xT, aF, aTolEx);
-             bFound=!bFound;
-             break;
-           }
-         }
-         if (bFound){
-           BRepLib::SameParameter(aEx, aTolEx, Standard_True);
-         }
-       }
+//     for (k=0; k<2; ++k) {   
+//       nF=(!k) ? nF1 : nF2;
+//       const TopoDS_Face& aF=TopoDS::Face(myDS->Shape(nF));
+//       //
+//       bHasPCOnF=BOPTools_Tools2D::HasCurveOnSurface(aEx, aF); 
+//       if (bHasPCOnF) {
+//         continue;
+//       }
+//       //
+//       bFound=Standard_False;
+//       aItPBx.Initialize(aLPBx);
+//       for (; aItPBx.More(); aItPBx.Next()) {
+//         BOPTools_PaveBlock& aPBx=aIt.Value();
+//         nEOrx=aPBx.OriginalEdge();
+//         const TopoDS_Shape& aEOrx=tDS.Shape(nEOrx);
+//         BOPTools_PaveBlock& aPBSEx=aMEPB.ChangeFromKey(aEOrx);
+//         aT1x=aPBSEx.Pave1().Param();
+//         aT2x=aPBSEx.Pave2().Param();
+//         const IntTools_Curve& aICx=aPBSEx.Curve();
+//         //
+//         nF1x=aPBSEx.Face1();
+//         nF2x=aPBSEx.Face2();
+//         //
+//         if (nF1x==nF) {
+//           Handle(Geom2d_Curve) aC2D1x=aICx.FirstCurve2d();
+//           Handle(Geom2d_TrimmedCurve)aC2D1xT =new Geom2d_TrimmedCurve(aC2D1x, aT1x, aT2x);
+//           aBB.UpdateEdge(aEx, aC2D1xT, aF, aTolEx);
+//           bFound=!bFound;
+//           break;
+//         }
+//         //
+//         if (nF2x==nF) {
+//           Handle(Geom2d_Curve) aC2D2x=aICx.SecondCurve2d();
+//           Handle(Geom2d_TrimmedCurve)aC2D2xT =new Geom2d_TrimmedCurve(aC2D2x, aT1x, aT2x);
+//           aBB.UpdateEdge(aEx, aC2D2xT, aF, aTolEx);
+//           bFound=!bFound;
+//           break;
+//         }
+//       }
+//       if (bFound){
+//         BRepLib::SameParameter(aEx, aTolEx, Standard_True);
+//       }
+//     }
+        //
+        // The code till the if block end is restored from V2_2_2 revision
+        //
+       aF1FWD=aF1;
+       aF1FWD.Orientation(TopAbs_FORWARD);
+       NMTTools_Tools::MakePCurve(aEx, aF1FWD, aC2D1, aTolEx);
+       //
+       aF2FWD=aF2;
+       aF2FWD.Orientation(TopAbs_FORWARD);
+       NMTTools_Tools::MakePCurve(aEx, aF2FWD, aC2D2, aTolEx);
       } //if (aCBAPI.IsCommonBlock(aPB))
       //
       // new SE