Salome HOME
refs #1327: implementation of the scaling operations
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_BathymetryPrs.h
index 5ea3fd242a264ec311161caab0915ee05454b02d..1f5e0df124cc49f1ea20e80e74f99a203f9d46ed 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
 #define HYDROGUI_BATHYMETRY_PRS_H
 
 #include <AIS_PointCloud.hxx>
+#include <SelectMgr_EntityOwner.hxx>
 #include <Bnd_Box.hxx>
+#include <QList>
+
+class HYDROGUI_ShapeBathymetry;
 
 class HYDROGUI_BathymetryPrs : public AIS_PointCloud
 {
 public:
-  HYDROGUI_BathymetryPrs();
+  HYDROGUI_BathymetryPrs( const HYDROGUI_ShapeBathymetry* );
   virtual ~HYDROGUI_BathymetryPrs();
 
   virtual void SetPoints( const Handle(TColgp_HArray1OfPnt)&     theCoords,
                           const Handle(Quantity_HArray1OfColor)& theColors = NULL );
 
+  int NbPoints() const;
+  gp_Pnt GetPoint( int theIndex ) const;
+
+  virtual void HilightOwnerWithColor( const Handle(PrsMgr_PresentationManager3d)& thePM,
+                                      const Handle(Graphic3d_HighlightStyle)& theColor,
+                                      const Handle(SelectMgr_EntityOwner)& theOwner );
+
+  virtual void HilightSelected( const Handle(PrsMgr_PresentationManager3d)& thePM,
+                                const SelectMgr_SequenceOfOwner& theOwners );
+
+  virtual void ClearSelected();
+
+  void SetTextLabels( const QList<int>& );
+
+  HYDROGUI_ShapeBathymetry* GetShape() const;
+
 protected:
   virtual void Compute( const Handle(PrsMgr_PresentationManager3d)& thePresentationManager,
                         const Handle(Prs3d_Presentation)& thePresentation,
@@ -42,9 +58,26 @@ protected:
   virtual void ComputeSelection( const Handle(SelectMgr_Selection)& theSelection,
                                  const Standard_Integer theMode );
 
+  void UpdateBound();
+  void AddPoint( const Handle(Graphic3d_ArrayOfPoints)&, const Handle(SelectMgr_EntityOwner)& );
+
 private:
+  const HYDROGUI_ShapeBathymetry* myShape;
   Bnd_Box myBound;
+  QList<int> myTextIndices;
 };
 
-#endif
+class HYDROGUI_BathymetryPointOwner : public SelectMgr_EntityOwner
+{
+public:
+  HYDROGUI_BathymetryPointOwner( const Handle(HYDROGUI_BathymetryPrs)&, int theIndex );
+  virtual ~HYDROGUI_BathymetryPointOwner();
+
+  virtual Standard_Boolean IsAutoHilight() const;
+  int GetIndex() const;
 
+private:
+  int myIndex;
+};
+
+#endif