Salome HOME
Merge remote-tracking branch 'origin/BR_SHP_FORMAT2' into BR_LAND_COVER_MAP
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Shape.h
index 885e23d04896953cc44768e7e6ec6527c9694b17..0acd1a4509b6b67e56b15b7201c8e5fc80a468c6 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  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
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // 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_Shape.hxx>
+#include <HYDROData_Entity.h>
 
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
+#include <AIS_InteractiveContext.hxx>
+#include <TopoDS_Shape.hxx>
 
 #include <QColor>
 
-class BRepBuilderAPI_MakeFace;
-class BRepBuilderAPI_MakeWire;
-class gp_Pnt;
+class TopoDS_Compound;
+class TopoDS_Face;
+class TopoDS_Wire;
 
 class HYDROGUI_Shape
 {
 public:
-  HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext );
-  ~HYDROGUI_Shape();
+  HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext,
+                  const Handle(HYDROData_Entity)&       theObject,
+                  const int                             theZLayer = -1 );
+  virtual ~HYDROGUI_Shape();
 
 public:
   virtual void               display( const bool theIsUpdateViewer = true );
   virtual void               erase( const bool theIsUpdateViewer = true );
 
-  virtual void               highlight( bool theIsHighlight );
+  virtual void               highlight( bool theIsHighlight, bool isUpdateViewer );
   virtual bool               isHighlighted() const;
 
+  Handle(AIS_InteractiveContext) getContext() const;
+  Handle(HYDROData_Entity)   getObject() const;
+  TopoDS_Shape               getTopoShape() const;
+
+  virtual void               update( bool isUpdateViewer,
+                                     bool isDeactivateSelection );
+
+  virtual bool               getIsToUpdate() const;
+  virtual void               setIsToUpdate( bool theState );
+
+  virtual bool               isVisible() const;
+  virtual void               setVisible( const bool theState,
+                                         const bool theIsUpdateViewer = true );
+
   virtual void               setWire( const TopoDS_Wire& theWire,
-                                      const bool         theToDisplay = true );
+                                      const bool         theToDisplay = true,
+                                      const bool         theIsUpdateViewer = true );
+
+  virtual void               setFaces( const TopoDS_Compound& theWires,
+                                       const bool             theToDisplay = true,
+                                       const bool             theIsUpdateViewer = true );
+
+  virtual void               setFace( const TopoDS_Wire& theWire,
+                                      const bool         theToDisplay,
+                                      const bool         theIsUpdateViewer,
+                                      const QString&     theTextureFileName );
 
   virtual void               setFace( const TopoDS_Face& theFace,
-                                      const bool         theToDisplay = true );
+                                      const bool         theToDisplay,
+                                      const bool         theIsUpdateViewer,
+                                      const QString&     theTextureFileName );
+
+  virtual void               setShape( const TopoDS_Shape& theShape,
+                                       const bool          theToDisplay = true,
+                                       const bool          theIsUpdateViewer = true );
 
   virtual void               setFillingColor( const QColor& theColor,
-                                              const bool    theToDisplay = true );
+                                              const bool    theToDisplay = true,
+                                              const bool    theIsUpdateViewer = true );
   virtual QColor             getFillingColor() const;
 
   virtual void               setBorderColor( const QColor& theColor,
-                                             const bool    theToDisplay = true );
+                                             const bool    theToDisplay = true,
+                                             const bool    theIsUpdateViewer = true );
   virtual QColor             getBorderColor() const;
 
   virtual void               setHighlightColor( const QColor& theColor );
   virtual QColor             getHighlightColor() const;
 
+  virtual Handle(AIS_InteractiveObject)  getAISObject() const;
+
+  void                       setZLayer( const int theZLayer );
+
 protected:
   virtual void               buildShape();
-  virtual void               updateShape( const bool theIsForce = true );
+  virtual void               updateShape( const bool theToDisplay      = true,
+                                          const bool theIsUpdateViewer = true );
+  virtual void               displayShape( const bool theIsUpdateViewer );
+
   virtual QColor             getActiveColor() const;
+  virtual Handle_AIS_InteractiveObject createShape() const;
+
+  void setDisplayMode( int theDisplayMode );
 
 private:
   static double              getQuantityColorVal( const int theColorVal );
@@ -76,10 +115,17 @@ private:
 
 private:
   Handle(AIS_InteractiveContext) myContext;
-  Handle(AIS_Shape)              myShape;
+  Handle(HYDROData_Entity)       myObject;
+  Handle(AIS_InteractiveObject)  myShape;
+
+  int                            myZLayer;
+
+  bool                           myIsToUpdate;
+  bool                           myIsVisible;
 
   bool                           myIsHighlight;
-  TopoDS_Face                    myFace;
+  TopoDS_Shape                   myTopoShape;
+  int                            myDisplayMode;
   
   QColor                         myFillingColor;
   QColor                         myBorderColor;