X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FGLViewer%2FGLViewer_Viewer2d.cxx;h=9438c066c4da1fb49b4b57d9f350a321276feaeb;hb=bfc545e999223fe65b0c98019c37174d4adb1b81;hp=f98f5e2ae76818b2eb442a7073f335559ca02421;hpb=9f1a66957ba9a2308f8fdc3f9397140af9df5fd0;p=modules%2Fgui.git diff --git a/src/GLViewer/GLViewer_Viewer2d.cxx b/src/GLViewer/GLViewer_Viewer2d.cxx index f98f5e2ae..9438c066c 100644 --- a/src/GLViewer/GLViewer_Viewer2d.cxx +++ b/src/GLViewer/GLViewer_Viewer2d.cxx @@ -1,69 +1,70 @@ -// Copyright (C) 2005 OPEN CASCADE +// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE // -// 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. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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. +// 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. // -// 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 +// 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. // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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 // -// Author : OPEN CASCADE +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// Author : OPEN CASCADE // File: GLViewer_Viewer2d.cxx // Created: November, 2004 - -/*************************************************************************** -** Class: GLViewer_Viewer2d -** Descr: OpenGL Viewer 2D -** Module: GLViewer -** Created: UI team, 04.09.02 -****************************************************************************/ - //#include +// #include "GLViewer_Viewer2d.h" #include "GLViewer_Object.h" +#include "GLViewer_ViewFrame.h" #include "GLViewer_BaseObjects.h" #include "GLViewer_CoordSystem.h" #include "GLViewer_Context.h" #include "GLViewer_Drawer.h" #include "GLViewer_Selector2d.h" -//#include "GLViewer_Sketcher.h" #include "GLViewer_ViewPort2d.h" #include "SUIT_Desktop.h" #include "SUIT_ViewWindow.h" +#include "SUIT_ViewManager.h" -#include "OSD_Timer.hxx" -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include +/*! + Constructor + \param title - viewer title +*/ GLViewer_Viewer2d::GLViewer_Viewer2d( const QString& title) : GLViewer_Viewer( title ) { - myGLContext = new GLViewer_Context( this ); + myGLContext = new GLViewer_Context( this ); - //myGLSketcher = new GLViewer_Sketcher( this ); + createSelector(); - createSelector(); + mySelMode = GLViewer_Viewer::Multiple; - mySelMode = GLViewer_Viewer::Multiple; - - myDrawers.clear(); + myDrawers.clear(); } +/*! + Destructor +*/ GLViewer_Viewer2d::~GLViewer_Viewer2d() { //myGLSketcher = 0; @@ -71,34 +72,47 @@ GLViewer_Viewer2d::~GLViewer_Viewer2d() GLViewer_TexFont::clearTextBases(); } +/*!Create new instance of view window on desktop \a theDesktop. + *\retval SUIT_ViewWindow* - created view window pointer. + */ SUIT_ViewWindow* GLViewer_Viewer2d::createView( SUIT_Desktop* theDesktop ) { return new GLViewer_ViewFrame( theDesktop, this ); } -void GLViewer_Viewer2d::addPopupItems( QPopupMenu* thePopup ) +/*! + Adds item for change background color + \param thePopup - menu +*/ +void GLViewer_Viewer2d::addPopupItems( QMenu* thePopup ) { // CTH8434. "Change background color" menu item is available if there are no selected objects if ( getSelector() == 0 || getSelector()->numSelected() == 0 ) { - if( thePopup->count() > 0 ) - thePopup->insertSeparator(); - thePopup->insertItem( tr( "CHANGE_BGCOLOR" ), this, SLOT( onChangeBgColor() ) ); + if( thePopup->actions().count() > 0 ) + thePopup->addSeparator(); + thePopup->addAction( tr( "CHANGE_BGCOLOR" ), this, SLOT( onChangeBgColor() ) ); } } +/*! + Changes background color +*/ void GLViewer_Viewer2d::onChangeBgColor() { if( !getActiveView() ) return; GLViewer_ViewPort2d* vp = ( ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() ); - QColor selColor = QColorDialog::getColor( vp->backgroundColor(), vp ); + QColor selColor = QColorDialog::getColor( vp->backgroundColor(), vp ); if ( selColor.isValid() ) { vp->setBackgroundColor( selColor ); } } +/*! + Updates colors for all drawers (does not work) +*/ void GLViewer_Viewer2d::updateColors( QColor colorH, QColor colorS ) { // cout << "GLViewer_Viewer2d::updateColors" << endl; @@ -123,26 +137,33 @@ void GLViewer_Viewer2d::updateColors( QColor colorH, QColor colorS ) */ - activateAllDrawers( TRUE ); + activateAllDrawers( true ); } +/*! + Updates rect of global scene by adding new rectangle + \param theRect - rectangle +*/ void GLViewer_Viewer2d::updateBorders( GLViewer_Rect* theRect ) { - QPtrVector views = getViewManager()->getViews(); + QVector views = getViewManager()->getViews(); for ( int i = 0, n = views.count(); i < n; i++ ) { GLViewer_Rect* border = ( ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)views[i])->getViewPort() )->getBorder(); - border->setLeft( QMIN( border->left(), theRect->left() ) ); - border->setRight( QMAX( border->right(), theRect->right() ) ); - border->setBottom( QMIN( border->bottom(), theRect->bottom() ) ); - border->setTop( QMAX( border->top(), theRect->top() ) ); + border->setLeft( qMin( border->left(), theRect->left() ) ); + border->setRight( qMax( border->right(), theRect->right() ) ); + border->setBottom( qMin( border->bottom(), theRect->bottom() ) ); + border->setTop( qMax( border->top(), theRect->top() ) ); } } +/*! + Recomputes global scene rect +*/ void GLViewer_Viewer2d::updateBorders() { - QPtrVector views = getViewManager()->getViews(); + QVector views = getViewManager()->getViews(); ObjList anObjects = myGLContext->getObjects(); ObjList::Iterator beginIt = anObjects.begin(); @@ -169,25 +190,31 @@ void GLViewer_Viewer2d::updateBorders() } else { - border->setLeft( QMIN( border->left(), aRect->left() ) ); - border->setRight( QMAX( border->right(), aRect->right() ) ); - border->setBottom( QMIN( border->bottom(), aRect->bottom() ) ); - border->setTop( QMAX( border->top(), aRect->top() ) ); + border->setLeft( qMin( border->left(), aRect->left() ) ); + border->setRight( qMax( border->right(), aRect->right() ) ); + border->setBottom( qMin( border->bottom(), aRect->bottom() ) ); + border->setTop( qMax( border->top(), aRect->top() ) ); } } } } +/*! + Redraws all active objects by updating all drawers in all views +*/ void GLViewer_Viewer2d::updateAll() { if ( !getActiveView() ) return; - QPtrVector views = getViewManager()->getViews(); + QVector views = getViewManager()->getViews(); for ( int i = 0, n = views.count(); i < n; i++ ) ( ( GLViewer_ViewPort2d* )( ( GLViewer_ViewFrame* )views[i] )->getViewPort() )->getGLWidget()->updateGL(); } +/*! + \param onlyUpdate is passed to method activateAllDrawers drawers +*/ void GLViewer_Viewer2d::updateDrawers( GLboolean update, GLfloat scX, GLfloat scY ) { // cout << "GLViewer_Viewer2d::updateDrawers" << endl; @@ -197,18 +224,21 @@ void GLViewer_Viewer2d::updateDrawers( GLboolean update, GLfloat scX, GLfloat sc activateAllDrawers( update ); } -void GLViewer_Viewer2d::activateDrawers( QValueList& theObjects, bool onlyUpdate, GLboolean swap ) +/*! + Activates drawers for objects from list \param theObjects only +*/ +void GLViewer_Viewer2d::activateDrawers( QList& theObjects, bool onlyUpdate, GLboolean swap ) { //cout << "GLViewer_Viewer2d::activateDrawers " << (int)onlyUpdate << " " << (int)swap << endl; - QValueList::Iterator anIt = myDrawers.begin(); - QValueList::Iterator endDIt = myDrawers.end(); + QList::Iterator anIt = myDrawers.begin(); + QList::Iterator endDIt = myDrawers.end(); for( ; anIt != endDIt; anIt++ ) (*anIt)->clear(); - QValueList anActiveDrawers; - QValueList::Iterator endOIt = theObjects.end(); + QList anActiveDrawers; + QList::Iterator endOIt = theObjects.end(); - for( QValueList::Iterator oit = theObjects.begin(); oit != endOIt; ++oit ) + for( QList::Iterator oit = theObjects.begin(); oit != endOIt; ++oit ) { GLViewer_Drawer* aDrawer = (*oit)->getDrawer(); if( !aDrawer ) @@ -236,11 +266,11 @@ void GLViewer_Viewer2d::activateDrawers( QValueList& theObject int aPriority = aDrawer->getPriority(); - if( anActiveDrawers.findIndex( aDrawer ) != -1 ) + if( anActiveDrawers.indexOf( aDrawer ) != -1 ) continue; - QValueList::Iterator aDIt = anActiveDrawers.begin(); - QValueList::Iterator aDEndIt = anActiveDrawers.end(); + QList::Iterator aDIt = anActiveDrawers.begin(); + QList::Iterator aDEndIt = anActiveDrawers.end(); for( ; aDIt != aDEndIt; ++aDIt ) if( (*aDIt)->getPriority() > aPriority ) break; @@ -248,10 +278,10 @@ void GLViewer_Viewer2d::activateDrawers( QValueList& theObject anActiveDrawers.insert( aDIt, aDrawer ); } - QValueList::Iterator aDIt = anActiveDrawers.begin(); - QValueList::Iterator aDEndIt = anActiveDrawers.end(); + QList::Iterator aDIt = anActiveDrawers.begin(); + QList::Iterator aDEndIt = anActiveDrawers.end(); - QPtrVector views = getViewManager()->getViews(); + QVector views = getViewManager()->getViews(); for ( int i = 0, n = views.count(); i < n; i++ ) { float xScale, yScale; @@ -282,6 +312,9 @@ void GLViewer_Viewer2d::activateDrawers( QValueList& theObject ( ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() )->getGLWidget()->makeCurrent(); } +/*! + Activates drawer for \param theObject +*/ void GLViewer_Viewer2d::activateDrawer( GLViewer_Object* theObject, bool onlyUpdate, GLboolean swap ) { ObjList aList; @@ -289,6 +322,9 @@ void GLViewer_Viewer2d::activateDrawer( GLViewer_Object* theObject, bool onlyUpd activateDrawers( aList, onlyUpdate, swap ); } +/*! + \param onlyUpdate is passed to drawers +*/ void GLViewer_Viewer2d::activateAllDrawers( bool onlyUpdate, GLboolean swap ) { if ( !getActiveView() ) @@ -306,6 +342,11 @@ void GLViewer_Viewer2d::activateAllDrawers( bool onlyUpdate, GLboolean swap ) activateDrawers( anActiveObjs, onlyUpdate, swap ); } +/*! + Creates set of marker + \param theMarkersNum - number of markers + \param theMarkersRad - radius of markers +*/ void GLViewer_Viewer2d::onCreateGLMarkers( int theMarkersNum, int theMarkersRad ) { if ( !getActiveView() ) @@ -341,6 +382,12 @@ void GLViewer_Viewer2d::onCreateGLMarkers( int theMarkersNum, int theMarkersRad delete[] anYCoord; } +/*! + Creates GL polyline + \param theAnglesNum - number of angles + \param theRadius - radius + \param thePolylineNumber - number +*/ void GLViewer_Viewer2d::onCreateGLPolyline( int theAnglesNum, int theRadius, int thePolylineNumber ) { if ( !getActiveView() ) @@ -384,6 +431,11 @@ void GLViewer_Viewer2d::onCreateGLPolyline( int theAnglesNum, int theRadius, int delete[] anYCoord; } +/*! + Creates text + \param theStr - text string + \param theTextNumber - number +*/ void GLViewer_Viewer2d::onCreateGLText( QString theStr, int theTextNumber ) { if ( !getActiveView() ) @@ -414,6 +466,10 @@ void GLViewer_Viewer2d::onCreateGLText( QString theStr, int theTextNumber ) activateAllDrawers( false ); } +/*! + Translates point from global CS to curreent viewer CS + \param x, y - co-ordinates to be translated +*/ void GLViewer_Viewer2d::transPoint( GLfloat& x, GLfloat& y ) { if ( !getActiveView() ) @@ -442,6 +498,10 @@ void GLViewer_Viewer2d::transPoint( GLfloat& x, GLfloat& y ) y -= yPan; } +/*! + \return object rect in window CS + \param theObject - object +*/ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject ) { if ( !getActiveView() ) @@ -464,7 +524,7 @@ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject ) GLfloat anAngle = curvp->getGLWidget()->getRotationAngle() * PI / 180.; - QPointArray aPointArray(4); + QPolygon aPointArray(4); aPointArray[0] = QPoint( (int)(aLeft*cos(anAngle) - aTop*sin(anAngle)), (int)(aLeft*sin(anAngle) + aTop*cos(anAngle)) ); aPointArray[1] = QPoint( (int)(aRight*cos(anAngle) - aTop*sin(anAngle)), @@ -480,10 +540,10 @@ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject ) { int x = aPointArray[i].x(); int y = aPointArray[i].y(); - aMinLeft = QMIN( aMinLeft,x ); - aMaxRight = QMAX( aMaxRight, x ); - aMinTop = QMIN( aMinTop, y ); - aMaxBottom = QMAX( aMaxBottom, y ); + aMinLeft = qMin( aMinLeft,x ); + aMaxRight = qMax( aMaxRight, x ); + aMinTop = qMin( aMinTop, y ); + aMaxBottom = qMax( aMaxBottom, y ); } aLeft = (aMinLeft/* + xPan*/)*xScale + aWidth / 2; @@ -497,6 +557,11 @@ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject ) return newRect; } +/*! + Translates rect in window CS to rect in global CS + \param theRect - rectangle to be translated + \return transformed rect +*/ GLViewer_Rect GLViewer_Viewer2d::getGLVRect( const QRect& theRect ) const { if ( !getActiveView() ) @@ -510,6 +575,11 @@ GLViewer_Rect GLViewer_Viewer2d::getGLVRect( const QRect& theRect ) const return vp->win2GLV( theRect ); } +/*! + Translates rect in global CS to rect in window CS + \param theRect - rectangle to be translated + \return transformed rect +*/ QRect GLViewer_Viewer2d::getQRect( const GLViewer_Rect& theRect ) const { if ( !getActiveView() ) @@ -523,87 +593,25 @@ QRect GLViewer_Viewer2d::getQRect( const GLViewer_Rect& theRect ) const return vp->GLV2win( theRect ); } +/*! + \return new selector +*/ GLViewer_Selector* GLViewer_Viewer2d::createSelector() { return new GLViewer_Selector2d( this, getGLContext() ); } +/*! + \return new Transformer + \param type - type of new transformer +*/ GLViewer_ViewTransformer* GLViewer_Viewer2d::createTransformer( int type ) { return new GLViewer_View2dTransformer( this, type ); } -/* -GLViewer_Sketcher* GLViewer_Viewer2d::createGLSketcher( int type ) -{ - return new GLViewer_Sketcher( this, type ); -} - -void GLViewer_Viewer2d::activateGLSketching( int type ) -{ - GLViewer_ViewPort2d* vp = 0; - if ( !getActiveView() || !( vp = ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() ) ) - return; - - // Finish current sketching - if ( type == None ) - { - if ( myGLSketcher->getType() != None ) - { - myGLSketcher->setType( None ); - finishSketching(); - } - } - // Activate new sketching - else - { - activateGLSketching( None ); // concurrency not supported - myGLSketcher->setType( type ); - startSketching(); - } -} -void GLViewer_Viewer2d::startSketching() -{ - GLViewer_ViewPort2d* avp = (GLViewer_ViewPort2d*)getActiveView()->getViewPort(); - avp->setCursor( *avp->getSketchCursor() ); - //avp->enablePopup( false ); - myGLSketcher->startSketching(); -} - -void GLViewer_Viewer2d::finishSketching() -{ - GLViewer_ViewPort2d* avp = (GLViewer_ViewPort2d*)getActiveView()->getViewPort(); - avp->setCursor( *avp->getDefaultCursor() ); - //avp->enablePopup( true ); - myGLSketcher->finishSketching(); -} - -bool GLViewer_Viewer2d::isSketchingActive() -{ - return myGLSketcher->getType() != None; -} - -int GLViewer_Viewer2d::getSketchingType() -{ - return myGLSketcher->getType(); -} - -void GLViewer_Viewer2d::onSketchDelObject() -{ - GLViewer_ViewPort2d* avp = (GLViewer_ViewPort2d*)getActiveView()->getViewPort(); - avp->setCursor( *avp->getDefaultCursor() ); - myGLSketcher->finishSketching( true ); -} - -void GLViewer_Viewer2d::onSketchUndoLast() -{ - -} - -void GLViewer_Viewer2d::onSketchFinish() -{ - finishSketching(); -} +/*! + Custom mouse event handler */ void GLViewer_Viewer2d::onMouseEvent( SUIT_ViewWindow*, QMouseEvent* e ) { @@ -626,11 +634,14 @@ void GLViewer_Viewer2d::onMouseEvent( SUIT_ViewWindow*, QMouseEvent* e ) GLViewer_Viewer::onMouseEvent( 0, e ); } +/*! + Rotation transformation +*/ bool GLViewer_Viewer2d::testRotation( QMouseEvent* e ) { if ( ( e->button() == GLViewer_View2dTransformer::rotateButton() ) && ( e->type() == QEvent::MouseButtonPress ) && - ( e->state() & GLViewer_ViewTransformer::accelKey() ) ) + ( e->modifiers() & GLViewer_ViewTransformer::accelKey() ) ) { activateTransform( GLViewer_Viewer::Rotate ); return true; @@ -638,7 +649,11 @@ bool GLViewer_Viewer2d::testRotation( QMouseEvent* e ) return false; } - +/*! + Inserts text lines as header for file + \param aType - file type + \param hFile - file instance +*/ void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile ) { if( aType == POST_SCRIPT ) @@ -653,7 +668,7 @@ void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile ) header += "%%Pages: 1\n"; header += "%%Page: 1\n\n"; - hFile.writeBlock( header.ascii(), header.length() ); + hFile.write( header.toLatin1() ); } else if( aType == HPGL ) { @@ -667,21 +682,26 @@ void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile ) header += "LT;\n"; header += "VS36;\n"; - hFile.writeBlock( header.ascii(), header.length() ); + hFile.write( header.toLatin1() ); } } +/*! + Inserts text lines as ending for file + \param aType - file type + \param hFile - file instance +*/ void GLViewer_Viewer2d::insertEnding( VectorFileType aType, QFile& hFile ) { if( aType == POST_SCRIPT ) { QString ending = "showpage\n\n%%EOF"; - hFile.writeBlock( ending.ascii(), ending.length() ); + hFile.write( ending.toLatin1() ); } else if( aType == HPGL ) { QString ending = "PU;PA0,0;SP;EC;PG1;EC1;OE\n"; - hFile.writeBlock( ending.ascii(), ending.length() ); + hFile.write( ending.toLatin1() ); } } @@ -698,13 +718,20 @@ inline void mm2custom( GLViewer_Viewer2d::VectorFileType aType, double& value ) #endif } +/*! + Translates current view content to vector file + \param aType - type of file + \param FileName - name of file, + \param aPType - paper size type + \param mmLeft, mmRight, mmTop, mmBottom - margins +*/ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, PaperType aPType, double mmLeft, double mmRight, double mmTop, double mmBottom ) { if ( !getActiveView() ) return false; - QFile hFile( FileName.ascii() ); + QFile hFile( FileName.toUtf8() ); #ifdef WIN32 HDC hMetaFileDC; @@ -753,8 +780,8 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap if( aType==POST_SCRIPT || aType==HPGL ) { - hFile.open( IO_ReadWrite | IO_Truncate ); - hFile.at( 0 ); + hFile.open( QIODevice::ReadWrite | QIODevice::Truncate ); + hFile.seek( 0 ); insertHeader( aType, hFile ); } #ifdef WIN32 @@ -766,7 +793,20 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap HDC screen_dc = GetDC( 0 ); //The screen device context HDC bitDC = CreateCompatibleDC ( screen_dc ); //The context compatible with screen - hMetaFileDC = CreateEnhMetaFile( bitDC, FileName.ascii(), &r, "" ); +#ifdef UNICODE + LPTSTR str = new TCHAR[FileName.length() + 1]; + str[FileName.toWCharArray(str)] = '\0'; + LPTSTR empty = L""; +#else + QByteArray arr = FileName.toLatin1(); + LPTSTR str = arr.constData(); + LPTSTR empty = ""; +#endif + + hMetaFileDC = CreateEnhMetaFile( bitDC, str, &r, empty ); +#ifdef UNICODE + delete str; +#endif SetMapMode( hMetaFileDC, MM_HIMETRIC ); SetWindowOrgEx( hMetaFileDC, 0, r.bottom, NULL ); HRGN ClipRgn = CreateRectRgn( 0, 0, AW, AH ); @@ -781,7 +821,7 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap ReleaseDC( 0, screen_dc ); DeleteDC( bitDC ); - aCurVP->getGLWidget()->translateBackgroundToEMF( hMetaFileDC, &aViewerCS, &aPaperCS ); + aCurVP->getGLWidget()->translateBackgroundToEMF( hMetaFileDC, &aViewerCS, &aPaperCS ); } #endif @@ -792,7 +832,7 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap arg( AW-mmLeft-mmRight ).arg( AH-mmBottom-mmTop ); //It is set clipping path - hFile.writeBlock( aBuffer.ascii(), aBuffer.length() ); + hFile.write( aBuffer.toLatin1() ); aCurVP->getGLWidget()->translateBackgroundToPS( hFile, &aViewerCS, &aPaperCS ); } @@ -821,7 +861,10 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap return true; } - +/*! + Repaints view + \param theView - view to be repainted. If it is NULL then all views will be repainted +*/ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurrent ) { GLViewer_ViewFrame* aCurView; @@ -845,15 +888,15 @@ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurre float xScale; float yScale; - QValueList::Iterator anIt = myDrawers.begin(); - QValueList::Iterator endDIt = myDrawers.end(); + QList::Iterator anIt = myDrawers.begin(); + QList::Iterator endDIt = myDrawers.end(); for( ; anIt != endDIt; anIt++ ) (*anIt)->clear(); - QValueList anActiveDrawers; - QValueList::Iterator endOIt = anActiveObjs.end(); + QList anActiveDrawers; + QList::Iterator endOIt = anActiveObjs.end(); - for( QValueList::Iterator oit = anActiveObjs.begin(); oit != endOIt; ++oit ) + for( QList::Iterator oit = anActiveObjs.begin(); oit != endOIt; ++oit ) { GLViewer_Drawer* aDrawer = (*oit)->getDrawer(); if( !aDrawer ) @@ -875,12 +918,12 @@ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurre } } aDrawer->addObject( (*oit) ); - if( anActiveDrawers.findIndex( aDrawer ) == -1 ) + if( anActiveDrawers.indexOf( aDrawer ) == -1 ) anActiveDrawers.append( aDrawer ); } - QValueList::Iterator aDIt = anActiveDrawers.begin(); - QValueList::Iterator aDEndIt = anActiveDrawers.end(); + QList::Iterator aDIt = anActiveDrawers.begin(); + QList::Iterator aDEndIt = anActiveDrawers.end(); GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )aCurView->getViewPort(); vp->getScale( xScale, yScale ); @@ -897,6 +940,9 @@ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurre // ( ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() )->getGLWidget()->makeCurrent(); } +/*! + Starts some operation on mouse event +*/ void GLViewer_Viewer2d::startOperations( QMouseEvent* e ) { GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)getActiveView())->getViewPort(); @@ -913,6 +959,9 @@ void GLViewer_Viewer2d::startOperations( QMouseEvent* e ) vp->startSelectByRect( e->x(), e->y() ); } +/*! + Updates started operation on mouse event +*/ bool GLViewer_Viewer2d::updateOperations( QMouseEvent* e ) { GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)getActiveView())->getViewPort(); @@ -936,6 +985,9 @@ bool GLViewer_Viewer2d::updateOperations( QMouseEvent* e ) return false; } +/*! + Completes started operation on mouse event +*/ void GLViewer_Viewer2d::finishOperations( QMouseEvent* e ) { GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)getActiveView())->getViewPort(); @@ -953,12 +1005,15 @@ void GLViewer_Viewer2d::finishOperations( QMouseEvent* e ) vp->finishSelectByRect(); if ( getSelector() && !aSelRect.isNull() ) { - bool append = bool ( e->state() & GLViewer_Selector::appendKey() ); + bool append = bool ( e->modifiers() & GLViewer_Selector::appendKey() ); getSelector()->select( aSelRect, append ); } } } +/*! + Starts some operation on mouse wheel event +*/ void GLViewer_Viewer2d::startOperations( QWheelEvent* e ) { bool zoomIn = e->delta() > 0; @@ -976,13 +1031,11 @@ void GLViewer_Viewer2d::startOperations( QWheelEvent* e ) } -/**************************************************************** -** Class: GLViewer_View2dTransformer -** -*****************************************************************/ - -int GLViewer_View2dTransformer::rotateBtn = RightButton; +int GLViewer_View2dTransformer::rotateBtn = Qt::RightButton; +/*! + Constructor +*/ GLViewer_View2dTransformer::GLViewer_View2dTransformer( GLViewer_Viewer* viewer, int typ ) : GLViewer_ViewTransformer( viewer, typ ) { @@ -990,6 +1043,9 @@ GLViewer_View2dTransformer::GLViewer_View2dTransformer( GLViewer_Viewer* viewer, initTransform( true ); } +/*! + Destructor +*/ GLViewer_View2dTransformer::~GLViewer_View2dTransformer() { if ( type() == GLViewer_Viewer::Rotate )