51     registerItem(
"CylindersAndPrismsBuilder", create_new<CylindersAndPrismsBuilder>);
 
   54                  create_new<TwoTypesCylindersDistributionBuilder>);
 
   56     registerItem(
"CylindersInBABuilder", create_new<CylindersInBABuilder>);
 
   57     registerItem(
"CylindersInDWBABuilder", create_new<CylindersInDWBABuilder>);
 
   58     registerItem(
"LargeCylindersInDWBABuilder", create_new<LargeCylindersInDWBABuilder>);
 
   61                  create_new<CylindersWithSizeDistributionBuilder>);
 
   63     registerItem(
"RadialParaCrystalBuilder", create_new<RadialParaCrystalBuilder>);
 
   65     registerItem(
"HardDiskBuilder", create_new<HardDiskBuilder>);
 
   67     registerItem(
"Basic2DParaCrystalBuilder", create_new<Basic2DParaCrystalBuilder>);
 
   69     registerItem(
"HexParaCrystalBuilder", create_new<HexParaCrystalBuilder>);
 
   71     registerItem(
"Lattice1DBuilder", create_new<Lattice1DBuilder>);
 
   73     registerItem(
"RectParaCrystalBuilder", create_new<RectParaCrystalBuilder>);
 
   75     registerItem(
"Basic2DLatticeBuilder", create_new<Basic2DLatticeBuilder>);
 
   77     registerItem(
"SquareLatticeBuilder", create_new<SquareLatticeBuilder>);
 
   79     registerItem(
"CenteredSquareLatticeBuilder", create_new<CenteredSquareLatticeBuilder>);
 
   81     registerItem(
"RotatedSquareLatticeBuilder", create_new<RotatedSquareLatticeBuilder>);
 
   83     registerItem(
"FiniteSquareLatticeBuilder", create_new<FiniteSquareLatticeBuilder>);
 
   85     registerItem(
"SuperLatticeBuilder", create_new<SuperLatticeBuilder>);
 
   87     registerItem(
"CustomMorphologyBuilder", create_new<CustomMorphologyBuilder>);
 
   89     registerItem(
"RotatedPyramidsBuilder", create_new<RotatedPyramidsBuilder>);
 
   91     registerItem(
"CoreShellParticleBuilder", create_new<CoreShellParticleBuilder>);
 
   93     registerItem(
"CoreShellBoxRotateZandYBuilder", create_new<CoreShellBoxRotateZandYBuilder>);
 
   95     registerItem(
"SizeDistributionDAModelBuilder", create_new<SizeDistributionDAModelBuilder>);
 
   97     registerItem(
"SizeDistributionLMAModelBuilder", create_new<SizeDistributionLMAModelBuilder>);
 
   99     registerItem(
"SizeDistributionSSCAModelBuilder", create_new<SizeDistributionSSCAModelBuilder>);
 
  101     registerItem(
"CylindersInSSCABuilder", create_new<CylindersInSSCABuilder>);
 
  103     registerItem(
"MesoCrystalBuilder", create_new<MesoCrystalBuilder>);
 
  105     registerItem(
"MagneticParticleZeroFieldBuilder", create_new<MagneticParticleZeroFieldBuilder>);
 
  107     registerItem(
"MagneticCylindersBuilder", create_new<MagneticCylindersBuilder>);
 
  110                  create_new<MagneticSubstrateZeroFieldBuilder>);
 
  112     registerItem(
"SimpleMagneticLayerBuilder", create_new<SimpleMagneticLayerBuilder>);
 
  114     registerItem(
"SimpleMagneticRotationBuilder", create_new<SimpleMagneticRotationBuilder>);
 
  116     registerItem(
"MagneticLayerBuilder", create_new<MagneticLayerBuilder>);
 
  118     registerItem(
"FeNiBilayerBuilder", create_new<FeNiBilayerBuilder>);
 
  120     registerItem(
"FeNiBilayerTanhBuilder", create_new<FeNiBilayerTanhBuilder>);
 
  122     registerItem(
"FeNiBilayerNCBuilder", create_new<FeNiBilayerNCBuilder>);
 
  124     registerItem(
"FeNiBilayerSpinFlipBuilder", create_new<FeNiBilayerSpinFlipBuilder>);
 
  126     registerItem(
"FeNiBilayerSpinFlipTanhBuilder", create_new<FeNiBilayerSpinFlipTanhBuilder>);
 
  128     registerItem(
"FeNiBilayerSpinFlipNCBuilder", create_new<FeNiBilayerSpinFlipNCBuilder>);
 
  130     registerItem(
"MagneticRotationBuilder", create_new<MagneticRotationBuilder>);
 
  132     registerItem(
"MagneticSpheresBuilder", create_new<MagneticSpheresBuilder>);
 
  134     registerItem(
"MultiLayerWithRoughnessBuilder", create_new<MultiLayerWithRoughnessBuilder>);
 
  136     registerItem(
"MultiLayerWithNCRoughnessBuilder", create_new<MultiLayerWithNCRoughnessBuilder>);
 
  138     registerItem(
"TwoLayerRoughnessBuilder", create_new<TwoLayerRoughnessBuilder>);
 
  140     registerItem(
"MultipleLayoutBuilder", create_new<MultipleLayoutBuilder>);
 
  142     registerItem(
"TriangularRippleBuilder", create_new<TriangularRippleBuilder>);
 
  144     registerItem(
"AsymRippleBuilder", create_new<AsymRippleBuilder>);
 
  146     registerItem(
"CosineRippleBuilder", create_new<CosineRippleBuilder>);
 
  148     registerItem(
"ParticleCompositionBuilder", create_new<ParticleCompositionBuilder>);
 
  150     registerItem(
"BoxCompositionRotateXBuilder", create_new<BoxCompositionRotateXBuilder>);
 
  152     registerItem(
"BoxCompositionRotateYBuilder", create_new<BoxCompositionRotateYBuilder>);
 
  154     registerItem(
"BoxCompositionRotateZBuilder", create_new<BoxCompositionRotateZBuilder>);
 
  156     registerItem(
"BoxCompositionRotateZandYBuilder", create_new<BoxCompositionRotateZandYBuilder>);
 
  158     registerItem(
"BoxStackCompositionBuilder", create_new<BoxStackCompositionBuilder>);
 
  160     registerItem(
"ParticleInVacuumBuilder", create_new<ParticleInVacuumBuilder>);
 
  162     registerItem(
"TransformBoxBuilder", create_new<TransformBoxBuilder>);
 
  164     registerItem(
"LayersWithAbsorptionBuilder", create_new<LayersWithAbsorptionBuilder>);
 
  166     registerItem(
"LayersWithAbsorptionBySLDBuilder", create_new<LayersWithAbsorptionBySLDBuilder>);
 
  168     registerItem(
"BoxesSquareLatticeBuilder", create_new<BoxesSquareLatticeBuilder>);
 
  170     registerItem(
"RotatedCylindersBuilder", create_new<RotatedCylindersBuilder>);
 
  172     registerItem(
"SlicedCompositionBuilder", create_new<SlicedCompositionBuilder>);
 
  175                  create_new<RotatedPyramidsDistributionBuilder>);
 
  178                  create_new<SpheresWithLimitsDistributionBuilder>);
 
  181                  create_new<ConesWithLimitsDistributionBuilder>);
 
  183     registerItem(
"LinkedBoxDistributionBuilder", create_new<LinkedBoxDistributionBuilder>);
 
  185     registerItem(
"HomogeneousMultilayerBuilder", create_new<HomogeneousMultilayerBuilder>);
 
  187     registerItem(
"PlainMultiLayerBySLDBuilder", create_new<PlainMultiLayerBySLDBuilder>);
 
  189     registerItem(
"ResonatorBuilder", create_new<ResonatorBuilder>);
 
  191     registerItem(
"SlicedCylindersBuilder", create_new<SlicedCylindersBuilder>);
 
  193     registerItem(
"SLDSlicedCylindersBuilder", create_new<SLDSlicedCylindersBuilder>);
 
  195     registerItem(
"AveragedSlicedCylindersBuilder", create_new<AveragedSlicedCylindersBuilder>);
 
  197     registerItem(
"ThickAbsorptiveSampleBuilder", create_new<ThickAbsorptiveSampleBuilder>);
 
