2 #ifndef HYDROData_SplitToZonesTool_H
3 #define HYDROData_SplitToZonesTool_H
5 #include <HYDROData_Object.h>
7 #include <TopoDS_Face.hxx>
11 class Handle(HYDROData_Polyline);
14 * \class HYDROData_SplitToZonesTool
15 * \brief This class contains methods used for splitting geometry objects
16 * into non-intersected regions.
18 class HYDRODATA_EXPORT HYDROData_SplitToZonesTool
21 struct HYDRODATA_EXPORT SplitData
24 QStringList ObjectNames;
28 SplitData( const TopoDS_Shape& theShape,
29 const QStringList& theObjectNames ) :
30 Shape( theShape ), ObjectNames( theObjectNames ) {}
32 SplitData( const TopoDS_Shape& theShape,
33 const QString& theObjectNames ) :
34 Shape( theShape ), ObjectNames( theObjectNames ) {}
36 TopoDS_Face Face() const;
39 typedef QList <SplitData> SplitDataList;
40 typedef QListIterator<SplitData> SplitDataListIterator;
44 static SplitDataList SplitToZones( const HYDROData_SequenceOfObjects& theObjectList,
45 const Handle(HYDROData_Polyline)& thePolyline );
49 static bool SplitTwoData( const SplitData& theData1,
50 const SplitData& theData2,
51 SplitData& theData1Subtracted,
52 SplitData& theData2Subtracted,
53 SplitData& theDataIntersected );
55 static SplitDataList ExtractSeparateData( const SplitData& theData );