X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.h;h=007c3e52d20cecdbae30b027f805739d99686b51;hb=5cae7e874afd2fc1b6f61023e8ebd33a933db3c7;hp=3adfec17df49b01a888de7a93587132c78d68461;hpb=b8e7b28e3b3df4b29bab7b8ecdbafa8b0a138ddc;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.h b/src/HYDROGUI/HYDROGUI_Shape.h index 3adfec17..007c3e52 100644 --- a/src/HYDROGUI/HYDROGUI_Shape.h +++ b/src/HYDROGUI/HYDROGUI_Shape.h @@ -24,75 +24,103 @@ #define HYDROGUI_SHAPE_H #include -#include +#include + +#include #include -#include +#include -class BRepBuilderAPI_MakeFace; -class BRepBuilderAPI_MakeWire; -class gp_Pnt; +#include +#include class HYDROGUI_Shape { public: - HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext ); + HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext, + const Handle(HYDROData_Entity)& theObject ); ~HYDROGUI_Shape(); public: - virtual void display(); - virtual void erase(); + virtual void display( const bool theIsUpdateViewer = true ); + virtual void erase( const bool theIsUpdateViewer = true ); virtual void highlight( bool theIsHighlight ); virtual bool isHighlighted() const; - virtual void setPath( const QPainterPath& thePath, - const bool theToDisplay = true ); - virtual QPainterPath getPath() const; + Handle(HYDROData_Entity) getObject() const { return myObject; } + + virtual void update( const bool theIsUpdateViewer = true ); + + virtual bool getIsToUpdate() const { return myIsToUpdate; } + virtual void setIsToUpdate( bool theState ) { myIsToUpdate = theState; } + + virtual bool isVisible() const { return myIsVisible; } + virtual void setVisible( const bool theState, + const bool theIsUpdateViewer = true ); + + virtual void setWire( const TopoDS_Wire& theWire, + const bool theToDisplay = true, + const bool theIsUpdateViewer = true ); - virtual void setZIndex( const double theZIndex, - const bool theToDisplay = true ); - virtual double getZIndex() const; + virtual void setFace( const TopoDS_Wire& theWire, + const bool theToDisplay = true, + const bool theIsUpdateViewer = true ); + + virtual void setFace( const TopoDS_Face& theFace, + 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 void setTextureFileName( const QString& theFileName, + const bool theToDisplay = true, + const bool theIsUpdateViewer = true ); + virtual QString getTextureFileName() const; + protected: virtual void buildShape(); - virtual void updateShape( const bool theIsForce = true ); + virtual void updateShape( const bool theToDisplay = true, + const bool theIsUpdateViewer = true ); virtual QColor getActiveColor() const; private: static double getQuantityColorVal( const int theColorVal ); void colorShapeBorder( const QColor& theColor ); - void makeEdge( BRepBuilderAPI_MakeWire& theWireBuilder, - gp_Pnt& theFirstPoint, - gp_Pnt& theLastPoint ) const; + static QString generateTextureFileName( const Handle(HYDROData_Entity)& theImageObj ); + void removeTextureFile() const; - void makeWire( BRepBuilderAPI_MakeFace& theFaceBuilder, - BRepBuilderAPI_MakeWire& theWireBuilder, - bool& theIsComposed ) const; + static QImage reduceTexture( const QImage& theImage, const int theSizeLimit ); private: Handle(AIS_InteractiveContext) myContext; - Handle(AIS_Shape) myShape; + Handle(HYDROData_Entity) myObject; + Handle(AIS_TexturedShape) myShape; + + bool myIsToUpdate; + bool myIsVisible; bool myIsHighlight; - QPainterPath myPath; + TopoDS_Shape myTopoShape; + int myDisplayMode; - double myZIndex; QColor myFillingColor; QColor myBorderColor; QColor myHighlightColor; + + QString myTextureFileName; }; #endif