From ff0a70a157756a48661373bcb86cb6232644f162 Mon Sep 17 00:00:00 2001 From: msv Date: Thu, 30 Apr 2015 12:37:07 +0300 Subject: [PATCH] 0026148: BRep_Tool::IsClosed failed to judge a closed edge on Poly_Triangulation. The method signature has been changed by adding an argument TopLoc_Location. --- src/BRep/BRep_Tool.cdl | 3 ++- src/BRep/BRep_Tool.cxx | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) 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 -- 2.20.1