Gaia
dataset.h
1 /*
2  * Copyright (C) 2006-2013 Music Technology Group - Universitat Pompeu Fabra
3  *
4  * This file is part of Gaia
5  *
6  * Gaia is free software: you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License as published by the Free
8  * Software Foundation (FSF), either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14  * details.
15  *
16  * You should have received a copy of the Affero GNU General Public License
17  * version 3 along with this program. If not, see http://www.gnu.org/licenses/
18  */
19 
20 #ifndef GAIA_STL_DATASET_H
21 #define GAIA_STL_DATASET_H
22 
23 #include <vector>
24 #include <string>
25 #include "origtypes.h"
26 #include "point.h"
27 #include "transformation.h"
28 
29 namespace gaia2std {
30 
31 class DataSet {
32  DECLARE_PROXY(DataSet);
33  friend class Analyzer;
34  friend class Transformation;
35  friend class DistanceFunction;
36  friend class View;
37 
38  public:
39  DataSet();
40 
41  std::string name() const;
42  void setName(const std::string& name);
43  void setReferenceDataSet(DataSet* dataset);
44 
45  std::vector<std::string> pointNames() const;
46 
47  proxy_ptr<const Point> point(const std::string& id) const;
48  proxy_ptr<Point> point(const std::string& id);
49 
50  void addPoint(Point* point);
51  void removePoint(const std::string& id);
52 
53  bool empty() const;
54  int size() const;
55 
56  void load(const std::string& filename);
57  void save(const std::string& filename);
58 };
59 
60 } // namespace gaia2std
61 
62 #endif // GAIA_STL_DATASET_H
Definition: distancefunction.h:28
Definition: baseexception.h:26
Definition: transformation.h:27
Definition: view.h:32
Definition: dataset.h:31
Definition: analyzer.h:32
Definition: point.h:28