Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
controler-gmap-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 // Ce fichier est une partie de "controler-gmap.hh".
26 //******************************************************************************
27 
28 public:
29 
31 void setObjectTranslationVector(const CVertex & AVector);
32 CVertex getObjectTranslationVector() const;
33 
34 void setObjectTranslationPonderation(bool AActive);
38 
40 void setObjectRotationAxeVertex(const CVertex & AAxeVertex);
41 CVertex getObjectRotationAxeVertex() const;
42 
43 void setObjectRotationAxeVector(const CVertex & AAxeVector);
44 CVertex getObjectRotationAxeVector() const;
45 
46 void setObjectRotationAngle(float AAngle);
47 float getObjectRotationAngle() const;
48 
49 void setObjectRotationPonderation(bool AActive);
50 bool getObjectRotationPonderation() const;
53 
55 void setObjectScaleType(TScaleType AScaleType);
57 
58 void setObjectScaleCenter(const CVertex & ACenter);
59 CVertex getObjectScaleCenter() const;
60 
61 void setObjectScaleVector(const CVertex & AVector);
62 CVertex getObjectScaleVector() const;
63 
64 void setObjectScaleIso(bool AValue);
65 bool getObjectScaleIso() const;
67 
68 void setObjectScaleIsoCoef(float AValue);
69 float getObjectScaleIsoCoef() const;
70 
71 void setObjectScaleCoef(const CVertex & AValue);
72 CVertex getObjectScaleCoef() const;
73 
74 void setObjectScaleCoef(int ADim, float AValue);
75 float getObjectScaleCoef(int ADim) const;
76 
77 void setObjectScalePonderation(bool AActive);
78 bool getObjectScalePonderation() const;
80 
81 CVertex getVertexPosition() const;
82 void setVertexPosition(const CVertex& AVertex);
83 
85 
86 //******************************************************************************
87 
88 private:
89 
90 //@name Méthodes pour gérer la pondération
92 void addPonderationCoefs();
93 void delPonderationCoefs();
94 void updatePonderationCoefs();
96 
97 //@name Méthodes permettant de changer de mode
99 void modeObjectTransformationBegin(bool APonderation);
100 void modeTranslationBegin();
101 void modeRotationBegin();
102 void modeScaleBegin();
103 
104 void modeObjectTransformationEnd(bool APonderation);
105 void modeTranslationEnd();
106 void modeRotationEnd();
107 void modeScaleEnd();
108 
110 
111 //@name Méthodes pour la gestion de la souris
113 
120 void modeTranslationOperationStart();
121 void modeRotationOperationStart();
122 void modeScaleOperationStart();
123 
130 void modeTranslationOperationMove();
131 void modeRotationOperationMove();
132 void modeScaleOperationMove();
133 
140 // Regroupe mode{Translation,Rotation,Scale}OperationStop :
141 void modeTransformationOperationStop();
142 
143 //@name Champs privés pour les déformations (translation, rotation, homothétie)
145 
149 
151 
153 
154 //******************************************************************************