From c58c0af311892929dbce4e5437c4035214552438 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 14 Sep 2013 15:34:44 +0200 Subject: Run dos2unix on the tree. No user-facing changes. --- ftnoir_posewidget/glwidget.h | 232 +++++++++++++++++++++---------------------- 1 file changed, 116 insertions(+), 116 deletions(-) (limited to 'ftnoir_posewidget/glwidget.h') diff --git a/ftnoir_posewidget/glwidget.h b/ftnoir_posewidget/glwidget.h index 9525f7d4..f46f3c9e 100644 --- a/ftnoir_posewidget/glwidget.h +++ b/ftnoir_posewidget/glwidget.h @@ -1,116 +1,116 @@ -/******************************************************************************** -* FaceTrackNoIR This program is a private project of the some enthusiastic * -* gamers from Holland, who don't like to pay much for * -* head-tracking. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Researching and Testing) * -* * -* Homepage * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -*********************************************************************************/ - -#ifndef GLWIDGET_H -#define GLWIDGET_H - -#include -#include -#include "ftnoir_tracker_base/ftnoir_tracker_base.h" - -struct Point { - Point(int x, int y) : - x(x), y(y) - { - } - Point() : - x(0), y(0) - { - } - int x, y; -}; - -struct Vec3f { - double x, y, z; - Vec3f(double x, double y, double z) : - x(x), y(y), z(z) - { - } - Vec3f() : - x(0), y(0), z(0) - { - } -}; - -struct Vec2f { - double x, y; - Vec2f(double x, double y) : - x(x), y(y) - { - } - Vec2f() : - x(0), y(0) - { - } -}; - -class FTNOIR_TRACKER_BASE_EXPORT GLWidget : public QWidget -{ - Q_OBJECT - -public: - GLWidget(QWidget *parent); - ~GLWidget(); - void rotateBy(double xAngle, double yAngle, double zAngle); - -protected: - void paintEvent ( QPaintEvent * event ); - -private: - Point project(const Vec3f& point) { - Point rect; - - rect.x = point.x * matrix[0] - + point.y * matrix[1] - + point.z * matrix[2]; - rect.y = point.x * matrix[3] - + point.y * matrix[4] - + point.z * matrix[5]; - - return rect; - } - Vec3f project2(const Vec3f& point) { - Vec3f rect; - - rect.x = point.x * matrix[0] - + point.y * matrix[1] - + point.z * matrix[2]; - rect.y = point.x * matrix[3] - + point.y * matrix[4] - + point.z * matrix[5]; - rect.z = point.x * matrix[6] - + point.y * matrix[7] - + point.z * matrix[8]; - return rect; - } - void project_quad_texture(); - double matrix[9]; - QImage front; - QImage back; - QPixmap pixmap; -}; - -#endif +/******************************************************************************** +* FaceTrackNoIR This program is a private project of the some enthusiastic * +* gamers from Holland, who don't like to pay much for * +* head-tracking. * +* * +* Copyright (C) 2010 Wim Vriend (Developing) * +* Ron Hendriks (Researching and Testing) * +* * +* Homepage * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 3 of the License, or (at your * +* option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but * +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * +* more details. * +* * +* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * +* * +* You should have received a copy of the GNU General Public License along * +* with this program; if not, see . * +*********************************************************************************/ + +#ifndef GLWIDGET_H +#define GLWIDGET_H + +#include +#include +#include "ftnoir_tracker_base/ftnoir_tracker_base.h" + +struct Point { + Point(int x, int y) : + x(x), y(y) + { + } + Point() : + x(0), y(0) + { + } + int x, y; +}; + +struct Vec3f { + double x, y, z; + Vec3f(double x, double y, double z) : + x(x), y(y), z(z) + { + } + Vec3f() : + x(0), y(0), z(0) + { + } +}; + +struct Vec2f { + double x, y; + Vec2f(double x, double y) : + x(x), y(y) + { + } + Vec2f() : + x(0), y(0) + { + } +}; + +class FTNOIR_TRACKER_BASE_EXPORT GLWidget : public QWidget +{ + Q_OBJECT + +public: + GLWidget(QWidget *parent); + ~GLWidget(); + void rotateBy(double xAngle, double yAngle, double zAngle); + +protected: + void paintEvent ( QPaintEvent * event ); + +private: + Point project(const Vec3f& point) { + Point rect; + + rect.x = point.x * matrix[0] + + point.y * matrix[1] + + point.z * matrix[2]; + rect.y = point.x * matrix[3] + + point.y * matrix[4] + + point.z * matrix[5]; + + return rect; + } + Vec3f project2(const Vec3f& point) { + Vec3f rect; + + rect.x = point.x * matrix[0] + + point.y * matrix[1] + + point.z * matrix[2]; + rect.y = point.x * matrix[3] + + point.y * matrix[4] + + point.z * matrix[5]; + rect.z = point.x * matrix[6] + + point.y * matrix[7] + + point.z * matrix[8]; + return rect; + } + void project_quad_texture(); + double matrix[9]; + QImage front; + QImage back; + QPixmap pixmap; +}; + +#endif -- cgit v1.2.3 From 352f02ba874510d32ce5d2e6972f68bc1c7d14ea Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 14 Sep 2013 18:21:15 +0200 Subject: Update copyright information for rewritten class --- ftnoir_posewidget/glwidget.h | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) (limited to 'ftnoir_posewidget/glwidget.h') diff --git a/ftnoir_posewidget/glwidget.h b/ftnoir_posewidget/glwidget.h index f46f3c9e..0bb693c8 100644 --- a/ftnoir_posewidget/glwidget.h +++ b/ftnoir_posewidget/glwidget.h @@ -1,28 +1,9 @@ -/******************************************************************************** -* FaceTrackNoIR This program is a private project of the some enthusiastic * -* gamers from Holland, who don't like to pay much for * -* head-tracking. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Researching and Testing) * -* * -* Homepage * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* Adopted this widget from the 'textures' sample of the Nokia Qt toolkit. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -*********************************************************************************/ +/* Copyright (c) 2013 Stanislaw Halik + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + */ #ifndef GLWIDGET_H #define GLWIDGET_H -- cgit v1.2.3 From 79119a08157aa954b3b2ecd18c8384b80a03970f Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 4 Dec 2013 18:46:27 +0100 Subject: draw images directly, without pixmaps --- FTNoIR_Tracker_PT/pt_video_widget.cpp | 2 +- FTNoIR_Tracker_PT/pt_video_widget.h | 4 ++-- ftnoir_posewidget/glwidget.cpp | 4 ++-- ftnoir_posewidget/glwidget.h | 2 +- ftnoir_tracker_aruco/ar_video_widget.cpp | 2 +- ftnoir_tracker_aruco/ar_video_widget.h | 4 ++-- ftnoir_tracker_ht/ht_video_widget.cpp | 2 +- ftnoir_tracker_ht/ht_video_widget.h | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) (limited to 'ftnoir_posewidget/glwidget.h') diff --git a/FTNoIR_Tracker_PT/pt_video_widget.cpp b/FTNoIR_Tracker_PT/pt_video_widget.cpp index d0fc8d42..5ac002f4 100644 --- a/FTNoIR_Tracker_PT/pt_video_widget.cpp +++ b/FTNoIR_Tracker_PT/pt_video_widget.cpp @@ -57,6 +57,6 @@ void PTVideoWidget::update_and_repaint() data[y * pitch + x * 3 + 2] = elt2.val[0]; } qframe = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation); - pixmap = QPixmap::fromImage(qframe); + texture = qframe; update(); } diff --git a/FTNoIR_Tracker_PT/pt_video_widget.h b/FTNoIR_Tracker_PT/pt_video_widget.h index f5663e47..acff43fb 100644 --- a/FTNoIR_Tracker_PT/pt_video_widget.h +++ b/FTNoIR_Tracker_PT/pt_video_widget.h @@ -40,12 +40,12 @@ protected slots: void paintEvent( QPaintEvent* e ) { QMutexLocker foo(&mtx); QPainter painter(this); - painter.drawPixmap(e->rect(), pixmap, e->rect()); + painter.drawImage(e->rect(), texture); } void update_and_repaint(); private: QMutex mtx; - QPixmap pixmap; + QImage texture; QTimer timer; cv::Mat _frame; }; diff --git a/ftnoir_posewidget/glwidget.cpp b/ftnoir_posewidget/glwidget.cpp index 71af8a08..93c98c9c 100644 --- a/ftnoir_posewidget/glwidget.cpp +++ b/ftnoir_posewidget/glwidget.cpp @@ -26,7 +26,7 @@ void GLWidget::paintEvent ( QPaintEvent * event ) { QWidget::paintEvent(event); QPainter p(this); project_quad_texture(); - p.drawPixmap(event->rect(), pixmap, event->rect()); + p.drawImage(event->rect(), texture); } void GLWidget::rotateBy(double xAngle, double yAngle, double zAngle) @@ -226,5 +226,5 @@ void GLWidget::project_quad_texture() { } } } - pixmap = QPixmap::fromImage(texture); + this->texture = texture; } diff --git a/ftnoir_posewidget/glwidget.h b/ftnoir_posewidget/glwidget.h index 0bb693c8..c4b2e09d 100644 --- a/ftnoir_posewidget/glwidget.h +++ b/ftnoir_posewidget/glwidget.h @@ -91,7 +91,7 @@ private: double matrix[9]; QImage front; QImage back; - QPixmap pixmap; + QImage texture; }; #endif diff --git a/ftnoir_tracker_aruco/ar_video_widget.cpp b/ftnoir_tracker_aruco/ar_video_widget.cpp index c452a638..9a089213 100644 --- a/ftnoir_tracker_aruco/ar_video_widget.cpp +++ b/ftnoir_tracker_aruco/ar_video_widget.cpp @@ -37,6 +37,6 @@ void ArucoVideoWidget::update_and_repaint() } } auto qframe2 = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation); - pixmap = QPixmap::fromImage(qframe2); + texture = qframe2; update(); } diff --git a/ftnoir_tracker_aruco/ar_video_widget.h b/ftnoir_tracker_aruco/ar_video_widget.h index b95d1873..e2cf4d9f 100644 --- a/ftnoir_tracker_aruco/ar_video_widget.h +++ b/ftnoir_tracker_aruco/ar_video_widget.h @@ -33,13 +33,13 @@ protected slots: void paintEvent( QPaintEvent* e ) { QMutexLocker foo(&mtx); QPainter painter(this); - painter.drawPixmap(e->rect(), pixmap, e->rect()); + painter.drawImage(e->rect(), texture); } void update_and_repaint(); private: QMutex mtx; - QPixmap pixmap; + QImage texture; QTimer timer; cv::Mat _frame; }; diff --git a/ftnoir_tracker_ht/ht_video_widget.cpp b/ftnoir_tracker_ht/ht_video_widget.cpp index 8ccec997..c6d59b34 100644 --- a/ftnoir_tracker_ht/ht_video_widget.cpp +++ b/ftnoir_tracker_ht/ht_video_widget.cpp @@ -39,6 +39,6 @@ void HTVideoWidget::update_and_repaint() } } auto qframe2 = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation); - pixmap = QPixmap::fromImage(qframe2); + texture = qframe2; update(); } diff --git a/ftnoir_tracker_ht/ht_video_widget.h b/ftnoir_tracker_ht/ht_video_widget.h index 3fff395e..cbfe6ddc 100644 --- a/ftnoir_tracker_ht/ht_video_widget.h +++ b/ftnoir_tracker_ht/ht_video_widget.h @@ -32,13 +32,13 @@ protected slots: void paintEvent( QPaintEvent* e ) { QMutexLocker foo(&mtx); QPainter painter(this); - painter.drawPixmap(e->rect(), pixmap, e->rect()); + painter.drawImage(e->rect(), texture); } void update_and_repaint(); private: QMutex mtx; - QPixmap pixmap; + QImage texture; QTimer timer; char fb[2048*2048*3]; int width,height; -- cgit v1.2.3