* added all Geometries test method for the consign.
[hkl.git] / include / hkl / eulerian4C_vertical_geometry.h
blob94f935ac8d8c9e394c1a1dd2b188271fcadd593a
1 #ifndef _EULERIAN4C_VERTICAL_GEOMETRY_H
2 #define _EULERIAN4C_VERTICAL_GEOMETRY_H
5 #include "geometry.h"
6 #include "axe_rotation.h"
7 #include "HKLException.h"
9 namespace hkl { namespace twoC { namespace vertical { class Geometry; } } }
10 namespace hkl { namespace kappa4C { namespace vertical { class Geometry; } } }
11 namespace hkl { namespace eulerian6C { class Geometry; } }
12 namespace hkl { namespace kappa6C { class Geometry; } }
14 namespace hkl {
16 namespace eulerian4C {
18 namespace vertical {
20 class Geometry : public hkl::Geometry {
21 protected:
22 hkl::axe::Rotation * _omega;
24 hkl::axe::Rotation * _chi;
26 hkl::axe::Rotation * _phi;
28 hkl::axe::Rotation * _tth;
31 public:
32 /**
33 * @brief Default constructor
35 Geometry();
37 /**
38 * @brief Another constructor.
39 * @param omega the first angle value.
40 * @param chi the second angle value.
41 * @param phi the third angle value.
42 * @param tth the fourth angle value.
44 Geometry(double omega, double chi, double phi, double tth);
46 virtual ~Geometry();
48 /**
49 * @brief Copy Constructor.
51 Geometry(const Geometry & geometry);
53 /**
54 * @brief Get the _omega Axe.
55 * @return A pointer on the _omega Axe.
57 hkl::axe::Rotation * omega();
59 /**
60 * @brief Get the _chi Axe.
61 * @return A pointer on the _chi Axe.
63 hkl::axe::Rotation * chi();
65 /**
66 * @brief Get the _phi Axe.
67 * @return A pointer on the _phi Axe.
69 hkl::axe::Rotation * phi();
71 /**
72 * @brief Get the _tth Axe.
73 * @return A pointer on the _tth Axe.
75 hkl::axe::Rotation * tth();
77 /**
78 * @brief Get the _omega Axe.
79 * @return A pointer on the _omega Axe.
81 const hkl::axe::Rotation * omega() const;
83 /**
84 * @brief Get the _chi Axe.
85 * @return A pointer on the _chi Axe.
87 const hkl::axe::Rotation * chi() const;
89 /**
90 * @brief Get the _phi Axe.
91 * @return A pointer on the _phi Axe.
93 const hkl::axe::Rotation * phi() const;
95 /**
96 * @brief Get the _tth Axe.
97 * @return A pointer on the _tth Axe.
99 const hkl::axe::Rotation * tth() const;
102 * @brief Set the angles of the eulerian4CD::Vertical geometry.
103 * @param omega The value of the "omega" Axe.
104 * @param chi The value of the "chi" Axe.
105 * @param phi The value of the "phi" Axe.
106 * @param tth The value of the "tth" Axe.
108 void set_angles(double omega, double chi, double phi, double tth);
111 * @brief Set the angles of the eulerian4CD::Vertical geometry.
112 * @param omega The value of the "omega" Axe.
113 * @param chi The value of the "chi" Axe.
114 * @param phi The value of the "phi" Axe.
115 * @param tth The value of the "tth" Axe.
117 void set_angles_consign(double omega, double chi, double phi, double tth);
120 * @brief Set an eulerian4C::Vertical Geometry from another Geometry.
121 * @param geometry The hkl::twoC::vertical::Geometry.
122 * @param strict false or true if we must not care of the strictness of the conversion.
123 * @throw HKLException
125 void setFromGeometry(const hkl::twoC::vertical::Geometry & geometry, bool strict) throw(hkl::HKLException);
128 * @brief Set an eulerian4C::Vertical Geometry from another Geometry.
129 * @param geometry The hkl::kappa4C::vertical::Geometry.
130 * @param strict false or true if we must not care of the strictness of the conversion.
131 * @throw HKLException
133 void setFromGeometry(const hkl::kappa4C::vertical::Geometry & geometry, bool strict) throw(hkl::HKLException);
136 * @brief Set an eulerian4C::Vertical Geometry from another Geometry.
137 * @param geometry The hkl::eulerian6C::Geometry.
138 * @param strict false or true if we must not care of the strictness of the conversion.
139 * @throw HKLException
141 void setFromGeometry(const hkl::eulerian6C::Geometry & geometry, bool strict) throw(hkl::HKLException);
144 * @brief Set an eulerian4C::Vertical Geometry from another Geometry.
145 * @param geometry The hkl::kappa6C::Geometry.
146 * @param strict false or true if we must not care of the strictness of the conversion.
147 * @throw HKLException
149 void setFromGeometry(const hkl::kappa6C::Geometry & geometry, bool strict) throw(hkl::HKLException);
153 } // namespace hkl::eulerian4C::vertical
155 } // namespace hkl::eulerian4C
157 } // namespace hkl
158 #endif