-// 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
#ifndef HYDROGUI_SHAPE_H
#define HYDROGUI_SHAPE_H
-#include <AIS_InteractiveContext.hxx>
-#include <AIS_Shape.hxx>
-
#include <HYDROData_Entity.h>
+#include <AIS_InteractiveContext.hxx>
+#include <TopoDS_Shape.hxx>
+
#include <QColor>
-#include <QImage>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
+class TopoDS_Compound;
+class TopoDS_Face;
+class TopoDS_Wire;
class HYDROGUI_Shape
{
public:
HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext,
- const Handle(HYDROData_Entity)& theObject );
- ~HYDROGUI_Shape();
+ const Handle(HYDROData_Entity)& theObject,
+ const int theZLayer = -1 );
+ virtual ~HYDROGUI_Shape();
public:
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;
- Handle(HYDROData_Entity) getObject() const { return myObject; }
+ Handle(AIS_InteractiveContext) getContext() const;
+ Handle(HYDROData_Entity) getObject() const;
+ TopoDS_Shape getTopoShape() const;
- virtual void update( const bool theIsUpdateViewer = true );
+ virtual void update( bool isUpdateViewer,
+ bool isDeactivateSelection );
- virtual bool getIsToUpdate() const { return myIsToUpdate; }
- virtual void setIsToUpdate( bool theState ) { myIsToUpdate = theState; }
+ virtual bool getIsToUpdate() const;
+ virtual void setIsToUpdate( bool theState );
- virtual bool isVisible() const { return myIsVisible; }
+ virtual bool isVisible() const;
virtual void setVisible( const bool theState,
const bool theIsUpdateViewer = true );
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 = true,
- const bool theIsUpdateViewer = true );
+ const bool theToDisplay,
+ const bool theIsUpdateViewer,
+ const QString& theTextureFileName );
virtual void setFace( const TopoDS_Face& theFace,
- const bool theToDisplay = true,
- const bool theIsUpdateViewer = true );
+ 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,
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;
+ virtual Handle(AIS_InteractiveObject) getAISObject() const;
+
+ void setZLayer( const int theZLayer );
protected:
virtual void buildShape();
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 );
- static QString generateTextureFileName( const Handle(HYDROData_Entity)& theImageObj );
- void removeTextureFile() const;
-
- static QImage reduceTexture( const QImage& theImage, const int theSizeLimit );
-
private:
Handle(AIS_InteractiveContext) myContext;
Handle(HYDROData_Entity) myObject;
- Handle(AIS_Shape) myShape;
+ Handle(AIS_InteractiveObject) myShape;
+
+ int myZLayer;
bool myIsToUpdate;
bool myIsVisible;
QColor myFillingColor;
QColor myBorderColor;
QColor myHighlightColor;
-
- QString myTextureFileName;
};
#endif