STIR  6.2.0
MatchTrackerAndScanner.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2003- 2010 , Hammersmith Imanet Ltd
5  For GE Internal use only
6 */
7 
8 #ifndef __stir_motion_MatchTrackerAndScanner_H__
9 #define __stir_motion_MatchTrackerAndScanner_H__
10 
22 #include "stir/Succeeded.h"
23 #include "stir/shared_ptr.h"
24 #include "stir/ParsingObject.h"
26 #include <string>
27 
28 START_NAMESPACE_STIR
90 {
91 public:
92  MatchTrackerAndScanner(const char* const par_filename);
93 
95 
97  Succeeded run();
98 
99  const TimeFrameDefinitions& get_time_frame_defs() const;
100 
101  double get_frame_start_time(unsigned frame_num) const { return frame_defs.get_start_time(frame_num) + scan_start_time; }
102 
103  double get_frame_end_time(unsigned frame_num) const { return frame_defs.get_end_time(frame_num) + scan_start_time; }
104 
105  const std::string& get_image_filename_prefix() const { return _image_filename_prefix; }
106 
107  const RigidObject3DMotion& get_motion() const { return *_ro3d_sptr; }
108 
109  const RigidObject3DTransformation& get_transformation_from_scanner_coords() const
110  {
111  return _transformation_from_scanner_coords;
112  }
113 
114 protected:
115  // all of these really should be in a AbsTimeFrameDefinitions class or so
116  TimeFrameDefinitions frame_defs;
117  int scan_start_time_secs_since_1970_UTC;
118  double _current_frame_end_time;
119  double _current_frame_start_time;
120 
122  void set_defaults() override;
123  void initialise_keymap() override;
124  bool post_processing() override;
125 
128 
129  double scan_start_time;
130 
131  std::string _image_filename_prefix;
132 
133  float relative_threshold;
134 
135 private:
136  shared_ptr<RigidObject3DMotion> _ro3d_sptr;
137 
138  // will be set to new value
139  RigidObject3DTransformation _transformation_from_scanner_coords;
140 };
141 
142 END_NAMESPACE_STIR
143 
144 #endif
Class used for storing time frame durations.
Definition: TimeFrameDefinitions.h:38
Declaration of class stir::Succeeded.
Declaration of class stir::TimeFrameDefinitions.
A base class for objects that want to be able to parse parameter files.
Definition: ParsingObject.h:44
Declaration of class stir::ParsingObject.
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
A class for finding the coordinate transformation between tracker and scanner coordinate systems...
Definition: MatchTrackerAndScanner.h:89
Class to perform rigid object transformations in 3 dimensions.
Definition: RigidObject3DTransformation.h:64
Declaration of class stir::RigidObject3DMotion.
Base class for 3D rigid motion.
Definition: RigidObject3DMotion.h:46
std::string frame_definition_filename
parsing variables
Definition: MatchTrackerAndScanner.h:127
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declaration of class stir::RigidObject3DTransformation.