Add stub for globalAxis checkbox
[agianapa.git] / qt / sphere-orbit-camera-gui / controlDialog.cpp
blob8e0c2951806aed1ddb2ea21001cc667cc86bacfc
1 #include <iostream>
2 //#include <QString>
3 //#include <QTextStream>
5 #include "controlDialog.h"
6 #include "myglwidget.h"
8 ControlDialog::ControlDialog(QWidget *parent)
9 : QDialog(parent)
11 std::cout << "ControlDialog::ControlDialog()\n";
13 setupUi(this);
15 // Connect signals
16 connect(this, SIGNAL(glSceneNeedsUpdate()), &m_GLScene, SLOT(updateGL()));
18 connect(fileNameEdit, SIGNAL(returnPressed()), this, SLOT(on_fileNameChangedManually()));
19 connect(this, SIGNAL(fileNameChanged(QString)), &m_GLScene, SLOT(setFileName(QString)));
21 // Initialize axis, camera, sphere.
22 // XXX: axis
23 m_axisX.setColor(QColor(255, 0, 0));
24 m_axisY.setColor(QColor(0, 255, 0));
25 m_axisZ.setColor(QColor(0, 0, 255));
27 // Camera
28 m_camera.setEyeX(eyeXEdit->text().toFloat());
29 m_camera.setEyeY(eyeYEdit->text().toFloat());
30 m_camera.setEyeZ(eyeZEdit->text().toFloat());
32 m_camera.setCenterX(centerXEdit->text().toFloat());
33 m_camera.setCenterY(centerYEdit->text().toFloat());
34 m_camera.setCenterZ(centerZEdit->text().toFloat());
36 m_camera.setUpX(upXEdit->text().toFloat());
37 m_camera.setUpY(upYEdit->text().toFloat());
38 m_camera.setUpZ(upZEdit->text().toFloat());
40 // Sphere
41 m_sphere.setRadius(radiusSpin->value());
42 m_sphere.setSlices(slicesSpin->value());
43 m_sphere.setStacks(stacksSpin->value());
44 m_sphere.setCulling(cullingCheck->checkState() == Qt::Checked ?
45 true : false);
47 // Pass objects to GL scene.
48 m_GLScene.setAxis(AXIS_X, &m_axisX);
49 m_GLScene.setAxis(AXIS_Y, &m_axisY);
50 m_GLScene.setAxis(AXIS_Z, &m_axisZ);
52 m_GLScene.setCamera(&m_camera);
54 m_GLScene.setSphere(&m_sphere);
56 // Show scene and start animating.
57 m_GLScene.setWindowTitle("GL Scene");
58 // Window manager might ignore the following line.
59 m_GLScene.move(pos().x() + frameGeometry().width(), pos().y());
60 m_GLScene.show();
61 //m_GLScene.startAnimation();
64 ControlDialog::~ControlDialog()
66 std::cout << "ControlDialog::~ControlDialog()\n";
70 void ControlDialog::on_startButton_clicked()
72 std::cout << "ControlDialog::on_startButton_clicked()\n";
74 m_GLScene.startAnimation();
75 stopButton->setEnabled(true);
78 void ControlDialog::on_stopButton_clicked()
80 std::cout << "ControlDialog::on_stopButton_clicked()\n";
82 m_GLScene.stopAnimation();
83 stopButton->setEnabled(false);
86 void ControlDialog::on_exitButton_clicked()
88 // qApp is a global pointer referring to the unique application object.
89 qApp->closeAllWindows();
92 void ControlDialog::on_globalAxisCheck_stateChanged(int state)
94 std::cout << "ControlDialog::on_globalAxis_stateChanged()\n";
95 std::cout << "New state = " << state << "\n";
98 void ControlDialog::on_stacksSpin_valueChanged(int i)
100 std::cout << "ControlDialog::on_stacksSpin_valueChanged()\n";
101 std::cout << "New stacks = " << i << "\n";
103 m_sphere.setStacks(i);
105 emit glSceneNeedsUpdate();
108 void ControlDialog::on_slicesSpin_valueChanged(int i)
110 std::cout << "ControlDialog::on_slicesSpin_valueChanged()\n";
111 std::cout << "Niew slices = " << i << "\n";
113 m_sphere.setSlices(i);
115 emit glSceneNeedsUpdate();
118 void ControlDialog::on_radiusSpin_valueChanged(double d)
120 std::cout << "ControlDialog::on_radiusSpin_valueChanged()\n";
121 std::cout << "New radius = " << d << "\n";
123 m_sphere.setRadius(d);
125 emit glSceneNeedsUpdate();
128 void ControlDialog::on_cullingCheck_stateChanged(int state)
130 std::cout << "ControlDialog::on_cullingCheck_stateChanged()\n";
131 std::cout << "New state = " << state << "\n";
133 m_sphere.setCulling(state == Qt::Checked ? true : false);
136 // Camera tab related slots
138 void ControlDialog::on_eyeXEdit_textChanged(const QString& text)
140 std::cout << "ControlDialog::on_eyeXEdit_textChanged()\n";
141 std::cout << "New eye X = " << text.toFloat() << "\n";
143 m_camera.setEyeX(text.toFloat());
144 emit glSceneNeedsUpdate();
147 void ControlDialog::on_eyeYEdit_textChanged(const QString& text)
149 std::cout << "ControlDialog::on_eyeYEdit_textChanged()\n";
150 std::cout << "New eye Y = " << text.toFloat() << "\n";
152 m_camera.setEyeY(text.toFloat());
153 emit glSceneNeedsUpdate();
156 void ControlDialog::on_eyeZEdit_textChanged(const QString& text)
158 std::cout << "ControlDialog::on_eyeZEdit_textChanged()\n";
159 std::cout << "New eye Z = " << text.toFloat() << "\n";
161 m_camera.setEyeZ(text.toFloat());
162 emit glSceneNeedsUpdate();
165 void ControlDialog::on_centerXEdit_textChanged(const QString& text)
167 std::cout << "ControlDialog::on_centerXEdit_textChanged()\n";
168 std::cout << "New center X = " << text.toFloat() << "\n";
170 m_camera.setCenterX(text.toFloat());
171 emit glSceneNeedsUpdate();
174 void ControlDialog::on_centerYEdit_textChanged(const QString& text)
176 std::cout << "ControlDialog::on_centerYEdit_textChanged()\n";
177 std::cout << "New center Y = " << text.toFloat() << "\n";
179 m_camera.setCenterY(text.toFloat());
180 emit glSceneNeedsUpdate();
183 void ControlDialog::on_centerZEdit_textChanged(const QString& text)
185 std::cout << "ControlDialog::on_upZEdit_textChanged()\n";
186 std::cout << "New center Z = " << text.toFloat() << "\n";
188 m_camera.setCenterZ(text.toFloat());
189 emit glSceneNeedsUpdate();
192 void ControlDialog::on_upXEdit_textChanged(const QString& text)
194 std::cout << "ControlDialog::on_upXEdit_textChanged()\n";
195 std::cout << "New up X = " << text.toFloat() << "\n";
197 m_camera.setUpX(text.toFloat());
198 emit glSceneNeedsUpdate();
201 void ControlDialog::on_upYEdit_textChanged(const QString& text)
203 std::cout << "ControlDialog::on_upYEdit_textChanged()\n";
204 std::cout << "New up Y = " << text.toFloat() << "\n";
206 m_camera.setUpY(text.toFloat());
207 emit glSceneNeedsUpdate();
210 void ControlDialog::on_upZEdit_textChanged(const QString& text)
212 std::cout << "ControlDialog::on_upZEdit_textChanged()\n";
213 std::cout << "New up Z = " << text.toFloat() << "\n";
215 m_camera.setUpZ(text.toFloat());
216 emit glSceneNeedsUpdate();
219 void ControlDialog::on_browseFileButton_clicked(void)
221 QString fileName;
222 std::cout << "ControlDialog::on_browseFileButton_clicked()\n";
224 fileName = QFileDialog::getOpenFileName(this, tr("Open data file"),
225 "/home", "Data files(*.dat);; All files(*)");
226 if (fileName == NULL)
227 return;
229 fileNameEdit->setText(fileName);
230 emit fileNameChanged(fileName);
233 void ControlDialog::on_fileNameChangedManually(void)
235 QString fileName = fileNameEdit->text();
237 emit fileNameChanged(fileName);