67 add(
"MultiLayer", create_new<MultiLayerItem>);
68 add(
"Layer", create_new<LayerItem>);
69 add(
"ParticleLayout", create_new<ParticleLayoutItem>);
70 add(
"Particle", create_new<ParticleItem>);
71 add(
"Rotation", create_new<TransformationItem>);
72 add(
"ParticleCoreShell", create_new<ParticleCoreShellItem>);
73 add(
"ParticleComposition", create_new<ParticleCompositionItem>);
74 add(
"ParticleDistribution", create_new<ParticleDistributionItem>);
75 add(
"MesoCrystal", create_new<MesoCrystalItem>);
76 add(
"Interference1DLattice", create_new<InterferenceFunction1DLatticeItem>);
77 add(
"Interference2DLattice", create_new<InterferenceFunction2DLatticeItem>);
78 add(
"Interference2DParaCrystal", create_new<InterferenceFunction2DParaCrystalItem>);
79 add(
"InterferenceFinite2DLattice", create_new<InterferenceFunctionFinite2DLatticeItem>);
80 add(
"InterferenceHardDisk", create_new<InterferenceFunctionHardDiskItem>);
81 add(
"InterferenceRadialParaCrystal", create_new<InterferenceFunctionRadialParaCrystalItem>);
82 add(
"GISASInstrument", create_new<GISASInstrumentItem>);
83 add(
"OffSpecularInstrument", create_new<OffSpecularInstrumentItem>);
84 add(
"SpecularInstrument", create_new<SpecularInstrumentItem>);
85 add(
"GISASBeam", create_new<GISASBeamItem>);
86 add(
"SpecularBeam", create_new<SpecularBeamItem>);
87 add(
"NoBackground", create_new<BackgroundNoneItem>);
88 add(
"ConstantBackground", create_new<ConstantBackgroundItem>);
89 add(
"PoissonNoiseBackground", create_new<PoissonNoiseBackgroundItem>);
90 add(
"NoFootprint", create_new<FootprintNoneItem>);
91 add(
"GaussianFootrpint", create_new<FootprintGaussianItem>);
92 add(
"SquareFootprint", create_new<FootprintSquareItem>);
93 add(
"Vector", create_new<VectorItem>);
94 add(
"Property", create_new<PropertyItem>);
96 add(
"AnisoPyramid", create_new<AnisoPyramidItem>);
97 add(
"BarGauss", create_new<BarGaussItem>);
98 add(
"BarLorentz", create_new<BarLorentzItem>);
99 add(
"Box", create_new<BoxItem>);
100 add(
"Cone", create_new<ConeItem>);
101 add(
"Cone6", create_new<Cone6Item>);
102 add(
"Cuboctahedron", create_new<CuboctahedronItem>);
103 add(
"Dodecahedron", create_new<DodecahedronItem>);
104 add(
"Dot", create_new<DotItem>);
105 add(
"Cylinder", create_new<CylinderItem>);
106 add(
"EllipsoidalCylinder", create_new<EllipsoidalCylinderItem>);
107 add(
"FullSphere", create_new<FullSphereItem>);
108 add(
"FullSpheroid", create_new<FullSpheroidItem>);
109 add(
"HemiEllipsoid", create_new<HemiEllipsoidItem>);
110 add(
"Icosahedron", create_new<IcosahedronItem>);
111 add(
"Prism3", create_new<Prism3Item>);
112 add(
"Prism6", create_new<Prism6Item>);
113 add(
"Pyramid", create_new<PyramidItem>);
114 add(
"CosineRippleBox", create_new<CosineRippleBoxItem>);
115 add(
"CosineRippleGauss", create_new<CosineRippleGaussItem>);
116 add(
"CosineRippleLorentz", create_new<CosineRippleLorentzItem>);
117 add(
"SawtoothRippleBox", create_new<SawtoothRippleBoxItem>);
118 add(
"SawtoothRippleGauss", create_new<SawtoothRippleGaussItem>);
119 add(
"SawtoothRippleLorentz", create_new<SawtoothRippleLorentzItem>);
120 add(
"Tetrahedron", create_new<TetrahedronItem>);
121 add(
"TruncatedCube", create_new<TruncatedCubeItem>);
122 add(
"TruncatedSphere", create_new<TruncatedSphereItem>);
123 add(
"TruncatedSpheroid", create_new<TruncatedSpheroidItem>);
125 add(
"XRotation", create_new<XRotationItem>);
126 add(
"YRotation", create_new<YRotationItem>);
127 add(
"ZRotation", create_new<ZRotationItem>);
128 add(
"EulerRotation", create_new<EulerRotationItem>);
130 add(
"LayerBasicRoughness", create_new<LayerBasicRoughnessItem>);
131 add(
"LayerZeroRoughness", create_new<LayerZeroRoughnessItem>);
133 add(
"SphericalDetector", create_new<SphericalDetectorItem>);
134 add(
"RectangularDetector", create_new<RectangularDetectorItem>);
136 add(
"DistributionNone", create_new<DistributionNoneItem>);
137 add(
"DistributionGate", create_new<DistributionGateItem>);
138 add(
"DistributionLorentz", create_new<DistributionLorentzItem>);
139 add(
"DistributionGaussian", create_new<DistributionGaussianItem>);
140 add(
"DistributionLogNormal", create_new<DistributionLogNormalItem>);
141 add(
"DistributionCosine", create_new<DistributionCosineItem>);
142 add(
"DistributionTrapezoid", create_new<DistributionTrapezoidItem>);
144 add(
"FTDistribution1DCauchy", create_new<FTDistribution1DCauchyItem>);
145 add(
"FTDistribution1DGauss", create_new<FTDistribution1DGaussItem>);
146 add(
"FTDistribution1DGate", create_new<FTDistribution1DGateItem>);
147 add(
"FTDistribution1DTriangle", create_new<FTDistribution1DTriangleItem>);
148 add(
"FTDistribution1DCosine", create_new<FTDistribution1DCosineItem>);
149 add(
"FTDistribution1DVoigt", create_new<FTDistribution1DVoigtItem>);
151 add(
"FTDistribution2DCauchy", create_new<FTDistribution2DCauchyItem>);
152 add(
"FTDistribution2DGauss", create_new<FTDistribution2DGaussItem>);
153 add(
"FTDistribution2DGate", create_new<FTDistribution2DGateItem>);
154 add(
"FTDistribution2DCone", create_new<FTDistribution2DConeItem>);
155 add(
"FTDistribution2DVoigt", create_new<FTDistribution2DVoigtItem>);
157 add(
"FTDecayFunction1DCauchy", create_new<FTDecayFunction1DCauchyItem>);
158 add(
"FTDecayFunction1DGauss", create_new<FTDecayFunction1DGaussItem>);
159 add(
"FTDecayFunction1DTriangle", create_new<FTDecayFunction1DTriangleItem>);
160 add(
"FTDecayFunction1DVoigt", create_new<FTDecayFunction1DVoigtItem>);
162 add(
"FTDecayFunction2DCauchy", create_new<FTDecayFunction2DCauchyItem>);
163 add(
"FTDecayFunction2DGauss", create_new<FTDecayFunction2DGaussItem>);
164 add(
"FTDecayFunction2DVoigt", create_new<FTDecayFunction2DVoigtItem>);
166 add(
"BasicLattice2D", create_new<BasicLattice2DItem>);
167 add(
"SquareLattice2D", create_new<SquareLattice2DItem>);
168 add(
"HexagonalLattice2D", create_new<HexagonalLattice2DItem>);
170 add(
"Material", create_new<MaterialItem>);
171 add(
"MaterialContainer", create_new<MaterialItemContainer>);
173 add(
"MaterialRefractiveData", create_new<MaterialRefractiveDataItem>);
174 add(
"MaterialSLDData", create_new<MaterialSLDDataItem>);
176 add(
"JobItem", create_new<JobItem>);
178 add(
"IntensityData", create_new<IntensityDataItem>);
179 add(
"SpecularData", create_new<SpecularDataItem>);
180 add(
"Data1DViewItem", create_new<Data1DViewItem>);
181 add(
"DataPropertyContainer", create_new<DataPropertyContainer>);
182 add(
"DataItem1DProperties", create_new<Data1DProperties>);
184 add(
"BasicAxis", create_new<BasicAxisItem>);
185 add(
"PointwiseAxis", create_new<PointwiseAxisItem>);
186 add(
"AmplitudeAxis", create_new<AmplitudeAxisItem>);
188 add(
"BeamWavelength", create_new<BeamWavelengthItem>);
189 add(
"BeamAzimuthalAngle", create_new<BeamAzimuthalAngleItem>);
190 add(
"BeamInclinationAngle", create_new<BeamInclinationAngleItem>);
191 add(
"SpecularBeamInclinationAxis", create_new<SpecularBeamInclinationItem>);
192 add(
"SpecularBeamWavelength", create_new<SpecularBeamWavelengthItem>);
194 add(
"ResolutionFunctionNone", create_new<ResolutionFunctionNoneItem>);
195 add(
"ResolutionFunction2DGaussian", create_new<ResolutionFunction2DGaussianItem>);
197 add(
"MaskContainer", create_new<MaskContainerItem>);
198 add(
"RectangleMask", create_new<RectangleItem>);
199 add(
"PolygonPoint", create_new<PolygonPointItem>);
200 add(
"PolygonMask", create_new<PolygonItem>);
201 add(
"VerticalLineMask", create_new<VerticalLineItem>);
202 add(
"HorizontalLineMask", create_new<HorizontalLineItem>);
203 add(
"EllipseMask", create_new<EllipseItem>);
204 add(
"MaskAllMask", create_new<MaskAllItem>);
206 add(
"RegionOfInterest", create_new<RegionOfInterestItem>);
208 add(
"GroupProperty", create_new<GroupItem>);
210 add(
"Parameter Container", create_new<ParameterContainerItem>);
211 add(
"Parameter Label", create_new<ParameterLabelItem>);
212 add(
"Parameter", create_new<ParameterItem>);
214 add(
"FitParameterContainer", create_new<FitParameterContainerItem>);
215 add(
"FitParameter", create_new<FitParameterItem>);
216 add(
"FitParameterLink", create_new<FitParameterLinkItem>);
217 add(
"FitSuite", create_new<FitSuiteItem>);
219 add(
"SimulationOptions", create_new<SimulationOptionsItem>);
221 add(
"RealData", create_new<RealDataItem>);
223 add(
"MinimizerContainer", create_new<MinimizerContainerItem>);
224 add(
"Minuit2", create_new<MinuitMinimizerItem>);
225 add(
"GSLMultiMin", create_new<GSLMultiMinimizerItem>);
226 add(
"Genetic", create_new<GeneticMinimizerItem>);
227 add(
"GSLSimAn", create_new<SimAnMinimizerItem>);
228 add(
"GSLLMA", create_new<GSLLMAMinimizerItem>);
229 add(
"Test", create_new<TestMinimizerItem>);
231 add(
"RealLimitsLimitless", create_new<LimitlessItem>);
232 add(
"RealLimitsPositive", create_new<PositiveItem>);
233 add(
"RealLimitsNonnegative", create_new<NonnegativeItem>);
234 add(
"RealLimitsLowerLimited", create_new<LowerLimitedItem>);
235 add(
"RealLimitsUpperLimited", create_new<UpperLimitedItem>);
236 add(
"RealLimitsLimited", create_new<LimitedItem>);
238 add(
"ProjectionContainer", create_new<ProjectionContainerItem>);
240 add(
"DepthProbeInstrument", create_new<DepthProbeInstrumentItem>);
246 throw GUIHelpers::Error(
"ItemFactory::createItem() -> Error: Model name does not exist: "
254 return {
"MultiLayer",
259 "ParticleComposition",
261 "ParticleDistribution",
263 "Interference1DLattice",
264 "Interference2DLattice",
265 "Interference2DParaCrystal",
266 "InterferenceFinite2DLattice",
267 "InterferenceHardDisk",
268 "InterferenceRadialParaCrystal"};
Defines BackgroundItem classes.
Defines class BeamAngleItems.
Defines class BeamWavelengthItem.
Defines class Data1DViewItem.
Defines class DataProperties and its descendants.
Defines class DataPropertyContainer.
Defines DepthProbeInstrumentItem class.
Defines FTDecayFunction1DItem classes.
Defines FTDistribution1DItem's classes.
Defines FitParameterItems family of classes.
Defines class FitSuiteItem.
Defines class GUIHelpers functions.
Defines class IntensityDataItem.
Defines InterferenceFunctionItems's classes.
Defines class ItemCatalog.
Defines classes Lattice2DItems.
Defines classes LayerRoughnessItems.
Defines MaskItems classes.
Defines MaterialDataItems classes.
Defines class MaterialItemContainer.
Defines class MaterialItem.
Defines class MesoCrystalItem.
Defines MinimizerItem class.
Defines class MultiLayerItem.
Defines classes for ParameterTreeItems.
Defines class ParticleCompositionItem.
Defines class ParticleCoreShellItem.
Defines class ParticleDistributionItem.
Defines class ParticleItem.
Defines class ParticleLayoutItem.
Defines pointwise axis item.
Defines items related to projections over color map.
Defines class PropertyItem.
Defines class RealDataItem.
Defines RealLimitsItems's classes.
Defines class RectangularDetectorItem.
Defines family of ResolutionFunctionItem.
Defines class RotationItems.
Defines class SimulationOptionsItem.
Declares the class SpecularBeamInclinationItem.
Defines class SpecularDataItem.
Defines class SphericalDetectorItem.
Defines class VectorItem.
bool registerItem(const Key &item_key, CreateItemCallback CreateFn)
Registers object's creation function.
bool contains(const Key &item_key) const
std::unique_ptr< AbstractProduct > createItemPtr(const Key &item_key) const
static QStringList validTopItemTypes()
void add(const QString &modelType, std::function< SessionItem *()> f)
std::unique_ptr< SessionItem > createItemPtr(const QString &modelType) const
IFactory< QString, SessionItem > m_data