X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.h;h=0acd1a4509b6b67e56b15b7201c8e5fc80a468c6;hb=a53349567d67f4df0ef737798a25c24d9dc8f08e;hp=3adfec17df49b01a888de7a93587132c78d68461;hpb=b8e7b28e3b3df4b29bab7b8ecdbafa8b0a138ddc;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.h b/src/HYDROGUI/HYDROGUI_Shape.h index 3adfec17..0acd1a45 100644 --- a/src/HYDROGUI/HYDROGUI_Shape.h +++ b/src/HYDROGUI/HYDROGUI_Shape.h @@ -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 @@ -23,73 +19,114 @@ #ifndef HYDROGUI_SHAPE_H #define HYDROGUI_SHAPE_H +#include + #include -#include +#include #include -#include -class BRepBuilderAPI_MakeFace; -class BRepBuilderAPI_MakeWire; -class gp_Pnt; +class TopoDS_Compound; +class TopoDS_Face; +class TopoDS_Wire; class HYDROGUI_Shape { public: - HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext ); - ~HYDROGUI_Shape(); + HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext, + const Handle(HYDROData_Entity)& theObject, + const int theZLayer = -1 ); + virtual ~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 void highlight( bool theIsHighlight, bool isUpdateViewer ); virtual bool isHighlighted() const; - virtual void setPath( const QPainterPath& thePath, - const bool theToDisplay = true ); - virtual QPainterPath getPath() const; + Handle(AIS_InteractiveContext) getContext() const; + Handle(HYDROData_Entity) getObject() const; + TopoDS_Shape getTopoShape() const; + + virtual void update( bool isUpdateViewer, + bool isDeactivateSelection ); + + virtual bool getIsToUpdate() const; + virtual void setIsToUpdate( bool theState ); + + virtual bool isVisible() const; + 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 setFaces( const TopoDS_Compound& theWires, + const bool theToDisplay = true, + const bool theIsUpdateViewer = true ); + + virtual void setFace( const TopoDS_Wire& theWire, + const bool theToDisplay, + const bool theIsUpdateViewer, + const QString& theTextureFileName ); - virtual void setZIndex( const double theZIndex, - const bool theToDisplay = true ); - virtual double getZIndex() const; + virtual void setFace( const TopoDS_Face& theFace, + const bool theToDisplay, + const bool theIsUpdateViewer, + const QString& theTextureFileName ); + + virtual void setShape( const TopoDS_Shape& theShape, + 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 Handle(AIS_InteractiveObject) getAISObject() const; + + void setZLayer( const int theZLayer ); + protected: virtual void buildShape(); - virtual void updateShape( const bool theIsForce = true ); + virtual void updateShape( const bool theToDisplay = true, + const bool theIsUpdateViewer = true ); + virtual void displayShape( const bool theIsUpdateViewer ); + virtual QColor getActiveColor() const; + virtual Handle_AIS_InteractiveObject createShape() const; + + void setDisplayMode( int theDisplayMode ); private: static double getQuantityColorVal( const int theColorVal ); void colorShapeBorder( const QColor& theColor ); - void makeEdge( BRepBuilderAPI_MakeWire& theWireBuilder, - gp_Pnt& theFirstPoint, - gp_Pnt& theLastPoint ) const; - - void makeWire( BRepBuilderAPI_MakeFace& theFaceBuilder, - BRepBuilderAPI_MakeWire& theWireBuilder, - bool& theIsComposed ) const; - private: Handle(AIS_InteractiveContext) myContext; - Handle(AIS_Shape) myShape; + Handle(HYDROData_Entity) myObject; + Handle(AIS_InteractiveObject) myShape; + + int myZLayer; + + bool myIsToUpdate; + bool myIsVisible; bool myIsHighlight; - QPainterPath myPath; + TopoDS_Shape myTopoShape; + int myDisplayMode; - double myZIndex; QColor myFillingColor; QColor myBorderColor; QColor myHighlightColor;