- added multiple format support for input data (now supports csv, tabs, ; and spaces)
[mldemos:baraks-mldemos.git] / Core / drawTimer.h
1 /*********************************************************************\r
2 MLDemos: A User-Friendly visualization toolkit for machine learning\r
3 Copyright (C) 2010  Basilio Noris\r
4 Contact: mldemos@b4silio.com\r
5 \r
6 This library is free software; you can redistribute it and/or\r
7 modify it under the terms of the GNU Lesser General Public License,\r
8 version 3 as published by the Free Software Foundation.\r
9 \r
10 This library is distributed in the hope that it will be useful, but\r
11 WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
13 Lesser General Public License for more details.\r
14 \r
15 You should have received a copy of the GNU Lesser General Public\r
16 License along with this library; if not, write to the Free\r
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
18 *********************************************************************/\r
19 #ifndef _DRAWTIMER_H_\r
20 #define _DRAWTIMER_H_\r
21 \r
22 #include <QWidget>\r
23 #include <QThread>\r
24 #include "canvas.h"\r
25 #include "classifier.h"\r
26 #include "regressor.h"\r
27 #include "dynamical.h"\r
28 #include "clusterer.h"\r
29 #include "maximize.h"\r
30 #include <QMutex>\r
31 #include <QMutexLocker>\r
32 \r
33 class DrawTimer : public QThread\r
34 {\r
35         Q_OBJECT\r
36 private:\r
37         int refineLevel;\r
38         int refineMax;\r
39         QImage bigMap;\r
40         QImage modelMap;\r
41         u32 *perm;\r
42         Canvas *canvas;\r
43         int w, h, dim;\r
44 \r
45 public:\r
46         DrawTimer(Canvas *canvas, QMutex *mutex);\r
47         ~DrawTimer();\r
48         void run();\r
49         void Refine();\r
50         void Clear();\r
51         void TestFast(int start, int stop);\r
52         void Vectors(int count, int steps);\r
53         void VectorsFast(int count, int steps);\r
54         void Maximization();\r
55         void Stop();\r
56     static QColor GetColor(Classifier *classifier, fvec sample);\r
57 \r
58         Classifier **classifier;\r
59         Regressor **regressor;\r
60         Dynamical **dynamical;\r
61         Clusterer **clusterer;\r
62         Maximizer **maximizer;\r
63 \r
64         QMutex *mutex, drawMutex;\r
65         bool bPaused;\r
66         bool bRunning;\r
67         bool bColorMap;\r
68 \r
69         signals:\r
70         void MapReady(QImage image);\r
71         void ModelReady(QImage image);\r
72         void CurveReady();\r
73 };\r
74 \r
75 #endif // _DRAWTIMER_H_\r