]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Introducing margin ratio parameter
authorouv <ouv@opencascade.com>
Fri, 13 Aug 2010 14:00:40 +0000 (14:00 +0000)
committerouv <ouv@opencascade.com>
Fri, 13 Aug 2010 14:00:40 +0000 (14:00 +0000)
src/GLViewer/GLViewer_ViewPort2d.cxx
src/GLViewer/GLViewer_ViewPort2d.h

index 47cc94fa75f825485c49912d2776465ed4af1fa1..78b79e2c826ea783bb99741038f2371055f262b2 100644 (file)
 #include <QWidget>
 #include <QRubberBand>
 
-#define WIDTH       640
-#define HEIGHT      480
-#define MARGIN      100
+#define WIDTH        640
+#define HEIGHT       480
+#define MARGIN       100
+#define MARGIN_RATIO 0.2
 
 #define GRID_XSIZE  100
 #define GRID_YSIZE  100
@@ -70,7 +71,8 @@ void rotate_point( float& theX, float& theY, float theAngle )
 */
 GLViewer_ViewPort2d::GLViewer_ViewPort2d( QWidget* parent, GLViewer_ViewFrame* theViewFrame )
 : GLViewer_ViewPort( parent ),
-  myMargin( MARGIN ), myWidth( WIDTH ), myHeight( HEIGHT ),
+  myMargin( MARGIN ), myMarginRatio( (GLfloat)MARGIN_RATIO ),
+  myWidth( WIDTH ), myHeight( HEIGHT ),
   myXScale( 1.0 ), myYScale( 1.0 ), myXOldScale( 1.0 ), myYOldScale( 1.0 ),
   myXPan( 0.0 ), myYPan( 0.0 ),
   myIsMouseReleaseBlock( false ),
@@ -838,7 +840,7 @@ void GLViewer_ViewPort2d::fitAll( bool keepScale, bool withZ )
     float dx, dy, zm;
     float xScale, yScale;
 
-    myMargin = qMax( myBorder->width(), myBorder->height() ) / 5;
+    myMargin = qMax( myBorder->width(), myBorder->height() ) * myMarginRatio;
 
     xa = myBorder->left() - myMargin;
     xb = myBorder->right() + myMargin;
index 51a6c937de4323fb7f897caa87bdc0ea2562eff9..3812e62a4e193bb7524b1dcf7e260d852fb560cf 100644 (file)
@@ -100,6 +100,11 @@ public:
   //! Returns margin of borders
   GLfloat                getMargin() const { return myMargin; }
 
+  //! Sets margin ratio (smaller the ratio, smaller an empty gap for fit all operation)
+  void                   setMarginRatio( GLfloat marginRatio ) { myMarginRatio = marginRatio; }
+  //! Returns margin ratio
+  GLfloat                getMarginRatio() const { return myMarginRatio; }
+
   //! Returns width of view
   int                    getWidth() const { return myWidth; }
   //! Returns height of view
@@ -214,6 +219,7 @@ protected:
   QColor                 myBackgroundColor;
   
   GLfloat                myMargin;
+  GLfloat                myMarginRatio;
   int                    myHeight;
   int                    myWidth;