Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
view.hh
Go to the documentation of this file.
1 /*
2  * lib-controler : Un contrôleur générique de scène 3D.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-controler
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 //******************************************************************************
25 #ifndef VIEW_HH
26 #define VIEW_HH
27 //******************************************************************************
30 //******************************************************************************
31 
39  class CView
40  {
41  public:
42  //@name Constructeurs et destructeur.
44 
45  CView();
46 
48  virtual ~CView();
50 
51  //@name Méthodes pour l'affichage
53 
60  virtual void initScene() = 0;
61 
66  virtual void drawScene() = 0;
67 
69  virtual void update() = 0;
70 
72 
73  //@name Méthodes pour le picking
75 
77  virtual void pick(int AX, int AY) = 0;
78 
80 
81 
82  //@name Méthodes pour la conversion 2D <=> 3D
84 
92  virtual void unproject(float x, float y, float res[]) = 0;
93 
102  virtual void project(float x, float y, float z, float res[]) = 0;
103 
105 
106  //@name Méthodes pour activer ou désactiver la vue
108 
110  virtual void enable();
111 
113  virtual void disable();
114 
116  virtual bool isEnabled();
117 
119 
120  protected:
121 
122  //@name Méthodes protected devant être utilisées uniquement par la méthode
123  // drawScene
125 
130  virtual void setScenePosition() = 0;
131 
136  virtual void display() = 0;
137 
139 
140  private:
142  bool FEnable;
143  };
144 
145 //******************************************************************************
146 #endif // VIEW_HH
147 //******************************************************************************