From 4bb3a00b500407823acf36c46d868ef0e5ae3a1c Mon Sep 17 00:00:00 2001 From: isn Date: Thu, 26 Nov 2015 14:54:21 +0300 Subject: [PATCH] refs #745 --- src/HYDROData/HYDROData_ShapeFile.cxx | 34 ++++++++++++++---- .../reference_data/LandCoverMap_Merge_2.png | Bin 6977 -> 7074 bytes 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/HYDROData/HYDROData_ShapeFile.cxx b/src/HYDROData/HYDROData_ShapeFile.cxx index 51ca1b02..5f48cb2a 100644 --- a/src/HYDROData/HYDROData_ShapeFile.cxx +++ b/src/HYDROData/HYDROData_ShapeFile.cxx @@ -376,6 +376,8 @@ void HYDROData_ShapeFile::ReadSHPPolygon(SHPObject* anObj, int i, TopoDS_Face& F BRep_Builder BB; BB.MakeFace(F); + NCollection_Sequence > allEdges; + TopTools_SequenceOfShape aWires; for ( int i = 0 ; i < nParts ; i++ ) { @@ -386,9 +388,8 @@ void HYDROData_ShapeFile::ReadSHPPolygon(SHPObject* anObj, int i, TopoDS_Face& F EndIndex = anObj->panPartStart[i + 1]; else EndIndex = anObj->nVertices; - - TopoDS_Wire W; - BB.MakeWire(W); + + NCollection_Sequence EPerW; //First point is same as the last point int NbPnts = EndIndex - StartIndex - 1; @@ -416,11 +417,32 @@ void HYDROData_ShapeFile::ReadSHPPolygon(SHPObject* anObj, int i, TopoDS_Face& F E = BRepLib_MakeEdge(aTC, VPoints.First(), VPoints.Value(VPoints.Upper() - 1)).Edge(); //Add edge to wire //If SHP file is correct then the outer wire and the holes will have the correct orientations - BB.Add(W, E); + + EPerW.Append(E); } - //Wire must be closed anyway - W.Closed (BRep_Tool::IsClosed (W)); + allEdges.Append(EPerW); + } + + for (int i = 1; i <= allEdges.Size(); i++) + { + TopoDS_Wire W; + BB.MakeWire(W); + for (int j = 1; j <= allEdges(i).Size(); j++) + BB.Add(W, allEdges(i)(j)); + W.Closed (Standard_True); W.Orientation(TopAbs_FORWARD); + //check on the dummy face first + TopoDS_Face DF; + BB.MakeFace(DF); + BB.Add(DF, W); + BB.UpdateFace(DF, aPlaneSur, TopLoc_Location(), Precision::Confusion()); + // + BRepTopAdaptor_FClass2d FClass(DF, Precision::PConfusion()); + if ( i == 1 && FClass.PerformInfinitePoint() != TopAbs_OUT) + W.Reverse(); + if ( i > 1 && FClass.PerformInfinitePoint() != TopAbs_IN) + W.Reverse(); + // BB.Add(F, W); } diff --git a/src/HYDRO_tests/reference_data/LandCoverMap_Merge_2.png b/src/HYDRO_tests/reference_data/LandCoverMap_Merge_2.png index e4ff0803fc0b794bfba5c86aec62ba5e720c4301..4f6daf9ad7e2fa1d77e732dc604d2a3f6ad46353 100644 GIT binary patch literal 7074 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 L@r~q^I9&EW5kxL? literal 6977 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 -- 2.39.2