REMOVED: the DrawModel function from classifierInterface (they all do exactly the...
[mldemos:baraks-mldemos.git] / _AlgorithmsPlugins / GMM / interfaceGMMClassifier.h
1 /*********************************************************************
2 MLDemos: A User-Friendly visualization toolkit for machine learning
3 Copyright (C) 2010  Basilio Noris
4 Contact: mldemos@b4silio.com
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public License,
8 version 3 as published by the Free Software Foundation.
9
10 This library is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 *********************************************************************/
19 #ifndef _INTERFACEGMMCLASSIFIER_H_
20 #define _INTERFACEGMMCLASSIFIER_H_
21
22 #include <vector>
23 #include <interfaces.h>
24 #include "classifierGMM.h"
25 #include "ui_paramsGMM.h"
26
27 class ClassGMM : public QObject, public ClassifierInterface
28 {
29         Q_OBJECT
30         Q_INTERFACES(ClassifierInterface)
31 private:
32         QWidget *widget;
33         Ui::ParametersGMM *params;
34 public:
35         ClassGMM();
36         // virtual functions to manage the algorithm creation
37         Classifier *GetClassifier();
38         void DrawInfo(Canvas *canvas, QPainter &painter, Classifier *classifier);
39     void DrawGL(Canvas *canvas, GLWidget *glw, Classifier *classifier);
40
41         // virtual functions to manage the GUI and I/O
42     QString GetName(){return QString("Gaussian Mixture Model");}
43         QString GetAlgoString();
44     QString GetInfoFile(){return "gmm.html";}
45     bool UsesDrawTimer(){return true;}
46     QWidget *GetParameterWidget(){return widget;}
47         void SetParams(Classifier *classifier);
48         void SaveOptions(QSettings &settings);
49         bool LoadOptions(QSettings &settings);
50         void SaveParams(QTextStream &stream);
51         bool LoadParams(QString name, float value);
52
53     void SetParams(Classifier *classifier, fvec parameters);
54     fvec GetParams();
55     void GetParameterList(std::vector<QString> &parameterNames,
56                                  std::vector<QString> &parameterTypes,
57                                  std::vector< std::vector<QString> > &parameterValues);
58
59 };
60
61 #endif // _INTERFACEGMMCLASSIFIER_H_