Medical Imaging Interaction Toolkit  2018.4.99-12ad79a3
Medical Imaging Interaction Toolkit
mitkPATissueGeneratorParameters.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef MITKPHOTOACOUSTICTISSUEGENERATORPARAMETERS_H
14 #define MITKPHOTOACOUSTICTISSUEGENERATORPARAMETERS_H
15 
18 
19 //Includes for smart pointer usage
20 #include "mitkCommon.h"
21 #include "itkLightObject.h"
22 
23 namespace mitk {
24  namespace pa {
26  {
27  public:
29  itkFactorylessNewMacro(Self)
30 
31 
34  typedef void (VesselMeanderStrategy::*CalculateNewVesselPositionCallback)
35  (Vector::Pointer, double, std::mt19937*);
36 
37  itkGetMacro(XDim, int)
38  itkGetMacro(YDim, int)
39  itkGetMacro(ZDim, int)
40  itkGetMacro(VoxelSpacingInCentimeters, double)
41  itkGetMacro(DoPartialVolume, bool)
42  itkGetMacro(UseRngSeed, bool)
43  itkGetMacro(RngSeed, long)
44  itkGetMacro(RandomizePhysicalProperties, bool)
45  itkGetMacro(RandomizePhysicalPropertiesPercentage, double)
46  itkGetMacro(ForceVesselsMoveAlongYDirection, bool)
47 
48  itkGetMacro(MinBackgroundAbsorption, double)
49  itkGetMacro(MaxBackgroundAbsorption, double)
50  itkGetMacro(BackgroundScattering, double)
51  itkGetMacro(BackgroundAnisotropy, double)
52  itkGetMacro(AirAbsorption, double)
53  itkGetMacro(AirScattering, double)
54  itkGetMacro(AirAnisotropy, double)
55  itkGetMacro(AirThicknessInMillimeters, double)
56  itkGetMacro(SkinAbsorption, double)
57  itkGetMacro(SkinScattering, double)
58  itkGetMacro(SkinAnisotropy, double)
59  itkGetMacro(SkinThicknessInMillimeters, double)
60 
61  itkGetMacro(CalculateNewVesselPositionCallback, CalculateNewVesselPositionCallback)
62  itkGetMacro(MinNumberOfVessels, int)
63  itkGetMacro(MaxNumberOfVessels, int)
64  itkGetMacro(MinVesselBending, double)
65  itkGetMacro(MaxVesselBending, double)
66  itkGetMacro(MinVesselAbsorption, double)
67  itkGetMacro(MaxVesselAbsorption, double)
68  itkGetMacro(MinVesselRadiusInMillimeters, double)
69  itkGetMacro(MaxVesselRadiusInMillimeters, double)
70  itkGetMacro(VesselBifurcationFrequency, int)
71  itkGetMacro(MinVesselScattering, double)
72  itkGetMacro(MaxVesselScattering, double)
73  itkGetMacro(MinVesselAnisotropy, double)
74  itkGetMacro(MaxVesselAnisotropy, double)
75  itkGetMacro(MinVesselZOrigin, double)
76  itkGetMacro(MaxVesselZOrigin, double)
77 
78  itkGetMacro(MCflag, double)
79  itkGetMacro(MCLaunchflag, double)
80  itkGetMacro(MCBoundaryflag, double)
81  itkGetMacro(MCLaunchPointX, double)
82  itkGetMacro(MCLaunchPointY, double)
83  itkGetMacro(MCLaunchPointZ, double)
84  itkGetMacro(MCFocusPointX, double)
85  itkGetMacro(MCFocusPointY, double)
86  itkGetMacro(MCFocusPointZ, double)
87  itkGetMacro(MCTrajectoryVectorX, double)
88  itkGetMacro(MCTrajectoryVectorY, double)
89  itkGetMacro(MCTrajectoryVectorZ, double)
90  itkGetMacro(MCRadius, double)
91  itkGetMacro(MCWaist, double)
92 
93  itkSetMacro(XDim, int)
94  itkSetMacro(YDim, int)
95  itkSetMacro(ZDim, int)
96  itkSetMacro(VoxelSpacingInCentimeters, double)
97  itkSetMacro(DoPartialVolume, bool)
98  itkSetMacro(UseRngSeed, bool)
99  itkSetMacro(RngSeed, long)
100  itkSetMacro(RandomizePhysicalProperties, bool)
101  itkSetMacro(RandomizePhysicalPropertiesPercentage, double)
102  itkSetMacro(ForceVesselsMoveAlongYDirection, bool)
103 
104  itkSetMacro(MinBackgroundAbsorption, double)
105  itkSetMacro(MaxBackgroundAbsorption, double)
106  itkSetMacro(BackgroundScattering, double)
107  itkSetMacro(BackgroundAnisotropy, double)
108  itkSetMacro(AirAbsorption, double)
109  itkSetMacro(AirScattering, double)
110  itkSetMacro(AirAnisotropy, double)
111  itkSetMacro(AirThicknessInMillimeters, double)
112  itkSetMacro(SkinAbsorption, double)
113  itkSetMacro(SkinScattering, double)
114  itkSetMacro(SkinAnisotropy, double)
115  itkSetMacro(SkinThicknessInMillimeters, double)
116 
117  itkSetMacro(CalculateNewVesselPositionCallback, CalculateNewVesselPositionCallback)
118  itkSetMacro(MinNumberOfVessels, int)
119  itkSetMacro(MaxNumberOfVessels, int)
120  itkSetMacro(MinVesselBending, double)
121  itkSetMacro(MaxVesselBending, double)
122  itkSetMacro(MinVesselAbsorption, double)
123  itkSetMacro(MaxVesselAbsorption, double)
124  itkSetMacro(MinVesselRadiusInMillimeters, double)
125  itkSetMacro(MaxVesselRadiusInMillimeters, double)
126  itkSetMacro(VesselBifurcationFrequency, int)
127  itkSetMacro(MinVesselScattering, double)
128  itkSetMacro(MaxVesselScattering, double)
129  itkSetMacro(MinVesselAnisotropy, double)
130  itkSetMacro(MaxVesselAnisotropy, double)
131  itkSetMacro(MinVesselZOrigin, double)
132  itkSetMacro(MaxVesselZOrigin, double)
133 
134  itkSetMacro(MCflag, double)
135  itkSetMacro(MCLaunchflag, double)
136  itkSetMacro(MCBoundaryflag, double)
137  itkSetMacro(MCLaunchPointX, double)
138  itkSetMacro(MCLaunchPointY, double)
139  itkSetMacro(MCLaunchPointZ, double)
140  itkSetMacro(MCFocusPointX, double)
141  itkSetMacro(MCFocusPointY, double)
142  itkSetMacro(MCFocusPointZ, double)
143  itkSetMacro(MCTrajectoryVectorX, double)
144  itkSetMacro(MCTrajectoryVectorY, double)
145  itkSetMacro(MCTrajectoryVectorZ, double)
146  itkSetMacro(MCRadius, double)
147  itkSetMacro(MCWaist, double)
148 
149  protected:
151  ~TissueGeneratorParameters() override;
152 
153  private:
154 
155  int m_XDim;
156  int m_YDim;
157  int m_ZDim;
158  double m_VoxelSpacingInCentimeters;
159  bool m_DoPartialVolume;
160  bool m_UseRngSeed;
161  long m_RngSeed;
162  bool m_RandomizePhysicalProperties;
163  double m_RandomizePhysicalPropertiesPercentage;
164  bool m_ForceVesselsMoveAlongYDirection;
165 
166  double m_MinBackgroundAbsorption;
167  double m_MaxBackgroundAbsorption;
168  double m_BackgroundScattering;
169  double m_BackgroundAnisotropy;
170  double m_AirAbsorption;
171  double m_AirScattering;
172  double m_AirAnisotropy;
173  double m_AirThicknessInMillimeters;
174  double m_SkinAbsorption;
175  double m_SkinScattering;
176  double m_SkinAnisotropy;
177  double m_SkinThicknessInMillimeters;
178 
179  CalculateNewVesselPositionCallback m_CalculateNewVesselPositionCallback;
180  int m_MinNumberOfVessels;
181  int m_MaxNumberOfVessels;
182  double m_MinVesselBending;
183  double m_MaxVesselBending;
184  double m_MinVesselAbsorption;
185  double m_MaxVesselAbsorption;
186  double m_MinVesselRadiusInMillimeters;
187  double m_MaxVesselRadiusInMillimeters;
188  int m_VesselBifurcationFrequency;
189  double m_MinVesselScattering;
190  double m_MaxVesselScattering;
191  double m_MinVesselAnisotropy;
192  double m_MaxVesselAnisotropy;
193  double m_MinVesselZOrigin;
194  double m_MaxVesselZOrigin;
195 
196  double m_MCflag;
197  double m_MCLaunchflag;
198  double m_MCBoundaryflag;
199  double m_MCLaunchPointX;
200  double m_MCLaunchPointY;
201  double m_MCLaunchPointZ;
202  double m_MCFocusPointX;
203  double m_MCFocusPointY;
204  double m_MCFocusPointZ;
205  double m_MCTrajectoryVectorX;
206  double m_MCTrajectoryVectorY;
207  double m_MCTrajectoryVectorZ;
208  double m_MCRadius;
209  double m_MCWaist;
210  };
211  }
212 }
213 #endif // MITKPHOTOACOUSTICTISSUEGENERATORPARAMETERS_H
DataCollection - Class to facilitate loading/accessing structured data.
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:49
#define MITKPHOTOACOUSTICSLIB_EXPORT