#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>
+#include <NCollection_IndexedDataMap.hxx>
+#include <Quantity_Color.hxx>
+#include <TopTools_ShapeMapHasher.hxx>
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 );
+
+ NCollection_IndexedDataMap<TopoDS_Shape, Quantity_Color, TopTools_ShapeMapHasher> myShapeToColor;
+
+ bool GetColorOfSubShape(const TopoDS_Shape& SubShape, Quantity_Color& outColor);
+
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, 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