Particle Identification and Tracking
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
common_src
include
hash_case.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
#ifndef HASH_CASE
27
#define HASH_CASE
28
#include <vector>
29
#include <list>
30
31
#include "
part_def.h
"
32
33
34
35
36
37
38
namespace
utilities{
39
class
Array;
40
41
class
Histogram2D;
42
class
Wrapper_out;
43
class
Wrapper_in;
44
class
Cell;
45
class
Counted_vector;
46
class
Accum_case;
47
class
Wrapper_in;
48
class
Generic_wrapper;
49
class
Filter;
50
51
52
}
53
54
namespace
tracking{
55
class
Track_shelf;
56
class
Hash_shelf;
57
class
track_list;
58
class
Master_box;
59
60
class
Corr;
61
class
Corr_case;
62
class
Accumulator;
63
69
class
hash_case
{
70
71
public
:
73
Hash_shelf
*
return_shelf
(
int
n)
const
{
74
return
h_case_
.at(n);
75
}
76
80
hash_case
();
81
82
83
84
88
void
init
(
Master_box
& mb,
const
utilities::Tuplef
& dims,
89
float
ppb,
int
frames);
90
94
void
init
(
utilities::Wrapper_in
& w_in ,
utilities::Filter
& filt,
float
ppb) ;
95
96
98
void
print
()
const
;
99
104
void
pass_fun_to_part
(
void
(
particle
::*fun)());
105
110
void
pass_fun_to_part
(
void
(
particle
::*fun)()
const
)
const
;
111
112
113
118
void
pass_fun_to_shelf
(
void
(
Hash_shelf
::*fun)());
119
124
void
pass_fun_to_shelf
(
void
(
Hash_shelf
::*fun)()
const
)
const
;
125
129
unsigned
int
get_num_frames
()
const
130
{
131
return
h_case_
.size();
132
}
133
134
138
void
output_to_wrapper
(
utilities::Wrapper_out
&)
const
;
139
143
void
compute_corr
(
tracking::Corr
&)
const
;
144
145
151
unsigned
int
compute_corr
(
tracking::Corr_case
&)
const
;
152
153
157
void
compute_accum
(
Accumulator
& in)
const
;
158
162
void
compute_accum
(
utilities::Accum_case
& )
const
;
163
164
168
void
fill_in_neighborhood
();
169
173
int
get_avg_dtime
()
const
;
174
178
float
get_avg_temp
()
const
;
179
180
182
~hash_case
();
183
184
#ifdef TRACKING_FLG
185
188
void
init
(
float
box_side_len,
189
const
utilities::Wrapper_in
& wrapper,
190
Track_shelf
& tracks,
191
utilities::Filter
& filt,
192
int
min_trk_length);
193
194
203
void
link
(
float
max_range,
Track_shelf
& tracks);
204
208
void
compute_mean_disp
();
209
210
#endif
211
212
213
protected
:
217
std::vector<Hash_shelf*>
h_case_
;
218
219
220
221
#ifdef TRACKING_FLG
222
233
void
fill_pos_link_next
(std::list<particle_track*>* tlist,
234
std::vector<Hash_shelf*>::iterator in_it,
float
max_disp);
235
236
#endif
237
241
bool
inited_
;
242
248
bool
own_particles_
;
249
250
};
251
252
253
}
254
255
256
#endif
Generated on Tue Sep 10 2013 17:07:21 for Particle Identification and Tracking by
1.8.4