Particle Identification and Tracking
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
common_src
include
particle_track.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
#include "
particle_base.h
"
26
27
#include <utility>
28
#include <list>
29
// namespace utilities{
30
// class Tuple;
31
// }
32
33
#ifndef PARTICLE_TRACK
34
#define PARTICLE_TRACK
35
namespace
tracking{
36
class
Track_box;
37
class
Hash_shelf;
38
class
hash_case;
39
45
class
particle_track
:
public
particle_base
{
46
47
48
public
:
49
54
friend
class
Track_box
;
55
friend
class
track_list
;
56
57
58
59
60
61
particle_track
(
int
i_ind,
int
frame);
62
67
particle_track
(
int
i_ind,
utilities::Tuplef
pos,
unsigned
int
frame);
68
69
71
~particle_track
();
72
73
80
void
print_t
(
int
more)
const
;
81
87
const
particle_track
*
get_next
()
const
{
return
next_
;}
88
94
particle_track
*
get_next
(){
return
next_
;}
95
101
const
particle_track
*
get_prev
()
const
{
return
prev_
;}
102
108
particle_track
*
get_prev
(){
return
prev_
;}
116
const
utilities::Tuplef
get_corrected_disp
(
const
particle_track
* part_in)
const
;
117
126
bool
step_forwards
(
int
n,
const
particle_track
* & next)
const
;
127
128
139
bool
step_backwards
(
int
n,
const
particle_track
* & next)
const
;
140
141
142
143
144
149
Track_box
*
get_track
()
const
;
150
154
int
get_track_id
()
const
;
155
160
const
Hash_shelf
*
get_shelf
()
const
{
161
return
shelf_
;
162
}
166
void
set_shelf
(
Hash_shelf
* shelf);
167
171
float
distancesq_corrected
(
const
particle_track
* part_in)
const
;
172
176
bool
has_track
()
const
;
177
181
bool
has_next
()
const
;
185
const
utilities::Tuplef
get_corrected_pos
()
const
;
186
187
192
std::list<std::pair<particle_track*, float> >*
n_pos_link
;
197
std::list<std::pair<particle_track*, float> >*
p_pos_link
;
198
199
200
201
int
get_value
(
utilities::D_TYPE
type,
int
&val)
const
;
202
float
get_value
(
utilities::D_TYPE
type,
float
&val)
const
;
203
std::complex<float>
get_value
(
utilities::D_TYPE
type,std::complex<float>& val)
const
;
204
205
206
private
:
208
particle_track
*
next_
;
210
particle_track
*
prev_
;
215
Track_box
*
track_
;
216
222
Hash_shelf
*
shelf_
;
223
232
bool
step_backwards
(
int
n,
particle_track
* & next);
241
bool
step_forwards
(
int
n,
particle_track
* & next);
242
243
244
245
246
257
void
set_track
(
Track_box
* i_track);
258
259
264
particle_track
*
reset_track
(
Track_box
* i_track,
int
& count);
265
269
void
clear_next
()
270
{
271
next_
= NULL;
272
}
276
void
clear_prev
()
277
{
278
prev_
= NULL;
279
}
280
288
void
set_next
(
particle_track
* n_next);
289
297
void
set_prev
(
particle_track
* n_prev);
298
299
303
void
clear_track_data
();
304
310
void
clear_data_forward
();
311
317
void
clear_data_backward
();
318
319
320
};
321
}
322
#endif
Generated on Tue Sep 10 2013 17:07:21 for Particle Identification and Tracking by
1.8.4