#include "HYDROGUI_Operation.h"
-#include <HYDROData_Calculation.h>
+#include "HYDROData_SplitToZonesTool.h"
+#include "HYDROGUI_Shape.h"
+
+#include <HYDROData_CalculationCase.h>
+#include <HYDROData_Region.h>
+
+class SUIT_ViewManager;
+class OCCViewer_ViewManager;
+class HYDROGUI_CalculationDlg;
+class SUIT_DataObject;
class HYDROGUI_CalculationOp : public HYDROGUI_Operation
{
Q_OBJECT
+ struct Region
+ {
+ QString RegionName;
+ QColor FillingColor;
+ QColor BorderColor;
+ HYDROData_SplitToZonesTool::SplitData SplitData;
+ HYDROGUI_Shape* Shape;
+ Handle(HYDROData_Region) DataRegion;
+
+ Region()
+ : Shape( NULL ),
+ FillingColor( Qt::green ),
+ BorderColor( Qt::transparent )
+ { }
+
+ ~Region()
+ {
+ if ( Shape )
+ {
+ delete Shape;
+ Shape = NULL;
+ }
+ }
+ };
+
+ typedef QList<Region> RegionsList;
+
public:
HYDROGUI_CalculationOp( HYDROGUI_Module* theModule, bool theIsEdit );
virtual ~HYDROGUI_CalculationOp();
virtual HYDROGUI_InputPanel* createInputPanel() const;
+ virtual void onApply();
virtual bool processApply( int& theUpdateFlags, QString& theErrorMsg );
+protected slots:
+ /**
+ * Add geometry objects selected in the module browser to the calculation case.
+ */
+ void onAddObjects();
+ /**
+ * Remove selected objects from the calculation case.
+ */
+ void onRemoveObjects();
+ /**
+ * Set the given bathymetry merge type to the current zone.
+ */
+ void onSetMergeType( int theMergeType, QString& theBathymetryName );
+ void onMoveZones( SUIT_DataObject* theRegionItem,
+ const QList<SUIT_DataObject*>& theZonesList );
+ void onCreateRegion( const QList<SUIT_DataObject*>& theZonesList );
+ void onSplitZones();
+ void onLastViewClosed( SUIT_ViewManager* );
+
+private:
+ void createPreview();
+ void closePreview();
+ void updateGeomObjectsList( HYDROGUI_CalculationDlg* thePanel ) const;
+
private:
bool myIsEdit;
- Handle(HYDROData_Calculation) myEditedObject;
+ Handle(HYDROData_CalculationCase) myEditedObject;
+
+ SUIT_ViewManager* myActiveViewManager;
+ OCCViewer_ViewManager* myPreviewViewManager;
+ RegionsList myRegionsList;
};
#endif