27 #include <QtGui/QPixmap>
28 #include <QtGui/QLabel>
29 #include <QtGui/QBoxLayout>
30 #include <Qt3Support/Q3Accel>
32 static const char *
const coordLabels [ 3 ] =
41 Window * parent ,
int objet) :
48 QBoxLayout * total =
new QBoxLayout(QBoxLayout :: TopToBottom,
this) ;
51 QWidget * widCentre =
new QWidget(
this) ;
52 QBoxLayout * boxCentre =
new QBoxLayout(QBoxLayout :: LeftToRight,
55 FTitreCentre =
new QLabel(
" Centre : " , widCentre) ;
56 boxCentre -> addWidget(FTitreCentre) ;
58 for (
int i = 0 ; i < 3 ; i++)
60 FAffCentre [ i ] =
new QLabel(coordLabels [ i ] , widCentre) ;
61 boxCentre -> addWidget(FAffCentre [ i ] , Qt::AlignHCenter) ;
62 FSaisieCentre [ i ] =
new FloatSpinBox(0.5, -1000 , 1000);
63 boxCentre -> addWidget(FSaisieCentre [ i ] , Qt::AlignHCenter) ;
65 total -> addWidget(widCentre) ;
68 QWidget * widFacteur =
new QWidget(
this) ;
69 QBoxLayout * boxFacteur =
new QBoxLayout(QBoxLayout :: LeftToRight,
71 FTitreFacteur =
new QLabel(
" Growing coefficient: " , widFacteur) ;
72 boxFacteur -> addWidget(FTitreFacteur) ;
75 boxFacteur -> addWidget(FSaisieFacteur , Qt::AlignHCenter) ;
77 total -> addWidget(widFacteur) ;
80 QWidget * widProportions =
new QWidget(
this) ;
81 QBoxLayout * boxProportions =
new QBoxLayout(QBoxLayout :: LeftToRight,
84 FTitreProportions =
new QLabel(
" Proportions: " , widProportions) ;
85 boxProportions -> addWidget(FTitreProportions) ;
87 for (
int i = 0 ; i < 3 ; i++)
89 FAffProportions [ i ] =
new QLabel(coordLabels [ i ] ,
91 boxProportions -> addWidget(FAffProportions [ i ] , Qt::AlignHCenter) ;
93 FSaisieProportions [ i ] =
new FloatSpinBox(0.2, -1000 , 1000);
94 boxProportions -> addWidget(FSaisieProportions [ i ], 0,
98 total -> addWidget(widProportions) ;
101 QWidget * widDimensions =
new QWidget(
this) ;
102 QBoxLayout * boxDimensions =
103 new QBoxLayout(QBoxLayout :: LeftToRight, widDimensions);
105 FTitreDimensions =
new QLabel(
" Dimensions: " , widDimensions) ;
106 boxDimensions -> addWidget(FTitreDimensions) ;
108 for (
int i = 0 ; i < 3 ; i++)
110 FAffDimensions [ i ] =
new QLabel(coordLabels [ i ] , widDimensions) ;
111 boxDimensions->addWidget(FAffDimensions [ i ] , 0, Qt::AlignHCenter) ;
113 FSaisieDimensions [ i ] =
new FloatSpinBox(0.5, -1000 , 1000);
114 boxDimensions->addWidget(FSaisieDimensions[i], 0, Qt::AlignHCenter);
117 total -> addWidget(widDimensions) ;
120 QWidget * widRotations =
new QWidget(
this) ;
121 QBoxLayout * boxRotations =
new QBoxLayout(QBoxLayout :: LeftToRight,
124 FTitreRotations =
new QLabel(
" Rotations: " , widRotations) ;
125 boxRotations -> addWidget(FTitreRotations) ;
127 for (
int i = 0 ; i < 3 ; i++)
129 FAffRotations [ i ] =
new QLabel(coordLabels [ i ] , widRotations) ;
130 boxRotations -> addWidget(FAffRotations [ i ] , Qt::AlignHCenter) ;
132 FSaisieRotations [ i ] =
new FloatSpinBox(5 , -180.0 , 180.0 , 0 , 0.0);
133 FSaisieRotations [ i ] -> setWrapping (
true ) ;
134 boxRotations -> addWidget(FSaisieRotations [ i ] , Qt::AlignHCenter) ;
136 total -> addWidget(widRotations) ;
139 QWidget * widPoleNord =
new QWidget(
this) ;
140 QBoxLayout * boxPoleNord =
new QBoxLayout(QBoxLayout :: LeftToRight,
143 FTitrePoleNord =
new QLabel(
" PoleNord : " , widPoleNord) ;
144 boxPoleNord -> addWidget(FTitrePoleNord) ;
146 for (
int i = 0 ; i < 3 ; i++)
148 FAffPoleNord [ i ] =
new QLabel(coordLabels [ i ] , widPoleNord) ;
149 boxPoleNord -> addWidget(FAffPoleNord [ i ] , Qt::AlignHCenter) ;
151 FSaisiePoleNord [ i ] =
new FloatSpinBox(0.5, -1000 , 1000);
152 boxPoleNord -> addWidget(FSaisiePoleNord [ i ] , Qt::AlignHCenter) ;
155 total -> addWidget(widPoleNord) ;
158 QWidget * widEquateur =
new QWidget(
this) ;
159 QBoxLayout * boxEquateur =
new QBoxLayout(QBoxLayout :: LeftToRight,
162 FTitreEquateur =
new QLabel(
" Equator: " , widEquateur) ;
163 boxEquateur -> addWidget(FTitreEquateur) ;
165 for (
int i = 0 ; i < 3 ; i++)
167 FAffEquateur [ i ] =
new QLabel(coordLabels [ i ] , widEquateur) ;
168 boxEquateur -> addWidget(FAffEquateur [ i ] , Qt::AlignHCenter) ;
170 FSaisieEquateur [ i ] =
new FloatSpinBox(0.5, -1000 , 1000);
171 boxEquateur -> addWidget(FSaisieEquateur [ i ] , Qt::AlignHCenter) ;
174 total -> addWidget(widEquateur) ;
177 QWidget * widMasquer =
new QWidget(
this) ;
178 QBoxLayout * boxMasquer =
new QBoxLayout(QBoxLayout :: LeftToRight,
181 QIcon p1(
":/masquer.png");
182 FMasquer =
new QPushButton(p1 ,
"Hide" , widMasquer) ;
183 FMasquer -> setFixedSize(110 , 30) ;
184 FMasquer -> setShortcut(Qt::CTRL + Qt::Key_P) ;
185 FMasquer -> setFocus() ;
187 boxMasquer -> addWidget(FMasquer , Qt::AlignHCenter) ;
188 total -> addWidget(widMasquer) ;
191 for (
int i = 0 ; i < 3 ; i++)
193 QObject :: connect(FSaisieCentre [ i ] ,
194 SIGNAL(valueChanged(
double)),
195 this , SLOT(callbackCenter())) ;
196 QObject :: connect(FSaisieProportions [ i ] ,
197 SIGNAL(valueChanged(
double)) ,
this ,
198 SLOT(callbackProportions())) ;
199 QObject :: connect(FSaisieDimensions [ i ] ,
200 SIGNAL(valueChanged(
double)) ,
this ,
201 SLOT(callbackDimensions())) ;
202 QObject :: connect(FSaisieRotations [ i ] ,
203 SIGNAL(valueChanged(
double)) ,
this ,
204 SLOT(callbackRotations())) ;
205 QObject :: connect(FSaisiePoleNord [ i ] ,
206 SIGNAL(valueChanged(
double)) ,
this ,
207 SLOT(callbackFirstVertex())) ;
208 QObject :: connect(FSaisieEquateur [ i ] ,
209 SIGNAL(valueChanged(
double)) ,
this ,
210 SLOT(callbackNormalVector())) ;
212 QObject :: connect(FSaisieFacteur ,
213 SIGNAL(valueChanged(
double)) ,
this ,
214 SLOT(callbackScale())) ;
216 QObject :: connect(FMasquer ,
217 SIGNAL(clicked()) ,
this ,
220 Q3Accel * Raccourci =
new Q3Accel(
this) ;
221 Raccourci -> insertItem(QKeySequence(Qt::Key_Space) , 2) ;
222 Raccourci -> connectItem(2 , FLien , SLOT(cancel())) ;
235 CParameterObjectPosition* p =
236 FLien -> getControler() ->
237 getParameterObjectPosition(FNumObject) ;
239 FSaisieFacteur -> setValuef(p ->
getScale()) ;
241 FSaisieProportions[0]->
setValuef(p->getProportionX());
242 FSaisieProportions[1]->
setValuef(p->getProportionY());
243 FSaisieProportions[2]->
setValuef(p->getProportionZ());
245 FSaisieDimensions[0]->
setValuef(p->getDimensionX());
246 FSaisieDimensions[1]->
setValuef(p->getDimensionY());
247 FSaisieDimensions[2]->
setValuef(p->getDimensionZ());
249 FSaisieRotations[0]->setValue((
int)p->getRotationX());
250 FSaisieRotations[1]->setValue((
int)p->getRotationY());
251 FSaisieRotations[2]->setValue((
int)p->getRotationZ());
253 FSaisieCentre[0]->
setValuef(p->getCenterX());
254 FSaisieCentre[1]->
setValuef(p->getCenterY());
255 FSaisieCentre[2]->
setValuef(p->getCenterZ());
257 FSaisiePoleNord[0]->
setValuef(p->getFirstVertexX());
258 FSaisiePoleNord[1]->
setValuef(p->getFirstVertexY());
259 FSaisiePoleNord[2]->
setValuef(p->getFirstVertexZ());
261 FSaisieEquateur[0]->
setValuef(p->getNormalVectorX());
262 FSaisieEquateur[1]->
setValuef(p->getNormalVectorY());
263 FSaisieEquateur[2]->
setValuef(p->getNormalVectorZ());
270 void BoitePositionnement :: callbackScale()
276 void BoitePositionnement :: callbackProportions()
282 void BoitePositionnement :: callbackDimensions()
288 void BoitePositionnement :: callbackCenter()
294 void BoitePositionnement :: callbackRotations()
300 void BoitePositionnement :: callbackFirstVertex()
306 void BoitePositionnement :: callbackNormalVector()
317 return FSaisieFacteur -> valuef() ;
322 return CVertex(FSaisieProportions[0]-> valuef(),
323 FSaisieProportions[1]-> valuef(),
324 FSaisieProportions[2]-> valuef());
329 return CVertex(FSaisieDimensions[0]-> valuef(),
330 FSaisieDimensions[1]-> valuef(),
331 FSaisieDimensions[2]-> valuef());
336 return CVertex(FSaisieCentre[0]-> valuef(),
337 FSaisieCentre[1]-> valuef(),
338 FSaisieCentre[2]-> valuef());
343 return CVertex(FSaisieRotations[0]-> value(),
344 FSaisieRotations[1]-> value(),
345 FSaisieRotations[2]-> value());
350 return CVertex(FSaisiePoleNord[0]-> valuef(),
351 FSaisiePoleNord[1]-> valuef(),
352 FSaisiePoleNord[2]-> valuef());
357 return CVertex(FSaisieEquateur[0]-> valuef(),
358 FSaisieEquateur[1]-> valuef(),
359 FSaisieEquateur[2]-> valuef());
364 FSaisieProportions[1]->setEnabled(b);
365 FSaisieDimensions [1]->setEnabled(b);
370 FSaisieProportions[2]->setEnabled(b);
371 FSaisieDimensions [2]->setEnabled(b);
379 FLien->
getControler()->getParameterObjectPosition(FNumObject)->setScale(s);
387 getParameterObjectPosition(FNumObject)->setProportions(p);
395 getParameterObjectPosition(FNumObject)->setDimensions(d);
403 getParameterObjectPosition(FNumObject)->setRotations(alpha);
411 ->getParameterObjectPosition(FNumObject)->setCenter(C);
419 getParameterObjectPosition(FNumObject)->setFirstVertex(S);
427 getParameterObjectPosition(FNumObject)->setNormalVector(N);
435 FMasquer -> setFocus() ;