diff --git a/Core/Computation/ProfileHelper.h b/Core/Computation/ProfileHelper.h index 6938805e033a4726ed93cefccb36b5942ec75936..849f02b33171104fa3d17fa6dcee7e2b8ffb94b2 100644 --- a/Core/Computation/ProfileHelper.h +++ b/Core/Computation/ProfileHelper.h @@ -21,6 +21,8 @@ #include <utility> #include <vector> +class ProcessedSample; + //! Object that can generate the material profile of a sample as a function of depth. //! //! The generated profile contains the complex SLD for SLD materials and the parameters @@ -28,8 +30,6 @@ //! //! @ingroup algorithms_internal -class ProcessedSample; - class BA_CORE_API_ ProfileHelper { public: diff --git a/Core/Instrument/RectangularDetector.h b/Core/Instrument/RectangularDetector.h index 5a788e0b298e9e612b6613b1d0f15e7422c62e98..f6fb098c6fbfee1b7d51f52afeedeb97ea3addf3 100644 --- a/Core/Instrument/RectangularDetector.h +++ b/Core/Instrument/RectangularDetector.h @@ -18,7 +18,29 @@ #include "IDetector2D.h" #include "IPixel.h" -class RectangularPixel; +//! A pixel in a RectangularDetector. + +class BA_CORE_API_ RectangularPixel : public IPixel +{ +public: + RectangularPixel(kvector_t corner_pos, kvector_t width, kvector_t height); + + RectangularPixel* clone() const override; + RectangularPixel* createZeroSizePixel(double x, double y) const override; + kvector_t getK(double x, double y, double wavelength) const override; + kvector_t getPosition(double x, double y) const; + double getIntegrationFactor(double x, double y) const override; + double getSolidAngle() const override; + +private: + kvector_t normalizeLength(const kvector_t direction, double length) const; + double calculateSolidAngle() const; + kvector_t m_corner_pos; + kvector_t m_width; + kvector_t m_height; + double m_solid_angle; + kvector_t m_normal; +}; //! A flat rectangular detector with axes and resolution function. //! @ingroup detector @@ -108,26 +130,4 @@ private: kvector_t m_v_unit; }; -class BA_CORE_API_ RectangularPixel : public IPixel -{ -public: - RectangularPixel(kvector_t corner_pos, kvector_t width, kvector_t height); - - RectangularPixel* clone() const override; - RectangularPixel* createZeroSizePixel(double x, double y) const override; - kvector_t getK(double x, double y, double wavelength) const override; - kvector_t getPosition(double x, double y) const; - double getIntegrationFactor(double x, double y) const override; - double getSolidAngle() const override; - -private: - kvector_t normalizeLength(const kvector_t direction, double length) const; - double calculateSolidAngle() const; - kvector_t m_corner_pos; - kvector_t m_width; - kvector_t m_height; - double m_solid_angle; - kvector_t m_normal; -}; - #endif // RECTANGULARDETECTOR_H diff --git a/Core/Instrument/SphericalDetector.h b/Core/Instrument/SphericalDetector.h index 60c489ea52d14ddb25d84f3df79a38204f8eee64..e999d1b720a98a6bcd8ef07b97fc6eaa61c7e265 100644 --- a/Core/Instrument/SphericalDetector.h +++ b/Core/Instrument/SphericalDetector.h @@ -18,8 +18,26 @@ #include "IDetector2D.h" #include "IPixel.h" +//! A pixel in a SphericalDetector + +class BA_CORE_API_ SphericalPixel : public IPixel +{ +public: + SphericalPixel(const Bin1D& alpha_bin, const Bin1D& phi_bin); + + SphericalPixel* clone() const override; + SphericalPixel* createZeroSizePixel(double x, double y) const override; + kvector_t getK(double x, double y, double wavelength) const override; + double getIntegrationFactor(double x, double y) const override; + double getSolidAngle() const override; + +private: + double m_alpha, m_phi; + double m_dalpha, m_dphi; + double m_solid_angle; +}; + //! A spherical detector with axes and resolution function. -//! SphericalDetector //! @ingroup detector class BA_CORE_API_ SphericalDetector : public IDetector2D @@ -61,21 +79,4 @@ protected: size_t getIndexOfSpecular(const Beam& beam) const override; }; -class BA_CORE_API_ SphericalPixel : public IPixel -{ -public: - SphericalPixel(const Bin1D& alpha_bin, const Bin1D& phi_bin); - - SphericalPixel* clone() const override; - SphericalPixel* createZeroSizePixel(double x, double y) const override; - kvector_t getK(double x, double y, double wavelength) const override; - double getIntegrationFactor(double x, double y) const override; - double getSolidAngle() const override; - -private: - double m_alpha, m_phi; - double m_dalpha, m_dphi; - double m_solid_angle; -}; - #endif // SPHERICALDETECTOR_H diff --git a/Core/Scattering/Rotations.h b/Core/Scattering/Rotations.h index 59e3cb3dc1560e10d7c392971dc096d124d66644..f0f4ae1d23df5ea5c818e915c5a4974f50c8556c 100644 --- a/Core/Scattering/Rotations.h +++ b/Core/Scattering/Rotations.h @@ -46,6 +46,8 @@ BA_CORE_API_ IRotation* createProduct(const IRotation& left, const IRotation& ri bool IsZRotation(const IRotation& rot); +//! The identity rotation, which leaves everything in place. + class BA_CORE_API_ IdentityRotation : public IRotation { public: @@ -61,6 +63,8 @@ public: bool isIdentity() const { return true; } }; +//! A rotation about the x axis. + class BA_CORE_API_ RotationX : public IRotation { public: @@ -79,6 +83,8 @@ protected: double m_angle; }; +//! A rotation about the y axis. + class BA_CORE_API_ RotationY : public IRotation { public: @@ -97,6 +103,8 @@ protected: double m_angle; }; +//! A rotation about the z axis. + class BA_CORE_API_ RotationZ : public IRotation { public: @@ -115,6 +123,8 @@ protected: double m_angle; }; +//! A sequence of rotations about the z-x'-z'' axes. + class BA_CORE_API_ RotationEuler : public IRotation { public: