0026148: BRep_Tool::IsClosed failed to judge a closed edge on Poly_Triangulation.
authormsv <msv@opencascade.com>
Thu, 30 Apr 2015 09:37:07 +0000 (12:37 +0300)
committerbugmaster <bugmaster@opencascade.com>
Wed, 6 May 2015 14:14:45 +0000 (17:14 +0300)
The method signature has been changed by adding an argument TopLoc_Location.

src/BRep/BRep_Tool.cdl
src/BRep/BRep_Tool.cxx

index 0db0bb0..c81e737 100644 (file)
@@ -366,7 +366,8 @@ is
     -----------------------------------------------------------
     
     IsClosed(myclass; E : Edge          from TopoDS; 
-                     T : Triangulation from Poly)
+                     T : Triangulation from Poly;
+                     L : Location from TopLoc)
     returns Boolean
     
        ---Purpose: Returns  True  if <E> has two arrays of indices in
index 800f1df..06dc8ea 100644 (file)
@@ -706,7 +706,8 @@ Standard_Boolean BRep_Tool::IsClosed(const TopoDS_Edge& E,
   TopLoc_Location l;
   const Handle(Geom_Surface)& S = BRep_Tool::Surface(F,l);
   if (IsClosed(E,S,l)) return Standard_True;
-  return IsClosed(E, BRep_Tool::Triangulation(F,l));
+  const Handle(Poly_Triangulation)& T = BRep_Tool::Triangulation(F,l);
+  return IsClosed(E, T, l);
 }
 
 //=======================================================================
@@ -749,9 +750,10 @@ Standard_Boolean BRep_Tool::IsClosed(const TopoDS_Edge& E,
 //=======================================================================
 
 Standard_Boolean BRep_Tool::IsClosed(const TopoDS_Edge&                E, 
-                                     const Handle(Poly_Triangulation)& T)
+                                     const Handle(Poly_Triangulation)& T,
+                                     const TopLoc_Location& L)
 {
-  TopLoc_Location      l = E.Location();
+  TopLoc_Location l = L.Predivided(E.Location());
 
   // find the representation
   BRep_ListIteratorOfListOfCurveRepresentation itcr