-
Notifications
You must be signed in to change notification settings - Fork 2
/
mainwindow.cpp
81 lines (68 loc) · 1.92 KB
/
mainwindow.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::mainwindow)
{
ui->setupUi(this);
init();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::genSpline()
{
int inter = ui->slider_2->value();
double smooth = ui->slider_1->value();
ui->u_cv->options.interpolation = inter;
ui->u_cv->options.tension = smooth;
ui->u_cv->genSpline(true);
ui->u_cv->update();
}
void MainWindow::repaintSpline()
{
ui->u_cv->repaint();
ui->u_cv->update();
}
void MainWindow::interpolateChanged(int v)
{
ui->u_cv->options.interpolation = v;
ui->u_cv->genSpline();
ui->u_cv->update();
ui->int_plo->setText(QString::number(v));
}
void MainWindow::smoothChanged(double v)
{
ui->u_cv->options.tension = v;
ui->u_cv->genSpline();
ui->u_cv->update();
ui->slide_dg->setText(QString::number(v));
}
void MainWindow::realTimeRender(int s)
{
ui->u_cv->options.real_paint = bool(s);
ui->u_cv->genSpline();
ui->u_cv->update();
}
void MainWindow::splineTypeChanged(int index)
{
ui->u_cv->repaint();
ui->u_cv->options.sline_t = (Options::SplineType)index;
ui->u_cv->genSpline();
ui->u_cv->update();
}
void MainWindow::addCtrlPoint(int s)
{
ui->u_cv->options.add_cp_mode = !bool(s) ? Options::AddCtrlPos : Options::AdjustCtrlPos;
}
void MainWindow::init()
{
connect(ui->gen_line, &QPushButton::clicked, this, &MainWindow::genSpline);
connect(ui->repaint_btn, &QPushButton::clicked, this, &MainWindow::repaintSpline);
connect(ui->slider_1, SIGNAL(valueChanged(double)), this, SLOT(smoothChanged(double)));
connect(ui->slider_2, &QSlider::valueChanged, this, &MainWindow::interpolateChanged);
connect(ui->real_time, &QCheckBox::stateChanged, this, &MainWindow::realTimeRender);
connect(ui->add_ctrl_p, &QCheckBox::stateChanged, this, &MainWindow::addCtrlPoint);
connect(ui->samp_box, SIGNAL(currentIndexChanged(int)), this, SLOT(splineTypeChanged(int)));
}