Salome HOME
Fit All after was added stream selection and displaying in embedded viewer.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Shape.h
index c5b3b41ffe9f4b9d242505dd85daea71f9cf02d0..397096cd2e13e9954ebbe2036552ace9c2ba459d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // 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.
+// 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
 #ifndef HYDROGUI_SHAPE_H
 #define HYDROGUI_SHAPE_H
 
-#include <AIS_InteractiveContext.hxx>
-#include <AIS_InteractiveObject.hxx>
-#include <Aspect_ColorScale.hxx>
-#include <TColgp_HArray1OfPnt.hxx>
-#include <Quantity_HArray1OfColor.hxx>
-
 #include <HYDROData_Entity.h>
 
+#include <AIS_InteractiveContext.hxx>
+#include <TopoDS_Shape.hxx>
+
 #include <QColor>
-#include <QImage>
 
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
-#include <TopoDS_Compound.hxx>
+class TopoDS_Compound;
+class TopoDS_Face;
+class TopoDS_Wire;
 
 class HYDROGUI_Shape
 {
@@ -44,7 +40,7 @@ public:
   HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext,
                   const Handle(HYDROData_Entity)&       theObject,
                   const int                             theZLayer = -1 );
-  ~HYDROGUI_Shape();
+  virtual ~HYDROGUI_Shape();
 
 public:
   virtual void               display( const bool theIsUpdateViewer = true );
@@ -53,14 +49,17 @@ public:
   virtual void               highlight( bool theIsHighlight, bool isUpdateViewer );
   virtual bool               isHighlighted() const;
 
-  Handle(HYDROData_Entity)   getObject() const { return myObject; }
+  Handle(AIS_InteractiveContext) getContext() const;
+  Handle(HYDROData_Entity)   getObject() const;
+  TopoDS_Shape               getTopoShape() const;
 
-  virtual void               update( const bool theIsUpdateViewer = true );
+  virtual void               update( bool isUpdateViewer,
+                                     bool isDeactivateSelection );
 
-  virtual bool               getIsToUpdate() const { return myIsToUpdate; }
-  virtual void               setIsToUpdate( bool theState ) { myIsToUpdate = theState; }
+  virtual bool               getIsToUpdate() const;
+  virtual void               setIsToUpdate( bool theState );
 
-  virtual bool               isVisible() const { return myIsVisible; }
+  virtual bool               isVisible() const;
   virtual void               setVisible( const bool theState,
                                          const bool theIsUpdateViewer = true );
 
@@ -73,12 +72,14 @@ public:
                                        const bool             theIsUpdateViewer = true );
 
   virtual void               setFace( const TopoDS_Wire& theWire,
-                                      const bool         theToDisplay = true,
-                                      const bool         theIsUpdateViewer = true );
+                                      const bool         theToDisplay,
+                                      const bool         theIsUpdateViewer,
+                                      const QString&     theTextureFileName );
 
   virtual void               setFace( const TopoDS_Face& theFace,
-                                      const bool         theToDisplay = true,
-                                      const bool         theIsUpdateViewer = true );
+                                      const bool         theToDisplay,
+                                      const bool         theIsUpdateViewer,
+                                      const QString&     theTextureFileName );
 
   virtual void               setShape( const TopoDS_Shape& theShape,
                                        const bool          theToDisplay = true,
@@ -97,35 +98,23 @@ public:
   virtual void               setHighlightColor( const QColor& theColor );
   virtual QColor             getHighlightColor() const;
 
-  virtual void               setTextureFileName( const QString& theFileName,
-                                                 const bool     theToDisplay = true,
-                                                 const bool     theIsUpdateViewer = true );
-  virtual QString            getTextureFileName() const;
-
-  virtual Handle(AIS_InteractiveObject)  getAISObject() const { return myShape; }
+  virtual Handle(AIS_InteractiveObject)  getAISObject() const;
 
   void                       setZLayer( const int theZLayer );
 
-  void GetRange( double& theMin, double& theMax ) const;
-  void UpdateWithColorScale( const Handle(Aspect_ColorScale)& );
-
 protected:
   virtual void               buildShape();
   virtual void               updateShape( const bool theToDisplay      = true,
                                           const bool theIsUpdateViewer = true );
-  void                       displayShape( const bool theIsUpdateViewer );
+  virtual void               displayShape( const bool theIsUpdateViewer );
 
   virtual QColor             getActiveColor() const;
+  virtual Handle_AIS_InteractiveObject createShape() const;
 
 private:
   static double              getQuantityColorVal( const int theColorVal );
   void                       colorShapeBorder( const QColor& theColor );
 
-  static QString             generateTextureFileName( const Handle(HYDROData_Entity)& theImageObj );
-  void                       removeTextureFile() const;
-
-  static QImage              reduceTexture( const QImage& theImage, const int theSizeLimit );
-
 private:
   Handle(AIS_InteractiveContext) myContext;
   Handle(HYDROData_Entity)       myObject;
@@ -143,11 +132,6 @@ private:
   QColor                         myFillingColor;
   QColor                         myBorderColor;
   QColor                         myHighlightColor;
-
-  QString                        myTextureFileName;
-
-  Handle_TColgp_HArray1OfPnt     myCoords;
-  Handle_Quantity_HArray1OfColor myColors;
 };
 
 #endif