JEMRIS  2.8.1
open-source MRI simulations
DynamicVariables.h
Go to the documentation of this file.
1 
9 /*
10  * JEMRIS Copyright (C)
11  * 2006-2015 Tony Stoecker
12  * 2007-2015 Kaveh Vahedipour
13  * 2009-2015 Daniel Pflugfelder
14  *
15  *
16  * This program is free software; you can redistribute it and/or modify
17  * it under the terms of the GNU General Public License as published by
18  * the Free Software Foundation; either version 2 of the License, or
19  * (at your option) any later version.
20  *
21  * This program is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24  * GNU General Public License for more details.
25  *
26  * You should have received a copy of the GNU General Public License
27  * along with this program; if not, write to the Free Software
28  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29  */
30 
31 #ifndef DYNAMICVARIABLES_H_
32 #define DYNAMICVARIABLES_H_
33 
34 using namespace std;
35 #include <vector>
36 #include "Trajectory.h"
37 
38 class TrajectoryMotion;
39 class TrajectoryT2s;
40 class Trajectory1D;
41 class TrajectoryEmpty;
42 
44 class Trajectory;
45 
46 
50 struct Circle{
51  double x;
52  double y;
53  double z;
54  double r;
55 };
61 
62  public:
63 
67  virtual ~DynamicVariables ();
68 
72  static DynamicVariables* instance ();
73 
77  void SetActivation();
78 
83  void AddActiveCircle(double pos[3],double radius);
84 
85  Trajectory* m_Motion;
86  Trajectory* m_T2prime;
87 
88  Trajectory* m_R1;
89  Trajectory* m_R2;
90  Trajectory* m_M0;
91 
92  Trajectory* m_Diffusion;
93 
94  private:
95 
100 
101  static DynamicVariables* m_instance;
103  // upon activation: change T2 and/or T2prime?
104  bool m_changeT2prime;
105  bool m_changeT2;
106 
107  vector<Circle> m_Circles;
108 
109 
114  TrajectoryT2s* stub_T2s;
115  Trajectory1D* stub_r1;
116  Trajectory1D* stub_r2;
117  Trajectory1D* stub_m0;
118  TrajectoryEmpty* stub_empty;
119  TrajectoryDiffusion* stub_diff;
120 
121 
122 };
123 
124 #endif /* DYNAMICVARIABLES_H_ */
Implementation of JEMRIS Trajectory.
double x
x position of circle center
Definition: DynamicVariables.h:51
double y
y position of circle center
Definition: DynamicVariables.h:52
Instance class holding dynamic sample properties.
Definition: DynamicVariables.h:60
Context class for trajectories (design pattern: Strategy)
Definition: Trajectory.h:43
static DynamicVariables * m_instance
Pointer to the sole instance of this implementation.
Definition: DynamicVariables.h:99
one-dimensional Trajectory
Definition: Trajectory1D.h:39
double z
z position of circle center
Definition: DynamicVariables.h:53
circle for dynamic variables
Definition: DynamicVariables.h:50
Strategy for T2s; needs some extra handling for GetValueDerived.
Definition: TrajectoryT2s.h:39
The "do nothing"-strategy.
Definition: TrajectoryEmpty.h:39
Motion Trajectory.
Definition: TrajectoryMotion.h:39
double r
radius of the circle
Definition: DynamicVariables.h:54
Diffusion trajectory of a spin.
Definition: TrajectoryDiffusion.h:51
TrajectoryMotion * stub_motion
Definition: DynamicVariables.h:113

-- last change 17.06.2016 | Tony Stoecker | Imprint --