* add the axis source test
[hkl.git] / src / diffractometerfactory.cpp
blobaada1f5328cd1cbd92d3d4578318e1ce20ddf18d
2 #include "diffractometerfactory.h"
3 #include "diffractometer.h"
5 namespace hkl
8 DiffractometerFactory::DiffractometerFactory()
12 DiffractometerFactory::~DiffractometerFactory()
16 /**
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;
30 switch (type)
32 case DIFFRACTOMETER_TWOC_VERTICAL :
33 diffractometer = new hkl::twoC::vertical::Diffractometer;
34 break;
35 case DIFFRACTOMETER_EULERIAN4C_VERTICAL :
36 diffractometer = new hkl::eulerian4C::vertical::Diffractometer;
37 break;
38 case DIFFRACTOMETER_EULERIAN6C :
39 diffractometer = new hkl::eulerian6C::Diffractometer;
40 break;
41 case DIFFRACTOMETER_KAPPA4C_VERTICAL :
42 diffractometer = new hkl::kappa4C::vertical::Diffractometer(parameter);
43 break;
44 case DIFFRACTOMETER_KAPPA6C :
45 diffractometer = new hkl::kappa6C::Diffractometer(parameter);
46 break;
47 default :
48 HKLEXCEPTION("Unknown diffractometer Type.", "Please use a correct type.");
50 return diffractometer;
54 } // namespace hkl