Salome HOME
new files added
[modules/gui.git] / src / GLViewer / GLViewer_Grid.h
1 // File:      GLViewer_Grid.h
2 // Created:   November, 2004
3 // Author:    OCC team
4 // Copyright (C) CEA 2004
5
6 #ifndef GLVIEWER_GRID_H
7 #define GLVIEWER_GRID_H
8
9 #ifdef WNT
10 #include "windows.h"
11 #endif
12
13 #include "GLViewer.h"
14
15 #include <GL/gl.h>
16 #include <GL/glu.h>
17
18 #ifdef WNT
19 #pragma warning( disable:4251 )
20 #endif
21
22 class GLVIEWER_API GLViewer_Grid 
23 {
24 public:
25   GLViewer_Grid();
26   GLViewer_Grid( float, float, float, float, float, float, float, float, float, float );
27   ~GLViewer_Grid();
28
29   void                   draw();
30
31   void                   setGridColor( GLfloat, GLfloat, GLfloat );
32   void                   setAxisColor( GLfloat, GLfloat, GLfloat );
33   void                   setGridWidth( float );
34   void                   setCenterRadius( int );
35
36   void                   setSize( float, float );
37   void                   setPan( float, float );
38   bool                   setZoom( float );
39   void                   setResize( float, float, float );
40
41   void                   getSize( float&, float& ) const;
42   void                   getPan( float&, float& ) const;
43   void                   getScale( float&, float& ) const;
44
45   void                   setScaleFactor( int );
46   int                    getScaleFactor();
47
48 protected:
49   bool                   initList();
50
51   GLuint                 myGridList;
52   GLfloat                myGridColor[3];
53   GLfloat                myAxisColor[3];
54   GLfloat                myGridHeight;
55   GLfloat                myGridWidth;
56   GLfloat                myWinW;
57   GLfloat                myWinH;
58   GLfloat                myXSize;
59   GLfloat                myYSize;
60   GLfloat                myXPan;
61   GLfloat                myYPan;
62   GLfloat                myXScale;
63   GLfloat                myYScale;
64   GLfloat                myLineWidth;
65   GLfloat                myCenterWidth;
66   GLint                  myCenterRadius;
67   GLint                  myScaleFactor;
68   GLboolean              myIsUpdate;
69 };
70
71 #ifdef WNT
72 #pragma warning ( default:4251 )
73 #endif
74
75 #endif