From 0d956a814a472c8f97a15861516f116d30dc0dde Mon Sep 17 00:00:00 2001 From: isn Date: Wed, 14 Dec 2016 17:41:08 +0300 Subject: [PATCH] refs #1094 p.2 --- src/HYDROData/HYDROData_DTM.cxx | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/HYDROData/HYDROData_DTM.cxx b/src/HYDROData/HYDROData_DTM.cxx index 9393ac04..2c96221d 100644 --- a/src/HYDROData/HYDROData_DTM.cxx +++ b/src/HYDROData/HYDROData_DTM.cxx @@ -52,6 +52,8 @@ #include #include #include +#include +#include #include #include #include @@ -315,19 +317,20 @@ bool HYDROData_DTM::GetPlanarFaceFromBanks( const TopoDS_Edge& LB, const TopoDS_ BRep_Builder BB; TopoDS_Face F; Handle_Geom_Plane refpl = new Geom_Plane(gp_Pnt(0,0,0), gp_Dir(0,0,1)); - BB.MakeFace(F, refpl, Precision::Confusion()); - BRepAlgo_NormalProjection nproj(F); - nproj.Add(LB); - nproj.Add(RB); - nproj.SetDefaultParams(); - nproj.Build(); - if(!nproj.IsDone()) - return false; - //TopoDS_Shape projBanks = nproj.Projection(); TopoDS_Vertex VFI, VLI, VFO, VLO; - TopoDS_Edge prLB = TopoDS::Edge(nproj.Generated(LB).First()); - TopoDS_Edge prRB = TopoDS::Edge(nproj.Generated(RB).First()); + TopoDS_Edge prLB; + TopoDS_Edge prRB; + + + BRepAdaptor_Curve LBAD(LB); + Handle_Geom_Curve LBPC = GeomProjLib::ProjectOnPlane(LBAD.Curve().Curve(), refpl, gp_Dir(0, 0, -1), 1 ); + prLB = BRepLib_MakeEdge(LBPC).Edge(); + + BRepAdaptor_Curve RBAD(RB); + Handle_Geom_Curve RBPC = GeomProjLib::ProjectOnPlane(RBAD.Curve().Curve(), refpl, gp_Dir(0, 0, -1), 1 ); + prRB = BRepLib_MakeEdge(RBPC).Edge(); + TopExp::Vertices(prLB, VFI, VFO, 1); TopExp::Vertices(prRB, VLI, VLO, 1); TopoDS_Edge prIL = BRepLib_MakeEdge(VFI, VLI).Edge(); -- 2.39.2