diff --git a/src/BRep/BRep_Tool.cdl b/src/BRep/BRep_Tool.cdl index 0db0bb0c3d..c81e737b8a 100644 --- a/src/BRep/BRep_Tool.cdl +++ b/src/BRep/BRep_Tool.cdl @@ -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 has two arrays of indices in diff --git a/src/BRep/BRep_Tool.cxx b/src/BRep/BRep_Tool.cxx index 800f1df403..06dc8ea50e 100644 --- a/src/BRep/BRep_Tool.cxx +++ b/src/BRep/BRep_Tool.cxx @@ -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