Salome HOME
Merge branch 'BR_1328' into BR_DEMO
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ShapeBathymetry.h
index 2521119560b8b6d27de2eb4677dfbbd5c1fa7d77..e505f8722db306575c1d435dd0959e26f048a284 100644 (file)
 #include <TColgp_HArray1OfPnt.hxx>
 #include <Quantity_HArray1OfColor.hxx>
 
-class Handle_HYDROData_Bathymetry;
-class Handle_Aspect_ColorScale;
+class HYDROData_Bathymetry;
+class AIS_ColorScale;
 class HYDROGUI_OCCDisplayer;
+class OCCViewer_ViewWindow;
 
 class HYDROGUI_ShapeBathymetry : public HYDROGUI_Shape
 {
 public:
   HYDROGUI_ShapeBathymetry( HYDROGUI_OCCDisplayer* theDisplayer,
                             const Handle(AIS_InteractiveContext)& theContext,
-                            const Handle_HYDROData_Bathymetry&    theBathymetry,
+                            const Handle(HYDROData_Bathymetry)&    theBathymetry,
                             const int                             theZLayer = -1 );
   virtual ~HYDROGUI_ShapeBathymetry();
 
   void GetRange( double& theMin, double& theMax ) const;
-  void UpdateWithColorScale( const Handle_Aspect_ColorScale& );
+  void UpdateWithColorScale( const Handle(AIS_ColorScale)& );
+
+  // Re-scale by visible points
+  void RescaleByVisible( OCCViewer_ViewWindow* );
+  // Re-scale by selected points
+  void RescaleBySelection();
+  // Custom (user) re-scale 
+  void Rescale( double theMin, double theMax );
+  // Default re-scale (by all points)
+  void RescaleDefault();
+
+  void TextLabels( bool isOn );
 
   virtual void display( const bool theIsUpdateViewer = true );
   virtual void erase( const bool theIsUpdateViewer = true );
@@ -47,14 +59,26 @@ public:
 
   virtual void               setVisible( const bool theState,
                                          const bool theIsUpdateViewer = true );
+
+  void Build();
+
 protected:
-  virtual Handle_AIS_InteractiveObject createShape() const;
+  virtual Handle(AIS_InteractiveObject) createShape() const;
   virtual void displayShape( const bool theIsUpdateViewer );
 
+  void setToUpdateColorScale( bool isChanged );
+  void Rescale( const QList<int>& theIndices, bool isForcedAll );
+
+  QList<int> selected() const;
+
 private:
   HYDROGUI_OCCDisplayer* myDisplayer;
-  Handle_TColgp_HArray1OfPnt     myCoords;
-  Handle_Quantity_HArray1OfColor myColors;
+  Handle(TColgp_HArray1OfPnt)     myCoords;
+  Handle(Quantity_HArray1OfColor) myColors;
+
+  double myMin;
+  double myMax;
+  bool myRangeInitialized;
 };
 
 #endif