0027557: Unstable HLR tests
[occt.git] / src / HLRBRep / HLRBRep_Data.cxx
index 8a4d292..63e7ee0 100644 (file)
@@ -774,7 +774,7 @@ void HLRBRep_Data::Update (const HLRAlgo_Projector& P)
     Standard_Boolean withOutL = Standard_False;
     
     for (myFaceItr1.InitEdge(*fd);
-        myFaceItr1.MoreEdge() && !cut && !withOutL;
+        myFaceItr1.MoreEdge();
         myFaceItr1.NextEdge()) {
       if (myFaceItr1.Internal()) {
        withOutL = Standard_True;
@@ -1223,7 +1223,7 @@ void HLRBRep_Data::NextInterference ()
     if (myFEOri == TopAbs_FORWARD ||
        myFEOri == TopAbs_REVERSED) {
       // Edge from the boundary
-      if (!((HLRBRep_EdgeData*)myFEData)->Vertical() && !myFEDouble) {
+      if (!((HLRBRep_EdgeData*)myFEData)->Vertical() && !(myFEDouble && !myFEOutLine)) {
        // not a vertical edge and not a double Edge
        Standard_Address MinMaxFEdg = ((HLRBRep_EdgeData*)myFEData)->MinMax();
        //-- -----------------------------------------------------------------------
@@ -1987,7 +1987,7 @@ HLRBRep_Data::Classify (const Standard_Integer E,
     HLRAlgo::EncodeMinMax((Standard_Address)VertMin,
                          (Standard_Address)VertMax,
                          (Standard_Address)MinMaxVert);
-
+    /*
 #ifdef OCCT_DEBUG
        {
          Standard_Integer qwe,qwep8,q,q1,q2;
@@ -2027,6 +2027,7 @@ HLRBRep_Data::Classify (const Standard_Integer E,
          cout<<endl;
        }
  #endif
+    */
 
     if (((MaxFace1 - MinVert1) & 0x80008000) != 0 ||
        ((MaxVert1 - MinFace1) & 0x80008000) != 0 ||
@@ -2109,7 +2110,9 @@ HLRBRep_Data::Classify (const Standard_Integer E,
            
            do {
              gp_Pnt2d pnt2d(u,v);
-             if (myClassifier->Classify(pnt2d,0.0)!=TopAbs_OUT) {
+             if (myClassifier->Classify(pnt2d,Precision::PConfusion())
+                  != TopAbs_OUT)
+              {
                InsideRestriction = Standard_True;
                state = TopAbs_IN;
                Level++;