STIR 6.4.0
RigidObject3DMotion.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2003- 2010 , Hammersmith Imanet Ltd
5 For internal GE use only
6*/
7#ifndef __stir_motion_RigidObject3DMotion__H__
8#define __stir_motion_RigidObject3DMotion__H__
17
20#include "stir/ParsingObject.h"
21#include <vector>
22#include <ctime>
23
24START_NAMESPACE_STIR
25
26class AbsTimeInterval;
27
46class RigidObject3DMotion : public RegisteredObject<RigidObject3DMotion>
47{
48
49public:
50 ~RigidObject3DMotion() override {}
51
54
57
59
60 virtual RigidObject3DTransformation compute_average_motion_in_tracker_coords(const AbsTimeInterval&) const;
61
62 virtual RigidObject3DTransformation compute_average_motion_in_scanner_coords(const AbsTimeInterval&) const;
63
64 virtual RigidObject3DTransformation compute_average_motion_in_tracker_coords_rel_time(const double start_time,
65 const double end_time) const = 0;
66
67 virtual RigidObject3DTransformation compute_average_motion_in_scanner_coords_rel_time(const double start_time,
68 const double end_time) const;
69
71
73
81 virtual std::vector<double> get_rel_time_of_samples(const double start_time, const double end_time) const = 0;
82
84
86 virtual Succeeded synchronise() = 0;
87
88 virtual double secs_since_1970_to_rel_time(std::time_t) const = 0;
89
90protected:
91#if 0
93 void
94 set_time_offset(const double time_offset);
95 double
96 get_time_offset() const;
97#endif
99 virtual bool is_synchronised() const = 0;
100
101public:
102 virtual const RigidObject3DTransformation& get_transformation_to_scanner_coords() const = 0;
103 virtual const RigidObject3DTransformation& get_transformation_from_scanner_coords() const = 0;
104
105 virtual void set_transformation_from_scanner_coords(const RigidObject3DTransformation&) = 0;
106
107protected:
108 void set_defaults() override;
109 void initialise_keymap() override;
110 bool post_processing() override;
111};
112
113END_NAMESPACE_STIR
114
115#endif
Declaration of class stir::ParsingObject.
Declaration of class stiir::RegisteredObject.
Declaration of class stir::RigidObject3DTransformation.
Base class for specifying a time interval (in absolute time)
Definition AbsTimeInterval.h:32
Base class for 3D rigid motion.
Definition RigidObject3DMotion.h:47
void set_defaults() override
Set defaults before parsing.
Definition RigidObject3DMotion.cxx:28
virtual RigidObject3DTransformation get_motion_in_scanner_coords_rel_time(const double time) const
get motion in scanner coordinates
Definition RigidObject3DMotion.cxx:107
virtual Succeeded synchronise()=0
Has to be called and will be used to synchronise the target-system time and motion tracking time.
void initialise_keymap() override
Initialise all keywords.
Definition RigidObject3DMotion.cxx:34
bool post_processing() override
This will be called at the end of the parsing.
Definition RigidObject3DMotion.cxx:43
virtual RigidObject3DTransformation get_motion_in_tracker_coords_rel_time(const double time) const =0
get motion in tracker coordinates
virtual bool is_synchronised() const =0
Temporary (?) function to allow base class to see if synchronised was called or not.
virtual std::vector< double > get_rel_time_of_samples(const double start_time, const double end_time) const =0
Info on when the motion was determined.
Class to perform rigid object transformations in 3 dimensions.
Definition RigidObject3DTransformation.h:66
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44