Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

Commit 177c864

Browse files
committed
Inlude cmath explicitly
1 parent 2d640cf commit 177c864

File tree

1 file changed

+38
-37
lines changed

1 file changed

+38
-37
lines changed

src/bin/gui/view.cpp

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include <iostream>
2222
#include <csignal>
23+
#include <cmath>
2324
#include <limits>
2425

2526
#include <QApplication>
@@ -48,7 +49,7 @@ class FrameEvent:
4849
QEvent(QEvent::User),
4950
frame(frame) {
5051
};
51-
52+
5253
const Pointer<Frame>& getFrame() const {
5354
return frame;
5455
}
@@ -69,23 +70,23 @@ class Window:
6970
blur(false) {
7071
setCentralWidget(&label);
7172
setStatusBar(&statusBar);
72-
73+
7374
centralWidget()->setAttribute(Qt::WA_TransparentForMouseEvents);
7475
setMouseTracking(true);
7576
}
76-
77+
7778
void setCalibrationFrame(const Frame& calibrationFrame) {
7879
this->calibrationFrame = calibrationFrame;
7980
}
80-
81+
8182
void setScale(double scale) {
8283
this->scale = scale;
8384
}
84-
85+
8586
void setClose(bool close) {
8687
this->close = close;
8788
}
88-
89+
8990
void setBlur(bool blur) {
9091
this->blur = blur;
9192
}
@@ -95,47 +96,47 @@ class Window:
9596

9697
Frame frame;
9798
Frame calibrationFrame;
98-
Frame lastCalibrationFrame;
99+
Frame lastCalibrationFrame;
99100
size_t frameId;
100-
101+
101102
Frame meanFrame;
102103
Frame varianceFrame;
103-
104+
104105
double scale;
105106
bool close;
106107
bool blur;
107-
108+
108109
void updateValue(const QPointF& position) {
109110
if (!frame.isEmpty()) {
110111
QPointF xy = position*1.0/scale;
111-
112-
size_t x = floor(xy.x());
112+
113+
size_t x = std::floor(xy.x());
113114
if (x >= frame.getWidth())
114115
x = frame.getWidth()-1;
115-
116-
size_t y = floor(xy.y());
116+
117+
size_t y = std::floor(xy.y());
117118
if (y >= frame.getHeight())
118119
y = frame.getHeight()-1;
119-
120+
120121
std::stringstream stream;
121122
stream << "(" << x << ", " << y << "): " << frame(x, y);
122-
123+
123124
statusBar.showMessage(stream.str().c_str());
124125
}
125126
}
126-
127+
127128
bool event(QEvent* event) {
128129
if (event->type() == QEvent::User) {
129130
FrameEvent* frameEvent = (FrameEvent*)event;
130131

131132
if (close && frameEvent->getFrame()->getType() == Frame::typeNormal) {
132133
double t = 1.0+frameId;
133134
Frame frame_t = *frameEvent->getFrame();
134-
135+
135136
if (frameId) {
136137
meanFrame *= (t-1.0)/t;
137138
meanFrame += frame_t*(1.0/t);
138-
139+
139140
varianceFrame *= (t-1.0)/t;
140141
frame_t -= meanFrame;
141142
frame_t *= frame_t;
@@ -146,45 +147,45 @@ class Window:
146147
meanFrame = frame_t*(1.0/t);
147148
varianceFrame.resize(meanFrame.getWidth(), meanFrame.getHeight());
148149
}
149-
150+
150151
++frameId;
151152
}
152-
153+
153154
if (frameEvent->getFrame()->getType() == Frame::typeNormal) {
154155
frame = *frameEvent->getFrame();
155156
size_t width = frame.getWidth();
156157
size_t height = frame.getHeight();
157-
158+
158159
if (!calibrationFrame.isEmpty())
159160
frame -= calibrationFrame;
160161
else if (!lastCalibrationFrame.isEmpty())
161162
frame -= lastCalibrationFrame;
162163

163164
float epsilon = std::numeric_limits<float>::epsilon();
164-
165+
165166
if (!varianceFrame.isEmpty()) {
166167
for (size_t x = 0; x < width; ++x)
167168
for (size_t y = 0; y < height; ++y)
168169
if (varianceFrame(x, y) < epsilon)
169170
frame.close(x, y);
170171
}
171-
172+
172173
frame.normalize();
173174
if (blur)
174175
frame.gaussianBlur();
175-
176+
176177
QImage image(width, height, QImage::Format_RGB888);
177178
for (size_t x = 0; x < width; ++x)
178179
for (size_t y = 0; y < height; ++y) {
179180
float value = frame(x, y)*255.0;
180181
image.setPixel(x, y, qRgb(value, value, value));
181182
}
182-
183+
183184
label.setPixmap(QPixmap::fromImage(
184185
image.scaled(image.size()*scale)));
185186
setFixedSize(label.pixmap()->width(), label.pixmap()->height()+
186187
statusBar.height());
187-
188+
188189
if (underMouse())
189190
updateValue(centralWidget()->mapFromGlobal(QCursor::pos()));
190191
}
@@ -194,7 +195,7 @@ class Window:
194195
else
195196
QMainWindow::event(event);
196197
}
197-
198+
198199
void mouseMoveEvent(QMouseEvent* event) {
199200
updateValue(centralWidget()->mapFromGlobal(event->globalPos()));
200201
}
@@ -208,20 +209,20 @@ class Worker:
208209
device(device),
209210
interruptRequested(false) {
210211
}
211-
212+
212213
void interrupt() {
213214
interruptRequested = true;
214215
wait();
215216
}
216217
protected:
217218
Pointer<Device> device;
218-
219+
219220
bool interruptRequested;
220-
221+
221222
void run() {
222223
while (!interruptRequested) {
223224
Pointer<Frame> frame = new Frame();
224-
225+
225226
device->capture(*frame);
226227

227228
if (parent()) {
@@ -257,7 +258,7 @@ int main(int argc, char **argv) {
257258
SeekThermal::Usb::Context context;
258259
Pointer<Interface> interface =
259260
context.getInterface(application[0].getValue());
260-
261+
261262
Pointer<Device> device;
262263
if (application["device"].getValue().empty())
263264
device = interface->discoverDevice();
@@ -269,11 +270,11 @@ int main(int argc, char **argv) {
269270
application["timeout"].getValue<size_t>()*1e-3);
270271
device->setInterface(interface);
271272
device->connect();
272-
273+
273274
device->initialize();
274275

275276
signal(SIGINT, signaled);
276-
277+
277278
QApplication qApplication(argc, argv);
278279
Window window;
279280
window.setScale(application["scale"].getValue<double>());
@@ -286,12 +287,12 @@ int main(int argc, char **argv) {
286287
calibrationFrame.load(application["calibration"].getValue());
287288
window.setCalibrationFrame(calibrationFrame);
288289
}
289-
290+
290291
window.show();
291292
worker.start();
292293
qApplication.exec();
293294
worker.interrupt();
294-
295+
295296
device->disconnect();
296297
}
297298
else {

0 commit comments

Comments
 (0)