2 #include "diffractometerfactory.h"
3 #include "diffractometer.h"
8 DiffractometerFactory::DiffractometerFactory()
12 DiffractometerFactory::~DiffractometerFactory()
17 * @brief Create a new reflection.
18 * @param type The hkl::DiffractometerType of the Diffractometer to create.
19 * @param parameter A double use to build the Diffractometer.
20 * @return The created Diffractometer.
22 * This parameter has no effect for an Eulerian diffractometer.
23 * But correspond to the alpha angle of the Kappa Geometry for the Kappa diffractometers.
26 hkl::Diffractometer
* DiffractometerFactory::create(hkl::DiffractometerType type
, double parameter
)
28 Diffractometer
* diffractometer
;
32 case DIFFRACTOMETER_TWOC_VERTICAL
:
33 diffractometer
= new hkl::twoC::vertical::Diffractometer
;
35 case DIFFRACTOMETER_EULERIAN4C_VERTICAL
:
36 diffractometer
= new hkl::eulerian4C::vertical::Diffractometer
;
38 case DIFFRACTOMETER_EULERIAN6C
:
39 diffractometer
= new hkl::eulerian6C::Diffractometer
;
41 case DIFFRACTOMETER_KAPPA4C_VERTICAL
:
42 diffractometer
= new hkl::kappa4C::vertical::Diffractometer(parameter
);
44 case DIFFRACTOMETER_KAPPA6C
:
45 diffractometer
= new hkl::kappa6C::Diffractometer(parameter
);
48 HKLEXCEPTION("Unknown diffractometer Type.", "Please use a correct type.");
50 return diffractometer
;