JEMRIS 2.9.2
open-source MRI simulations
Loading...
Searching...
No Matches
DynamicVariables.h
Go to the documentation of this file.
1
9/*
10 * JEMRIS Copyright (C)
11 * 2006-2025 Tony Stoecker
12 * 2007-2018 Kaveh Vahedipour
13 * 2009-2019 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
34using namespace std;
35#include <vector>
36#include "Trajectory.h"
37
38//MODIF
39class TrajectoryFlow;
40//MODIF***
41//Mod
43//
45class TrajectoryT2s;
46class Trajectory1D;
47class TrajectoryEmpty;
48
50class Trajectory;
51
52
56struct Circle{
57 double x;
58 double y;
59 double z;
60 double r;
61};
67
68 public:
69
73 virtual ~DynamicVariables ();
74
78 static DynamicVariables* instance ();
79
83 void SetActivation();
84
89 void AddActiveCircle(double pos[3],double radius);
90
91//MODIF
92 Trajectory* m_Flow;
93//MODIF***
94
95//Mod
96 Trajectory* m_Respiration;
97//
98 Trajectory* m_Motion;
99 Trajectory* m_T2prime;
100
101 Trajectory* m_R1;
102 Trajectory* m_R2;
103 Trajectory* m_M0;
104
105 Trajectory* m_Diffusion;
106
107 private:
108
113
116 // upon activation: change T2 and/or T2prime?
117 bool m_changeT2prime;
118 bool m_changeT2;
119
120 vector<Circle> m_Circles;
121
122
126//MODIF
128//MODIF***
129//Mod
130 TrajectoryRespiration* stub_respiration;
131//
132 TrajectoryMotion* stub_motion;
133 TrajectoryT2s* stub_T2s;
134 Trajectory1D* stub_r1;
135 Trajectory1D* stub_r2;
136 Trajectory1D* stub_m0;
137 TrajectoryEmpty* stub_empty;
138 TrajectoryDiffusion* stub_diff;
139
140
141};
142
143#endif /* DYNAMICVARIABLES_H_ */
Implementation of JEMRIS Trajectory.
Instance class holding dynamic sample properties.
Definition DynamicVariables.h:66
static DynamicVariables * instance()
Get sole instance of DynamicVariables.
Definition DynamicVariables.cpp:48
DynamicVariables()
Default constructor.
Definition DynamicVariables.h:112
void AddActiveCircle(double pos[3], double radius)
spins within this circle are simulated with time-varying T2/T2s. as many active circles as needed may...
Definition DynamicVariables.cpp:125
static DynamicVariables * m_instance
Pointer to the sole instance of this implementation.
Definition DynamicVariables.h:114
virtual ~DynamicVariables()
Default destructor.
Definition DynamicVariables.cpp:94
TrajectoryFlow * stub_flow
Definition DynamicVariables.h:127
void SetActivation()
set appropriate strategy for current spin (active/non_active)
Definition DynamicVariables.cpp:136
one-dimensional Trajectory
Definition Trajectory1D.h:39
Diffusion trajectory of a spin.
Definition TrajectoryDiffusion.h:51
The "do nothing"-strategy.
Definition TrajectoryEmpty.h:39
Flow Trajectory.
Definition TrajectoryFlow.h:40
Motion Trajectory.
Definition TrajectoryMotion.h:39
Definition TrajectoryRespiration.h:35
Strategy for T2s; needs some extra handling for GetValueDerived.
Definition TrajectoryT2s.h:39
Context class for trajectories (design pattern: Strategy)
Definition Trajectory.h:44
circle for dynamic variables
Definition DynamicVariables.h:56
double r
radius of the circle
Definition DynamicVariables.h:60
double z
z position of circle center
Definition DynamicVariables.h:59
double y
y position of circle center
Definition DynamicVariables.h:58
double x
x position of circle center
Definition DynamicVariables.h:57

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