Salome HOME
refs #1508
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Polyline.h
index 45e79dba8d0cc240ba88ed287a34021e9a14f8d5..06f2ec44b88072882f1f53fa736c8cdab7c00355 100644 (file)
 #define _HYDROGUI_Polyline_HeaderFile
 
 #include <AIS_Shape.hxx>
-#include <AIS_InteractiveObject.hxx>
-
-#include <Standard.hxx>
-#include <Standard_DefineHandle.hxx>
-#include <PrsMgr_PresentationManager.hxx>
-#include <Handle_Prs3d_Presentation.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <AIS_DisplayMode.hxx>
+#include <QList>
 
 class TopoDS_Shape;
+class TopoDS_Edge;
 
 class HYDROGUI_Polyline : public AIS_Shape
 {
 public:
-  
-  Standard_EXPORT HYDROGUI_Polyline(const TopoDS_Shape& shape);
-  Standard_EXPORT ~HYDROGUI_Polyline();
+  HYDROGUI_Polyline( const TopoDS_Shape& shape );
+  virtual ~HYDROGUI_Polyline();
 
-  Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
+  virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
                                       const Handle(Prs3d_Presentation)& aPresentation,
                                       const Standard_Integer aMode = 0);
   
+  static QList<Handle(AIS_InteractiveObject)> createPresentations
+    ( const TopoDS_Shape& theShape, int theType, int theSize );
+  static void update( const QList<Handle(AIS_InteractiveObject)>&, int theType, int theSize );
+
 public:
-  DEFINE_STANDARD_RTTI(HYDROGUI_Polyline);
+  DEFINE_STANDARD_RTTIEXT(HYDROGUI_Polyline, AIS_Shape);
 };
 
-DEFINE_STANDARD_HANDLE(HYDROGUI_Polyline, AIS_Shape)
+class HYDROGUI_Arrow : public AIS_Shape
+{
+public:
+  enum Type { None, Triangle, Cone };
+
+  HYDROGUI_Arrow( const TopoDS_Edge& edge );
+  virtual ~HYDROGUI_Arrow();
+
+  virtual void Compute( const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
+                                               const Handle(Prs3d_Presentation)& aPresentation,
+                                               const Standard_Integer aMode = 0 );
+  
+  virtual void BoundingBox (Bnd_Box& theBndBox) override;
+
+  Type GetType() const;
+  void SetType( Type );
+
+  int  GetSize() const;
+  void SetSize( int );
+
+public:
+  DEFINE_STANDARD_RTTIEXT(HYDROGUI_Arrow, AIS_Shape);
+
+private:
+  Type myType;
+  int  mySize;
+};
 
 #endif