X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOCCViewer%2FOCCViewer_ViewPort3d.h;h=99428489804e23f294917cd1d090782ed98f5f5f;hb=6be4218f6cc0936dfadd3cfd7d780df51a8d6afa;hp=3b5ea5303265a1044461abf69d204919e6c44ba6;hpb=27dee12695d4e4f624df5453f3636956b5321f98;p=modules%2Fgui.git diff --git a/src/OCCViewer/OCCViewer_ViewPort3d.h b/src/OCCViewer/OCCViewer_ViewPort3d.h index 3b5ea5303..994284898 100755 --- a/src/OCCViewer/OCCViewer_ViewPort3d.h +++ b/src/OCCViewer/OCCViewer_ViewPort3d.h @@ -1,74 +1,148 @@ +// Copyright (C) 2007-2016 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 +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + #ifndef OCCVIEWER_VIEWPORT3D_H #define OCCVIEWER_VIEWPORT3D_H -#include "OCCViewer_ViewPort.h" +#include -#include +#include "OCCViewer_ViewPort.h" +#include "Qtx.h" #include #include +class QColor; +class QString; class QRect; +#ifdef WIN32 +#pragma warning ( disable:4251 ) +#endif + class OCCVIEWER_EXPORT OCCViewer_ViewPort3d: public OCCViewer_ViewPort { - Q_OBJECT + Q_OBJECT friend class OCCViewer_ViewTransformer; public: - OCCViewer_ViewPort3d( QWidget*, const Handle(V3d_Viewer)&, V3d_TypeOfView = V3d_ORTHOGRAPHIC ); - virtual ~OCCViewer_ViewPort3d(); + OCCViewer_ViewPort3d( QWidget*, const Handle(V3d_Viewer)&, V3d_TypeOfView = V3d_ORTHOGRAPHIC ); + virtual ~OCCViewer_ViewPort3d(); public: - Handle(V3d_View) getView() const; - Handle(V3d_View) setView( const Handle(V3d_View)& ); - Handle(V3d_Viewer) getViewer() const; + Handle(V3d_View) getView() const; + Handle(V3d_View) setView( const Handle(V3d_View)& ); + Handle(V3d_Viewer) getViewer() const; - void setAnimationMode(bool theDegenerated); + virtual void setBackgroundColor( const QColor& color); // obsolete + virtual QColor backgroundColor() const; // obsolete + void setBackground( const Qtx::BackgroundData& color); + Qtx::BackgroundData background() const; - virtual void setBackgroundColor( const QColor& color); - virtual QColor backgroundColor() const; + virtual int getBgImgHeight(){return myBgImgHeight; }; + virtual int getBgImgWidth() {return myBgImgWidth; }; // void setActive( V3d_TypeOfView ); - virtual bool syncronize( const OCCViewer_ViewPort3d* ); + virtual bool syncronize( const OCCViewer_ViewPort3d* ); - double getZSize() const; - void setZSize( double ); +#if OCC_VERSION_LARGE <= 0x07000000 + double getZSize() const; + void setZSize( double ); +#endif + + void getAxialScale( double&, double&, double& ); - virtual void onUpdate(); + virtual void onUpdate(); // TRANSFORMATIONS - virtual void reset(); - virtual void pan( int , int ); - virtual void setCenter( int , int ); - virtual void fitRect( const QRect& ); - virtual void zoom( int, int, int, int ); - virtual void fitAll( bool keepScale = false, bool withZ = true, bool upd = true ); + virtual void reset(); + virtual void pan( int , int ); + virtual void setCenter( int , int ); + virtual void fitRect( const QRect& ); + virtual void startZoomAtPoint( int, int ); + virtual void zoom( int, int, int, int ); + virtual void fitAll( bool keepScale = false, bool withZ = true, bool upd = true ); + virtual void rotateXY( double ); + virtual void setAxialScale( double, double, double ); + + virtual void startRotation( int, int, int, const gp_Pnt& ); + virtual void rotate( int, int, int, const gp_Pnt& ); + virtual void endRotation(); + bool isBusy() {return myBusy;} // check that View Port is fully initialized + + void setAdvancedZoomingEnabled( const bool theState ) { myIsAdvancedZoomingEnabled = theState; } + bool isAdvancedZoomingEnabled() const { return myIsAdvancedZoomingEnabled; } - void startRotation( int, int ); - void rotate( int, int ); - void endRotation(); + void showStaticTrihedron( bool ); + + void setDefaultCursor( Qt::CursorShape theCursorShape ); + QCursor* getDefaultCursor() const; + +signals: + void vpChangeBackground( const Qtx::BackgroundData& ); + void vpClosed(OCCViewer_ViewPort3d*); + void vpMapped(OCCViewer_ViewPort3d*); + +public slots: + virtual bool synchronize( OCCViewer_ViewPort* ); + +private slots: + void repaintViewAfterMove(); protected: // EVENTS - virtual void paintEvent( QPaintEvent* ); - virtual void resizeEvent( QResizeEvent* ); + virtual void paintEvent( QPaintEvent* ); + virtual void resizeEvent( QResizeEvent* ); -private: - Handle(V3d_View) activeView() const; - Handle(V3d_View) inactiveView() const; - bool mapView( const Handle(V3d_View)& ); - bool setWindow( const Handle(V3d_View)& ); - bool mapped( const Handle(V3d_View)& ) const; + // initialization + virtual void attachWindow( const Handle(V3d_View)&, const Handle(Aspect_Window)& ); private: - Handle(V3d_View) myOrthoView; - Handle(V3d_View) myPerspView; - Handle(V3d_View) myActiveView; - bool myDegenerated; - bool myAnimate; - double myScale; + Handle(V3d_View) activeView() const; + Handle(V3d_View) inactiveView() const; + bool mapView( const Handle(V3d_View)& ); + bool setWindow( const Handle(V3d_View)& ); + bool mapped( const Handle(V3d_View)& ) const; + void updateBackground(); + void setDefaultParams(); + +private: + Handle(V3d_View) myActiveView; +#if OCC_VERSION_LARGE <= 0x06070100 + Handle(V3d_View) myOrthoView; + Handle(V3d_View) myPerspView; +#endif + bool myBusy; + double myScale; + bool myIsAdvancedZoomingEnabled; + Qtx::BackgroundData myBackground; + int myBgImgHeight; + int myBgImgWidth; + QCursor* myCursor; }; +#ifdef WIN32 +#pragma warning ( default:4251 ) +#endif + #endif