1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 // Author : OPEN CASCADE
24 // File: GLViewer_Grid.h
25 // Created: November, 2004
27 #ifndef GLVIEWER_GRID_H
28 #define GLVIEWER_GRID_H
37 #include <OpenGL/gl.h>
38 #include <OpenGL/glu.h>
45 #pragma warning( disable:4251 )
48 /*! Class GLViewer_Grid
49 2D rectangular grid for GLViewer
50 Grid is adapt cells for current view
53 class GLVIEWER_API GLViewer_Grid
56 //! A default constructor
60 * \param width and \param height - width and height of grid
61 * \param winW and \param winH - width and height of window
62 * \param xSize and \param ySize - steps along x and y direction
63 * \param xPan and \param yPan - offsets along x and y direction
64 * \param xScale and \param yScal - scale factors along x and y direction
66 GLViewer_Grid( GLfloat width, GLfloat height,
67 GLfloat winW, GLfloat winH,
68 GLfloat xSize, GLfloat ySize,
69 GLfloat xPan, GLfloat yPan,
70 GLfloat xScale, GLfloat yScale );
76 //! Sets color of grid in RGB format
77 void setGridColor( GLfloat r, GLfloat g, GLfloat b );
78 //! Sets color of grid axes in RGB format
79 void setAxisColor( GLfloat r, GLfloat g, GLfloat b );
80 void setGridWidth( float );
81 //! Sets Radius of center point( begin coords )
82 void setCenterRadius( int );
84 //! Sets steps along x and y directions
85 void setSize( float xs, float ys );
86 //! Sets offset along x and y direction
87 void setPan( float xp, float yp );
88 //! Sets common scale factor along x and y direction
89 bool setZoom( float zoom );
90 //! Recomputes grid in new size and scale of view
91 void setResize( float winW, float winH, float Zoom );
93 void getSize( float&, float& ) const;
94 void getPan( float&, float& ) const;
95 void getScale( float&, float& ) const;
97 //! Sets step of scale
98 void setScaleFactor( int );
102 //! Initialize grid display list
106 GLfloat myGridColor[3];
107 GLfloat myAxisColor[3];
108 GLfloat myGridHeight;
119 GLfloat myCenterWidth;
120 GLint myCenterRadius;
122 GLboolean myIsUpdate;
126 #pragma warning ( default:4251 )