Defines classes of BoxCompositionBuilder family.
 
Defines class BoxesSquareLatticeBuilder.
 
Defines class CoreShellParticleBuilder.
 
Defines class CustomMorphologyBuilder.
 
Defines class CylindersAndPrismsBuilder.
 
Defines classes of CylindersBuilder family.
 
Defines various sample builder classes to test polarized specular computations.
 
Defines class HomogeneousMultilayerBuilder.
 
Defines class Lattice1DBuilder.
 
Defines class LayersWithAbsorptionBuilder.
 
Defines class LayersWithAbsorptionBySLDBuilder.
 
Defines class to build samples with magnetic layers.
 
Defines class to build magnetic samples.
 
Defines class MesoCrystalBuilder.
 
Defines class MultiLayerWithNCRoughnessBuilder.
 
Defines class MultipleLayoutBuilder.
 
Defines classes of ParaCrystalBuilder family.
 
Defines class ParticleCompositionBuilder.
 
Defines classes of with different types of particle distributions.
 
Defines class ParticleInVacuumBuilder.
 
Defines classes of PercusYevickBuilder family.
 
Declares the class PlainMultiLayerBySLDBuilder.
 
Defines ResonatorBuilder class.
 
Defines classes to build various ripples.
 
Defines class RotatedPyramidsBuilder.
 
Defines class SampleBuilderFactory.
 
Defines various sample builder classes to test DA, LMA, SSCA approximations.
 
Defines classes to build various particles crossing interfaces.
 
Defines classes for testing slicing machinery.
 
Defines class to build thick highly-absorptive sample with roughness.
 
Defines class IsGISAXS06Builder.
 
Defines class TwoLayerRoughnessBuilder.
 
bool registerItem(const std::string &item_key, CreateItemCallback CreateFn)
Registers object's creation function.
 
std::unique_ptr< ISampleBuilder > createItemPtr(const std::string &item_key) const
 
Our sample model: a stack of layers one below the other.
 
MultiLayer * createSampleByName(const std::string &name)
Retrieves a SampleBuilder from the registry, does the build, and returns the result.