JEMRIS  2.8.2
open-source MRI simulations
DynamicVariables.h
Go to the documentation of this file.
1 
9 /*
10  * JEMRIS Copyright (C)
11  * 2006-2018 Tony Stoecker
12  * 2007-2018 Kaveh Vahedipour
13  * 2009-2018 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 //MODIF
39 class TrajectoryFlow;
40 //MODIF***
41 class TrajectoryMotion;
42 class TrajectoryT2s;
43 class Trajectory1D;
44 class TrajectoryEmpty;
45 
47 class Trajectory;
48 
49 
53 struct Circle{
54  double x;
55  double y;
56  double z;
57  double r;
58 };
64 
65  public:
66 
70  virtual ~DynamicVariables ();
71 
75  static DynamicVariables* instance ();
76 
80  void SetActivation();
81 
86  void AddActiveCircle(double pos[3],double radius);
87 
88 //MODIF
89  Trajectory* m_Flow;
90 //MODIF***
91  Trajectory* m_Motion;
92  Trajectory* m_T2prime;
93 
94  Trajectory* m_R1;
95  Trajectory* m_R2;
96  Trajectory* m_M0;
97 
98  Trajectory* m_Diffusion;
99 
100  private:
101 
106 
107  static DynamicVariables* m_instance;
109  // upon activation: change T2 and/or T2prime?
110  bool m_changeT2prime;
111  bool m_changeT2;
112 
113  vector<Circle> m_Circles;
114 
115 
119 //MODIF
121 //MODIF***
122  TrajectoryMotion* stub_motion;
123  TrajectoryT2s* stub_T2s;
124  Trajectory1D* stub_r1;
125  Trajectory1D* stub_r2;
126  Trajectory1D* stub_m0;
127  TrajectoryEmpty* stub_empty;
128  TrajectoryDiffusion* stub_diff;
129 
130 
131 };
132 
133 #endif /* DYNAMICVARIABLES_H_ */
Implementation of JEMRIS Trajectory.
double x
x position of circle center
Definition: DynamicVariables.h:54
double y
y position of circle center
Definition: DynamicVariables.h:55
Instance class holding dynamic sample properties.
Definition: DynamicVariables.h:63
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:105
one-dimensional Trajectory
Definition: Trajectory1D.h:39
Flow Trajectory.
Definition: TrajectoryFlow.h:40
double z
z position of circle center
Definition: DynamicVariables.h:56
circle for dynamic variables
Definition: DynamicVariables.h:53
TrajectoryFlow * stub_flow
Definition: DynamicVariables.h:120
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:57
Diffusion trajectory of a spin.
Definition: TrajectoryDiffusion.h:51

-- last change 24.05.2018 | Tony Stoecker | Imprint | Data Protection --