REMOVED: the DrawModel function from classifierInterface (they all do exactly the...
[mldemos:baraks-mldemos.git] / _AlgorithmsPlugins / Projections / interfaceProjections.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 _INTERFACEPROJECTIONS_H_\r
20 #define _INTERFACEPROJECTIONS_H_\r
21 \r
22 #include <vector>\r
23 #include <interfaces.h>\r
24 #include "classifierLinear.h"\r
25 #include "classifierKPCA.h"\r
26 #include "ui_paramsProjections.h"\r
27 \r
28 class ClassProjections : public QObject, public ClassifierInterface\r
29 {\r
30         Q_OBJECT\r
31         Q_INTERFACES(ClassifierInterface)\r
32 private:\r
33         QWidget *widget;\r
34         Ui::ParametersProjections *params;\r
35         QLabel *projectionWindow;\r
36     Canvas *canvas;\r
37     Classifier *classifier;\r
38         int classifierType;\r
39         std::vector<fvec> data;\r
40 public:\r
41         ClassProjections();\r
42         // virtual functions to manage the algorithm creation\r
43         Classifier *GetClassifier();\r
44         void DrawInfo(Canvas *canvas, QPainter &painter, Classifier *classifier);\r
45     void DrawGL(Canvas *canvas, GLWidget *glw, Classifier *classifier){}\r
46 \r
47     bool UsesDrawTimer(){return classifier->UsesDrawTimer();}\r
48 \r
49         // virtual functions to manage the GUI and I/O\r
50     QString GetName(){return QString("Linear Projections");}\r
51         QString GetAlgoString();\r
52     QString GetInfoFile(){return "projections.html";}\r
53     QWidget *GetParameterWidget(){return widget;}\r
54         void SetParams(Classifier *classifier);\r
55         void SaveOptions(QSettings &settings);\r
56         bool LoadOptions(QSettings &settings);\r
57         void SaveParams(QTextStream &stream);\r
58         bool LoadParams(QString name, float value);\r
59     void SetParams(Classifier *classifier, fvec parameters);\r
60     fvec GetParams();\r
61     void GetParameterList(std::vector<QString> &parameterNames,\r
62                                  std::vector<QString> &parameterTypes,\r
63                                  std::vector< std::vector<QString> > &parameterValues);\r
64 private slots:\r
65     void OptionsChanged();\r
66     void ShowProjection();\r
67 };\r
68 \r
69 #endif // _INTERFACEPROJECTIONS_H_\r