aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorDavid Doan <daviddoan@Davids-MacBook-Pro-100.local>2023-12-08 15:04:09 -0500
committerDavid Doan <daviddoan@Davids-MacBook-Pro-100.local>2023-12-08 15:04:09 -0500
commita44bcf18656062785c89e8fde25c232431b0d585 (patch)
tree5bcc3c702eb4568353c614c9b0c5d48fdbb8f223 /src/mainwindow.cpp
parente82bbe93fbca3fdb3d77e33bfc0b7c957fbe2f87 (diff)
camera movement
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp73
1 files changed, 61 insertions, 12 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 5da720b..088fa1c 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -43,6 +43,9 @@ void MainWindow::initialize() {
QLabel *zw_label = new QLabel(); // ZW label
zw_label->setText("ZW value:");
zw_label->setFont(font);
+ QLabel *w_label = new QLabel(); // W label
+ w_label->setText("W value:");
+ w_label->setFont(font);
QLabel *rotation_label = new QLabel(); // Rotation label
rotation_label->setText("Rotation value:");
@@ -61,12 +64,12 @@ void MainWindow::initialize() {
xySlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
xySlider->setTickInterval(1);
- xySlider->setMinimum(-36000);
+ xySlider->setMinimum(0);
xySlider->setMaximum(36000);
xySlider->setValue(0);
xyBox = new QDoubleSpinBox();
- xyBox->setMinimum(-360.0f);
+ xyBox->setMinimum(0.0f);
xyBox->setMaximum(360.f);
xyBox->setSingleStep(1.f);
xyBox->setValue(0.f);
@@ -81,12 +84,12 @@ void MainWindow::initialize() {
xzSlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
xzSlider->setTickInterval(1);
- xzSlider->setMinimum(-36000);
+ xzSlider->setMinimum(0);
xzSlider->setMaximum(36000);
xzSlider->setValue(0);
xzBox = new QDoubleSpinBox();
- xzBox->setMinimum(-360.0f);
+ xzBox->setMinimum(0.0f);
xzBox->setMaximum(360.f);
xzBox->setSingleStep(1.f);
xzBox->setValue(0.f);
@@ -101,12 +104,12 @@ void MainWindow::initialize() {
xwSlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
xwSlider->setTickInterval(1);
- xwSlider->setMinimum(-36000);
+ xwSlider->setMinimum(0);
xwSlider->setMaximum(36000);
xwSlider->setValue(0);
xwBox = new QDoubleSpinBox();
- xwBox->setMinimum(-360.0f);
+ xwBox->setMinimum(0.0f);
xwBox->setMaximum(360.f);
xwBox->setSingleStep(1.f);
xwBox->setValue(0.f);
@@ -121,12 +124,12 @@ void MainWindow::initialize() {
yzSlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
yzSlider->setTickInterval(1);
- yzSlider->setMinimum(-36000);
+ yzSlider->setMinimum(0);
yzSlider->setMaximum(36000);
yzSlider->setValue(0);
yzBox = new QDoubleSpinBox();
- yzBox->setMinimum(-360.0f);
+ yzBox->setMinimum(0.0f);
yzBox->setMaximum(360.f);
yzBox->setSingleStep(1.f);
yzBox->setValue(0.f);
@@ -141,12 +144,12 @@ void MainWindow::initialize() {
ywSlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
ywSlider->setTickInterval(1);
- ywSlider->setMinimum(-36000);
+ ywSlider->setMinimum(0);
ywSlider->setMaximum(36000);
ywSlider->setValue(0);
ywBox = new QDoubleSpinBox();
- ywBox->setMinimum(-360.0f);
+ ywBox->setMinimum(0.0f);
ywBox->setMaximum(360.f);
ywBox->setSingleStep(1.f);
ywBox->setValue(0.f);
@@ -161,12 +164,12 @@ void MainWindow::initialize() {
zwSlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
zwSlider->setTickInterval(1);
- zwSlider->setMinimum(-36000);
+ zwSlider->setMinimum(0);
zwSlider->setMaximum(36000);
zwSlider->setValue(0);
zwBox = new QDoubleSpinBox();
- zwBox->setMinimum(-360.0f);
+ zwBox->setMinimum(0.0f);
zwBox->setMaximum(360.f);
zwBox->setSingleStep(1.f);
zwBox->setValue(0.f);
@@ -200,6 +203,27 @@ void MainWindow::initialize() {
rotateNegative->setText(QStringLiteral("Reverse Rotation"));
rotateNegative->setChecked(false);
+ // w Slider
+ QGroupBox *wLayout = new QGroupBox(); // horizonal w slider alignment
+ QHBoxLayout *lw = new QHBoxLayout();
+
+ wSlider = new QSlider(Qt::Orientation::Horizontal); // XY value slider
+ wSlider->setTickInterval(1);
+ wSlider->setMinimum(-5000);
+ wSlider->setMaximum(5000);
+ wSlider->setValue(0);
+
+ wBox = new QDoubleSpinBox();
+ wBox->setMinimum(-50.0f);
+ wBox->setMaximum(50.f);
+ wBox->setSingleStep(1.f);
+ wBox->setValue(0.f);
+
+ lw->addWidget(wSlider);
+ lw->addWidget(wBox);
+ wLayout->setLayout(lw);
+
+
vLayout->addWidget(uploadFile);
vLayout->addWidget(saveImage);
vLayout->addWidget(xy_label);
@@ -214,11 +238,14 @@ void MainWindow::initialize() {
vLayout->addWidget(ywLayout);
vLayout->addWidget(zw_label);
vLayout->addWidget(zwLayout);
+ vLayout->addWidget(w_label);
+ vLayout->addWidget(wLayout);
vLayout->addWidget(rotation_label);
vLayout->addWidget(rotationLayout);
vLayout->addWidget(rotateNegative);
+
connectUIElements();
onValChangexyBox(0.0f);
@@ -228,6 +255,7 @@ void MainWindow::initialize() {
onValChangeywBox(0.0f);
onValChangezwBox(0.0f);
onValChangeRotationBox(1.0f);
+ onValChangeWBox(0.0f);
}
void MainWindow::finish() {
@@ -252,6 +280,7 @@ void MainWindow::connectUIElements() {
connect(rayTracer, &RayTracer::yzRotationChanged, this, &MainWindow::updateYzSlider);
connect(rayTracer, &RayTracer::ywRotationChanged, this, &MainWindow::updateYwSlider);
connect(rayTracer, &RayTracer::zwRotationChanged, this, &MainWindow::updateZwSlider);
+ connectW();
}
void MainWindow::connectUploadFile() {
@@ -308,6 +337,12 @@ void MainWindow::connectNegativeRotation() {
connect(rotateNegative, &QCheckBox::clicked, this, &MainWindow::onRotateNegative);
}
+void MainWindow::connectW() {
+ connect(wSlider, &QSlider::valueChanged, this, &MainWindow::onValChangeWSlider);
+ connect(wBox, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
+ this, &MainWindow::onValChangeWBox);
+}
+
void MainWindow::onUploadFile() {
// Get abs path of scene file
QString configFilePath = QFileDialog::getOpenFileName(this, tr("Upload File"),
@@ -449,6 +484,20 @@ void MainWindow::onValChangeRotationBox(double newValue) {
rayTracer->settingsChanged(imageLabel);
}
+void MainWindow::onValChangeWSlider(int newValue) {
+ //wSlider->setValue(newValue);
+ wBox->setValue(newValue/100.f);
+ settings.w = wBox->value();
+ rayTracer->settingsChanged(imageLabel);
+}
+
+void MainWindow::onValChangeWBox(double newValue) {
+ wSlider->setValue(int(newValue*100.f));
+ //wBox->setValue(newValue);
+ settings.w = wBox->value();
+ rayTracer->settingsChanged(imageLabel);
+}
+
void MainWindow::onRotateNegative() {
settings.negative = !settings.negative;
}