Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
precompile-object-transformation.hh
Go to the documentation of this file.
1 /*
2  * lib-controler-gmap : Le contrôleur de 3-G-cartes, surcouche de lib-controler.
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-gmap
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 PRECOMPILE_OBJECT_TRANSFORMATION_HH
26 #define PRECOMPILE_OBJECT_TRANSFORMATION_HH
27 //******************************************************************************
30 //******************************************************************************
31 #include "precompile.hh"
32 //******************************************************************************
33 class CVertex;
34 
35 namespace GMap3d
36 {
37  class CParameterObjectTransformation;
38  class CParameterObjectTranslation;
39  class CParameterObjectRotation;
40  class CParameterObjectScale;
41  class CParameterObjectPonderation;
42 
46  {
47  public:
48  //@name Constructeurs et destructeur.
50 
64 
66  CPrecompile* copy() const;
67 
71 
73  void setParameter(CParameter* AParameter);
74  CParameter* getParameter() const;
75 
77  virtual TPrecompile getType() const;
78 
82  AObjectTransformation);
83 
85  void setObjectTranslation(CParameterObjectTranslation* AObjectTranslation);
86 
88  void setObjectRotation(CParameterObjectRotation* AObjectRotation);
89 
91  void setObjectScale(CParameterObjectScale* AObjectScale);
92 
94  void setObjectPonderation(CParameterObjectPonderation* AObjectPonderation);
96 
98  void setCurrentMode(TMode AMode);
100 
101  protected:
102 
104  virtual void drawModel();
105 
111 
116  void drawInteractiveAxe(const CVertex & C,
117  const CVertex & V,
118  int circleNbEdges,
119  bool ponderation=false);
120 
121 
122  private:
124  CParameterObjectTransformation * FParameterObjectTransformation;
125  CParameterObjectTranslation * FParameterObjectTranslation;
126  CParameterObjectRotation * FParameterObjectRotation;
127  CParameterObjectScale * FParameterObjectScale;
128  CParameterObjectPonderation * FParameterObjectPonderation;
129 
130  // Le mode courant pour différencier
131  // MODE_SCENE_TRANSLATION, MODE_SCENE_ROTATION ou MODE_SCENE_SCALE
132  TMode FCurrentMode;
133  };
134 
135 } // namespace GMap3d
136 //******************************************************************************
137 #endif // PRECOMPILE_OBJECT_TRANSFORMATION_HH
138 //******************************************************************************