X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FHYDROData%2FHYDROData_SplitToZonesTool.h;h=367b22cdcf10512743edbd57c142d6eb3ba11475;hb=0f4c16e80e5c9160fb6e240e3f09b151701a1e5b;hp=c80f66fe3ef6480c26c13c089214d6305d35d70d;hpb=b578011fe730e320bdd1c4a43a708dfd6365a728;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_SplitToZonesTool.h b/src/HYDROData/HYDROData_SplitToZonesTool.h index c80f66fe..367b22cd 100644 --- a/src/HYDROData/HYDROData_SplitToZonesTool.h +++ b/src/HYDROData/HYDROData_SplitToZonesTool.h @@ -1,17 +1,40 @@ +// Copyright (C) 2014-2015 EDF-R&D +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef HYDROData_SplitToZonesTool_H #define HYDROData_SplitToZonesTool_H +#ifdef WIN32 + #pragma warning ( disable: 4251 ) +#endif + #include #include #include #include #include #include -#include -#include +#include +#include +#include #include #include +#include class Handle(HYDROData_PolylineXY); @@ -29,7 +52,8 @@ public: { Data_None, Data_Zone, - Data_Edge + Data_Edge, + Data_IntEdge }; TopoDS_Shape Shape; @@ -54,11 +78,11 @@ public: typedef QList SplitDataList; typedef QListIterator SplitDataListIterator; - typedef NCollection_Map HYDROData_MapOfShape; + typedef NCollection_IndexedMap HYDROData_MapOfShape; typedef HYDROData_MapOfShape::Iterator HYDROData_MapIteratorOfMapOfShape; - typedef NCollection_DataMap HYDROData_DataMapOfShapeListOfShape; + typedef NCollection_IndexedDataMap HYDROData_DataMapOfShapeListOfShape; typedef HYDROData_DataMapOfShapeListOfShape::Iterator HYDROData_DataMapIteratorOfDataMapOfShapeListOfShape; - typedef NCollection_DataMap HYDROData_DataMapOfShapeListOfString; + typedef NCollection_IndexedDataMap HYDROData_DataMapOfShapeListOfString; typedef HYDROData_DataMapOfShapeListOfString::Iterator HYDROData_DataMapIteratorOfDataMapOfShapeListOfString; #undef _NCollection_MapHasher @@ -66,7 +90,25 @@ public: static SplitDataList Split( const HYDROData_SequenceOfObjects& theObjectList, const HYDROData_SequenceOfObjects& theGroupsList, - const Handle(HYDROData_PolylineXY)& thePolyline ); + const Handle(HYDROData_PolylineXY)& thePolyline, + const HYDROData_SequenceOfObjects& InterPolys ); + + static SplitDataList Split( const HYDROData_SequenceOfObjects& theObjectList ); + + static void AddInternalEdges(HYDROData_DataMapOfShapeListOfShape& DM, + const HYDROData_SequenceOfObjects& thePolylines, + NCollection_DataMap* OutNE); + + static void CutFaceByEdges(const TopoDS_Face& in, + TopTools_ListOfShape& out, + const HYDROData_SequenceOfObjects& thePolylines, + NCollection_DataMap* OutNE, + TopTools_IndexedDataMapOfShapeListOfShape* OutOrSh2M); + + static int CutByEdges(const TopoDS_Shape& InSh, const TopTools_ListOfShape& InW, + TopTools_ListOfShape& outShs, + TopTools_IndexedDataMapOfShapeShape* OutNE2OE, + TopTools_IndexedDataMapOfShapeListOfShape* OInSH2MSH); static void SetFileNames(const QString& theNameBefore, const QString& theNameAfter); @@ -78,4 +120,9 @@ private: static Standard_Integer SplitFaces(const TopoDS_Compound& theComp, HYDROData_Transform& theTool); }; +#ifdef WIN32 + #pragma warning ( default: 4251 ) +#endif + + #endif