Remove object file
[agianapa.git] / qt / sphere-orbit-camera-gui / controlDialog.cpp
blobcb270622b2f07bfe865b365c3563c49772984f28
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));
26 m_localAxisSystem = false;
28 // Camera
29 m_camera.setEyeX(eyeXEdit->text().toFloat());
30 m_camera.setEyeY(eyeYEdit->text().toFloat());
31 m_camera.setEyeZ(eyeZEdit->text().toFloat());
33 m_camera.setCenterX(centerXEdit->text().toFloat());
34 m_camera.setCenterY(centerYEdit->text().toFloat());
35 m_camera.setCenterZ(centerZEdit->text().toFloat());
37 m_camera.setUpX(upXEdit->text().toFloat());
38 m_camera.setUpY(upYEdit->text().toFloat());
39 m_camera.setUpZ(upZEdit->text().toFloat());
41 // Sphere
42 m_sphere.setRadius(radiusSpin->value());
43 m_sphere.setSlices(slicesSpin->value());
44 m_sphere.setStacks(stacksSpin->value());
45 m_sphere.setCulling(cullingCheck->checkState() == Qt::Checked ?
46 true : false);
48 // Pass objects to GL scene.
49 m_GLScene.setAxis(AXIS_X, &m_axisX);
50 m_GLScene.setAxis(AXIS_Y, &m_axisY);
51 m_GLScene.setAxis(AXIS_Z, &m_axisZ);
53 m_GLScene.setCamera(&m_camera);
55 m_GLScene.setSphere(&m_sphere);
57 // Show scene and start animating.
58 m_GLScene.setWindowTitle("GL Scene");
59 // Window manager might ignore the following line.
60 m_GLScene.move(pos().x() + frameGeometry().width(), pos().y());
61 m_GLScene.show();
62 //m_GLScene.startAnimation();
65 ControlDialog::~ControlDialog()
67 std::cout << "ControlDialog::~ControlDialog()\n";
71 void ControlDialog::on_startButton_clicked()
73 std::cout << "ControlDialog::on_startButton_clicked()\n";
75 m_GLScene.startAnimation();
76 stopButton->setEnabled(true);
79 void ControlDialog::on_stopButton_clicked()
81 std::cout << "ControlDialog::on_stopButton_clicked()\n";
83 m_GLScene.stopAnimation();
84 stopButton->setEnabled(false);
87 void ControlDialog::on_exitButton_clicked()
89 // qApp is a global pointer referring to the unique application object.
90 qApp->closeAllWindows();
93 void ControlDialog::on_xAxisVisibleCheck_stateChanged(int state)
95 std::cout << "ControlDialog::on_xAxisVisibleCheck_stateChanged()\n";
96 std::cout << "New state = " << state << "\n";
98 m_axisX.setVisible(state == Qt::Checked ? true : false);
99 emit glSceneNeedsUpdate();
102 void ControlDialog::on_yAxisVisibleCheck_stateChanged(int state)
104 std::cout << "ControlDialog::on_yAxisVisibleCheck_stateChanged()\n";
105 std::cout << "New state = " << state << "\n";
107 m_axisY.setVisible(state == Qt::Checked ? true : false);
108 emit glSceneNeedsUpdate();
111 void ControlDialog::on_zAxisVisibleCheck_stateChanged(int state)
113 std::cout << "ControlDialog::on_zAxisVisibleCheck_stateChanged()\n";
114 std::cout << "New state = " << state << "\n";
116 m_axisZ.setVisible(state == Qt::Checked ? true : false);
117 emit glSceneNeedsUpdate();
120 void ControlDialog::on_localAxisCheck_stateChanged(int state)
122 std::cout << "ControlDialog::on_localAxisCheck_stateChanged()\n";
123 std::cout << "New state = " << state << "\n";
125 m_axisX.setLocal(state == Qt::Checked ? true : false);
126 m_axisY.setLocal(state == Qt::Checked ? true : false);
127 m_axisZ.setLocal(state == Qt::Checked ? true : false);
128 emit glSceneNeedsUpdate();
131 void ControlDialog::on_stacksSpin_valueChanged(int i)
133 std::cout << "ControlDialog::on_stacksSpin_valueChanged()\n";
134 std::cout << "New stacks = " << i << "\n";
136 m_sphere.setStacks(i);
138 emit glSceneNeedsUpdate();
141 void ControlDialog::on_slicesSpin_valueChanged(int i)
143 std::cout << "ControlDialog::on_slicesSpin_valueChanged()\n";
144 std::cout << "Niew slices = " << i << "\n";
146 m_sphere.setSlices(i);
148 emit glSceneNeedsUpdate();
151 void ControlDialog::on_radiusSpin_valueChanged(double d)
153 std::cout << "ControlDialog::on_radiusSpin_valueChanged()\n";
154 std::cout << "New radius = " << d << "\n";
156 m_sphere.setRadius(d);
158 emit glSceneNeedsUpdate();
161 void ControlDialog::on_cullingCheck_stateChanged(int state)
163 std::cout << "ControlDialog::on_cullingCheck_stateChanged()\n";
164 std::cout << "New state = " << state << "\n";
166 m_sphere.setCulling(state == Qt::Checked ? true : false);
169 // Camera tab related slots
171 void ControlDialog::on_eyeXEdit_textChanged(const QString& text)
173 std::cout << "ControlDialog::on_eyeXEdit_textChanged()\n";
174 std::cout << "New eye X = " << text.toFloat() << "\n";
176 m_camera.setEyeX(text.toFloat());
177 emit glSceneNeedsUpdate();
180 void ControlDialog::on_eyeYEdit_textChanged(const QString& text)
182 std::cout << "ControlDialog::on_eyeYEdit_textChanged()\n";
183 std::cout << "New eye Y = " << text.toFloat() << "\n";
185 m_camera.setEyeY(text.toFloat());
186 emit glSceneNeedsUpdate();
189 void ControlDialog::on_eyeZEdit_textChanged(const QString& text)
191 std::cout << "ControlDialog::on_eyeZEdit_textChanged()\n";
192 std::cout << "New eye Z = " << text.toFloat() << "\n";
194 m_camera.setEyeZ(text.toFloat());
195 emit glSceneNeedsUpdate();
198 void ControlDialog::on_centerXEdit_textChanged(const QString& text)
200 std::cout << "ControlDialog::on_centerXEdit_textChanged()\n";
201 std::cout << "New center X = " << text.toFloat() << "\n";
203 m_camera.setCenterX(text.toFloat());
204 emit glSceneNeedsUpdate();
207 void ControlDialog::on_centerYEdit_textChanged(const QString& text)
209 std::cout << "ControlDialog::on_centerYEdit_textChanged()\n";
210 std::cout << "New center Y = " << text.toFloat() << "\n";
212 m_camera.setCenterY(text.toFloat());
213 emit glSceneNeedsUpdate();
216 void ControlDialog::on_centerZEdit_textChanged(const QString& text)
218 std::cout << "ControlDialog::on_upZEdit_textChanged()\n";
219 std::cout << "New center Z = " << text.toFloat() << "\n";
221 m_camera.setCenterZ(text.toFloat());
222 emit glSceneNeedsUpdate();
225 void ControlDialog::on_upXEdit_textChanged(const QString& text)
227 std::cout << "ControlDialog::on_upXEdit_textChanged()\n";
228 std::cout << "New up X = " << text.toFloat() << "\n";
230 m_camera.setUpX(text.toFloat());
231 emit glSceneNeedsUpdate();
234 void ControlDialog::on_upYEdit_textChanged(const QString& text)
236 std::cout << "ControlDialog::on_upYEdit_textChanged()\n";
237 std::cout << "New up Y = " << text.toFloat() << "\n";
239 m_camera.setUpY(text.toFloat());
240 emit glSceneNeedsUpdate();
243 void ControlDialog::on_upZEdit_textChanged(const QString& text)
245 std::cout << "ControlDialog::on_upZEdit_textChanged()\n";
246 std::cout << "New up Z = " << text.toFloat() << "\n";
248 m_camera.setUpZ(text.toFloat());
249 emit glSceneNeedsUpdate();
252 void ControlDialog::on_browseFileButton_clicked(void)
254 QString fileName;
255 std::cout << "ControlDialog::on_browseFileButton_clicked()\n";
257 fileName = QFileDialog::getOpenFileName(this, tr("Open data file"),
258 "/home", "Data files(*.dat);; All files(*)");
259 if (fileName == NULL)
260 return;
262 fileNameEdit->setText(fileName);
263 emit fileNameChanged(fileName);
266 void ControlDialog::on_fileNameChangedManually(void)
268 QString fileName = fileNameEdit->text();
270 emit fileNameChanged(fileName);