Particle Identification and Tracking
wrapper_i.h
Go to the documentation of this file.
1 //Copyright 2008-2010 Thomas A Caswell
2 //tcaswell@uchicago.edu
3 //http://jfi.uchicago.edu/~tcaswell
4 //
5 //This program is free software; you can redistribute it and/or modify
6 //it under the terms of the GNU General Public License as published by
7 //the Free Software Foundation; either version 3 of the License, or (at
8 //your option) any later version.
9 //
10 //This program 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 //General Public License for more details.
14 //
15 //You should have received a copy of the GNU General Public License
16 //along with this program; if not, see <http://www.gnu.org/licenses>.
17 //
18 //Additional permission under GNU GPL version 3 section 7
19 //
20 //If you modify this Program, or any covered work, by linking or
21 //combining it with MATLAB (or a modified version of that library),
22 //containing parts covered by the terms of MATLAB User License, the
23 //licensors of this Program grant you additional permission to convey
24 //the resulting work.
25 //
26 //If you modify this Program, or any covered work, by linking or
27 //combining it with IPP (or a modified version of that library),
28 //containing parts covered by the terms of End User License Agreement
29 //for the Intel(R) Software Development Products, the licensors of
30 //this Program grant you additional permission to convey the resulting
31 //work.
32 //
33 //If you modify this Program, or any covered work, by linking or
34 //combining it with FreeImage (or a modified version of that library),
35 //containing parts covered by the terms of End User License Agreement
36 //for FreeImage Public License, the licensors of
37 //this Program grant you additional permission to convey the resulting
38 
39 
40 
41 
42 
43 
44 
45 #ifndef WRAPPER_I_BASE
46 #define WRAPPER_I_BASE
47 #include "enum_utils.h"
48 #include "part_def.h"
49 
50 #include <set>
51 #include <complex>
52 #include <vector>
53 namespace utilities{
54 class Md_store;
55 
62 {
63 public:
64  /*
65  Returns the value of the type specified from the particle selected. use the other version
66  */
67  // virtual float get_value(int ind,D_TYPE type, int frame = -1) const=0;
68 
69 
79  virtual int get_value(int& out,
80  int ind,D_TYPE type, int frame) const = 0;
90  virtual float get_value(float& out,
91  int ind,D_TYPE type, int frame) const = 0;
102  virtual std::complex<float> get_value(std::complex<float>& out,
103  int ind,D_TYPE type, int frame) const = 0;
108  virtual std::set<D_TYPE> get_data_types() const =0;
109 
110  /*
111  Returns a set of the data types. Use the other version
112  */
113  // virtual void get_data_types(std::set<D_TYPE> & out) const = 0;
114 
118  virtual int get_num_entries(unsigned int frame) const = 0;
119 
123  virtual int get_num_entries() const = 0;
127  virtual int get_num_frames() const = 0;
128 
132  virtual bool contains_type(D_TYPE type) const = 0;
133 
134 
138  virtual Tuplef get_dims() const = 0;
139 
140 
141 
149  const Md_store * get_Md_store(unsigned int j)const;
150 
151 
155  Md_store* get_Md_store(unsigned int j);
156 
161  void set_Md_store(unsigned int j, Md_store * in);
162 
166  void set_Md_store_size(unsigned int j);
167 
171  unsigned int get_Md_store_size();
172 
173 
177  void clear_Md_store(unsigned int j);
179  virtual ~Wrapper_in();
180 
181  Wrapper_in();
182 
183 private:
184  std::vector<Md_store*> md_stores_;
185 
186 
187 };
188 
189 
190 
191 
192 
193 }
194 
195 #endif
196