Medical Imaging Interaction Toolkit  2018.4.99-67d34b5d
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 
34  typedef void (VesselMeanderStrategy::*CalculateNewVesselPositionCallback)
35  (Vector::Pointer, double, std::mt19937*);
36 
37  itkGetMacro(XDim, int);
38 
39  itkGetMacro(YDim, int);
40 
41  itkGetMacro(ZDim, int);
42 
43  itkGetMacro(VoxelSpacingInCentimeters, double);
44  itkGetMacro(DoPartialVolume, bool);
45  itkGetMacro(UseRngSeed, bool);
46  itkGetMacro(RngSeed, long);
47  itkGetMacro(RandomizePhysicalProperties, bool);
48  itkGetMacro(RandomizePhysicalPropertiesPercentage, double);
49  itkGetMacro(ForceVesselsMoveAlongYDirection, bool);
50  itkGetMacro(MinBackgroundAbsorption, double);
51  itkGetMacro(MaxBackgroundAbsorption, double);
52  itkGetMacro(BackgroundScattering, double);
53  itkGetMacro(BackgroundAnisotropy, double);
54  itkGetMacro(AirAbsorption, double);
55  itkGetMacro(AirScattering, double);
56  itkGetMacro(AirAnisotropy, double);
57  itkGetMacro(AirThicknessInMillimeters, double);
58  itkGetMacro(SkinAbsorption, double);
59  itkGetMacro(SkinScattering, double);
60  itkGetMacro(SkinAnisotropy, double);
61  itkGetMacro(SkinThicknessInMillimeters, double);
62  itkGetMacro(CalculateNewVesselPositionCallback, CalculateNewVesselPositionCallback);
63  itkGetMacro(MinNumberOfVessels, int);
64  itkGetMacro(MaxNumberOfVessels, int);
65  itkGetMacro(MinVesselBending, double);
66  itkGetMacro(MaxVesselBending, double);
67  itkGetMacro(MinVesselAbsorption, double);
68  itkGetMacro(MaxVesselAbsorption, double);
69  itkGetMacro(MinVesselRadiusInMillimeters, double);
70  itkGetMacro(MaxVesselRadiusInMillimeters, double);
71  itkGetMacro(VesselBifurcationFrequency, int);
72  itkGetMacro(MinVesselScattering, double);
73  itkGetMacro(MaxVesselScattering, double);
74  itkGetMacro(MinVesselAnisotropy, double);
75  itkGetMacro(MaxVesselAnisotropy, double);
76  itkGetMacro(MinVesselZOrigin, double);
77  itkGetMacro(MaxVesselZOrigin, double);
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  itkSetMacro(XDim, int);
93  itkSetMacro(YDim, int);
94  itkSetMacro(ZDim, int);
95  itkSetMacro(VoxelSpacingInCentimeters, double);
96  itkSetMacro(DoPartialVolume, bool);
97  itkSetMacro(UseRngSeed, bool);
98  itkSetMacro(RngSeed, long);
99  itkSetMacro(RandomizePhysicalProperties, bool);
100  itkSetMacro(RandomizePhysicalPropertiesPercentage, double);
101  itkSetMacro(ForceVesselsMoveAlongYDirection, bool);
102  itkSetMacro(MinBackgroundAbsorption, double);
103  itkSetMacro(MaxBackgroundAbsorption, double);
104  itkSetMacro(BackgroundScattering, double);
105  itkSetMacro(BackgroundAnisotropy, double);
106  itkSetMacro(AirAbsorption, double);
107  itkSetMacro(AirScattering, double);
108  itkSetMacro(AirAnisotropy, double);
109  itkSetMacro(AirThicknessInMillimeters, double);
110  itkSetMacro(SkinAbsorption, double);
111  itkSetMacro(SkinScattering, double);
112  itkSetMacro(SkinAnisotropy, double);
113  itkSetMacro(SkinThicknessInMillimeters, double);
114  itkSetMacro(CalculateNewVesselPositionCallback, CalculateNewVesselPositionCallback);
115  itkSetMacro(MinNumberOfVessels, int);
116  itkSetMacro(MaxNumberOfVessels, int);
117  itkSetMacro(MinVesselBending, double);
118  itkSetMacro(MaxVesselBending, double);
119  itkSetMacro(MinVesselAbsorption, double);
120  itkSetMacro(MaxVesselAbsorption, double);
121  itkSetMacro(MinVesselRadiusInMillimeters, double);
122  itkSetMacro(MaxVesselRadiusInMillimeters, double);
123  itkSetMacro(VesselBifurcationFrequency, int);
124  itkSetMacro(MinVesselScattering, double);
125  itkSetMacro(MaxVesselScattering, double);
126  itkSetMacro(MinVesselAnisotropy, double);
127  itkSetMacro(MaxVesselAnisotropy, double);
128  itkSetMacro(MinVesselZOrigin, double);
129  itkSetMacro(MaxVesselZOrigin, double);
130  itkSetMacro(MCflag, double);
131 
132  itkSetMacro(MCLaunchflag, double);
133 
134  itkSetMacro(MCBoundaryflag, double);
135 
136  itkSetMacro(MCLaunchPointX, double);
137  itkSetMacro(MCLaunchPointY, double);
138  itkSetMacro(MCLaunchPointZ, double);
139  itkSetMacro(MCFocusPointX, double);
140  itkSetMacro(MCFocusPointY, double);
141  itkSetMacro(MCFocusPointZ, double);
142  itkSetMacro(MCTrajectoryVectorX, double);
143  itkSetMacro(MCTrajectoryVectorY, double);
144  itkSetMacro(MCTrajectoryVectorZ, double);
145  itkSetMacro(MCRadius, double);
146  itkSetMacro(MCWaist, double);
147 
148  protected:
150  ~TissueGeneratorParameters() override;
151 
152  private:
153 
154  int m_XDim;
155  int m_YDim;
156  int m_ZDim;
157  double m_VoxelSpacingInCentimeters;
158  bool m_DoPartialVolume;
159  bool m_UseRngSeed;
160  long m_RngSeed;
161  bool m_RandomizePhysicalProperties;
162  double m_RandomizePhysicalPropertiesPercentage;
163  bool m_ForceVesselsMoveAlongYDirection;
164 
165  double m_MinBackgroundAbsorption;
166  double m_MaxBackgroundAbsorption;
167  double m_BackgroundScattering;
168  double m_BackgroundAnisotropy;
169  double m_AirAbsorption;
170  double m_AirScattering;
171  double m_AirAnisotropy;
172  double m_AirThicknessInMillimeters;
173  double m_SkinAbsorption;
174  double m_SkinScattering;
175  double m_SkinAnisotropy;
176  double m_SkinThicknessInMillimeters;
177 
178  CalculateNewVesselPositionCallback m_CalculateNewVesselPositionCallback;
179  int m_MinNumberOfVessels;
180  int m_MaxNumberOfVessels;
181  double m_MinVesselBending;
182  double m_MaxVesselBending;
183  double m_MinVesselAbsorption;
184  double m_MaxVesselAbsorption;
185  double m_MinVesselRadiusInMillimeters;
186  double m_MaxVesselRadiusInMillimeters;
187  int m_VesselBifurcationFrequency;
188  double m_MinVesselScattering;
189  double m_MaxVesselScattering;
190  double m_MinVesselAnisotropy;
191  double m_MaxVesselAnisotropy;
192  double m_MinVesselZOrigin;
193  double m_MaxVesselZOrigin;
194 
195  double m_MCflag;
196  double m_MCLaunchflag;
197  double m_MCBoundaryflag;
198  double m_MCLaunchPointX;
199  double m_MCLaunchPointY;
200  double m_MCLaunchPointZ;
201  double m_MCFocusPointX;
202  double m_MCFocusPointY;
203  double m_MCFocusPointZ;
204  double m_MCTrajectoryVectorX;
205  double m_MCTrajectoryVectorY;
206  double m_MCTrajectoryVectorZ;
207  double m_MCRadius;
208  double m_MCWaist;
209  };
210  }
211 }
212 #endif // MITKPHOTOACOUSTICTISSUEGENERATORPARAMETERS_H
DataCollection - Class to facilitate loading/accessing structured data.
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:49
#define MITKPHOTOACOUSTICSLIB_EXPORT