Salome HOME
lot 10 - warnings for DTM - untested
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Polyline.h
index 130dc8791408562bc5206de720a65e8bfc0f6c5a..be993fe63c9c2b4e6150b8a0a157df4801397312 100644 (file)
@@ -21,6 +21,9 @@
 
 #include <AIS_Shape.hxx>
 #include <QList>
+#include <NCollection_IndexedDataMap.hxx>
+#include <Quantity_Color.hxx>
+#include <TopTools_ShapeMapHasher.hxx>
 
 class TopoDS_Shape;
 class TopoDS_Edge;
@@ -35,24 +38,48 @@ public:
                                       const Handle(Prs3d_Presentation)& aPresentation,
                                       const Standard_Integer aMode = 0);
   
-  static QList<Handle(AIS_InteractiveObject)> createPresentations( const TopoDS_Shape& shape );
+  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 );
+
+  NCollection_IndexedDataMap<TopoDS_Shape, Quantity_Color, TopTools_ShapeMapHasher> myShapeToColor;
+
+  bool GetColorOfSubShape(const TopoDS_Shape& SubShape, Quantity_Color& outColor);
 
 public:
   DEFINE_STANDARD_RTTIEXT(HYDROGUI_Polyline, AIS_Shape);
+
 };
 
 class HYDROGUI_Arrow : public AIS_Shape
 {
 public:
-  HYDROGUI_Arrow( const TopoDS_Edge& edge );
+  enum Type { None, Triangle, Cone };
+
+  HYDROGUI_Arrow( const TopoDS_Edge& edge, const Handle(HYDROGUI_Polyline)& polyline );
   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 );
+
+  const Handle(HYDROGUI_Polyline)& getParentPolyline() const;
+
 public:
   DEFINE_STANDARD_RTTIEXT(HYDROGUI_Arrow, AIS_Shape);
+
+private:
+  Type myType;
+  int  mySize;
+  Handle(HYDROGUI_Polyline) myParentPoly;
 };
 
 #endif