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 );
48 static bool SplitTwoData( const SplitData& theData1,
49 const SplitData& theData2,
50 SplitData& theData1Subtracted,
51 SplitData& theData2Subtracted,
52 SplitData& theDataIntersected );
54 static SplitDataList ExtractSeparateData( const SplitData& theData );