From e2ccc2ec5c53d6eae9143955d4b1dac531ae7035 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Tue, 30 Jul 2024 19:35:56 +0200
Subject: [PATCH] rm local vector definitions

---
 Base/Math/FourierTransform.cpp        |  34 +--
 Base/Math/FourierTransform.h          |   9 +-
 Device/Resolution/Convolve.h          |   8 +-
 Img3D/Model/Geometry.h                |   4 +-
 Img3D/Model/Layer.h                   |   2 -
 Img3D/Model/PlottableBody.h           |   3 +-
 Sample/Interface/RoughnessMap.cpp     |  17 +-
 Sample/Interface/RoughnessMap.h       |   5 -
 auto/Wrap/libBornAgainSample.py       |   2 +-
 auto/Wrap/libBornAgainSample_wrap.cpp | 318 ++++++++++++--------------
 10 files changed, 179 insertions(+), 223 deletions(-)

diff --git a/Base/Math/FourierTransform.cpp b/Base/Math/FourierTransform.cpp
index 462fb39434d..3709ce55d32 100644
--- a/Base/Math/FourierTransform.cpp
+++ b/Base/Math/FourierTransform.cpp
@@ -95,7 +95,7 @@ void FourierTransform::Workspace::clear()
 /* ************************************************************************* */
 // Fourier Transform in 2D
 /* ************************************************************************* */
-FourierTransform::complex2d_t FourierTransform::rfft(const double2d_t& src)
+complex2d_t FourierTransform::rfft(const double2d_t& src)
 {
     // rows (h) and columns (w) of the input 'source'
     int h = src.size();
@@ -111,7 +111,7 @@ FourierTransform::complex2d_t FourierTransform::rfft(const double2d_t& src)
     return rfft2complex_vec();
 }
 
-FourierTransform::double2d_t FourierTransform::irfft(const complex2d_t& src, int w_real)
+double2d_t FourierTransform::irfft(const complex2d_t& src, int w_real)
 {
     // rows (h) of the input 'source'
     int h = src.size();
@@ -126,7 +126,7 @@ FourierTransform::double2d_t FourierTransform::irfft(const complex2d_t& src, int
     return irfft2double_vec();
 }
 
-FourierTransform::double2d_t FourierTransform::ramplitude(const double2d_t& src)
+double2d_t FourierTransform::ramplitude(const double2d_t& src)
 {
     complex2d_t complex_result = rfft(src);
     return fft2amp(complex_result);
@@ -135,20 +135,20 @@ FourierTransform::double2d_t FourierTransform::ramplitude(const double2d_t& src)
 /* ************************************************************************* */
 // Fourier Transform 2D shift - center array around zero frequency
 /* ************************************************************************* */
-FourierTransform::double2d_t FourierTransform::fftshift(const double2d_t& src)
+double2d_t FourierTransform::fftshift(const double2d_t& src)
 {
     return ::fftshift_2d(src, false);
 }
-FourierTransform::complex2d_t FourierTransform::fftshift(const complex2d_t& src)
+complex2d_t FourierTransform::fftshift(const complex2d_t& src)
 {
     return ::fftshift_2d(src, false);
 }
 
-FourierTransform::double2d_t FourierTransform::ifftshift(const double2d_t& src)
+double2d_t FourierTransform::ifftshift(const double2d_t& src)
 {
     return ::fftshift_2d(src, true);
 }
-FourierTransform::complex2d_t FourierTransform::ifftshift(const complex2d_t& src)
+complex2d_t FourierTransform::ifftshift(const complex2d_t& src)
 {
     return ::fftshift_2d(src, true);
 }
@@ -156,7 +156,7 @@ FourierTransform::complex2d_t FourierTransform::ifftshift(const complex2d_t& src
 /* ************************************************************************* */
 // Fourier Transform in 1D
 /* ************************************************************************* */
-FourierTransform::complex1d_t FourierTransform::rfft(const double1d_t& src)
+complex1d_t FourierTransform::rfft(const double1d_t& src)
 {
     // we simply create 2d arrays with length of first dimension equal to 1, and call 2d FT
     double2d_t src2d{src};
@@ -166,7 +166,7 @@ FourierTransform::complex1d_t FourierTransform::rfft(const double1d_t& src)
     return result2d[0];
 }
 
-FourierTransform::double1d_t FourierTransform::irfft(const complex1d_t& src, int w_src)
+double1d_t FourierTransform::irfft(const complex1d_t& src, int w_src)
 {
     // we simply create 2d arrays with length of first dimension equal to 1, and call 2d FT
     complex2d_t source2d{src};
@@ -176,7 +176,7 @@ FourierTransform::double1d_t FourierTransform::irfft(const complex1d_t& src, int
     return result2d[0];
 }
 
-FourierTransform::double1d_t FourierTransform::ramplitude(const double1d_t& src)
+double1d_t FourierTransform::ramplitude(const double1d_t& src)
 {
     complex2d_t complex_result2d{rfft(src)};
 
@@ -189,20 +189,20 @@ FourierTransform::double1d_t FourierTransform::ramplitude(const double1d_t& src)
 /* ************************************************************************* */
 // Fourier Transform 1D shift - center around zero frequency
 /* ************************************************************************* */
-FourierTransform::double1d_t FourierTransform::fftshift(const double1d_t& src)
+double1d_t FourierTransform::fftshift(const double1d_t& src)
 {
     return ::fftshift_1d(src, false);
 }
-FourierTransform::complex1d_t FourierTransform::fftshift(const complex1d_t& src)
+complex1d_t FourierTransform::fftshift(const complex1d_t& src)
 {
     return ::fftshift_1d(src, false);
 }
 
-FourierTransform::double1d_t FourierTransform::ifftshift(const double1d_t& src)
+double1d_t FourierTransform::ifftshift(const double1d_t& src)
 {
     return ::fftshift_1d(src, true);
 }
-FourierTransform::complex1d_t FourierTransform::ifftshift(const complex1d_t& src)
+complex1d_t FourierTransform::ifftshift(const complex1d_t& src)
 {
     return ::fftshift_1d(src, true);
 }
@@ -251,7 +251,7 @@ void FourierTransform::init_c2r(int h, int w_real)
 // convert output to standard containers
 /* ************************************************************************************ */
 
-FourierTransform::complex2d_t FourierTransform::rfft2complex_vec() const
+complex2d_t FourierTransform::rfft2complex_vec() const
 {
     ASSERT(ws.arr_fftw);
 
@@ -267,7 +267,7 @@ FourierTransform::complex2d_t FourierTransform::rfft2complex_vec() const
     return result;
 }
 
-FourierTransform::double2d_t FourierTransform::irfft2double_vec() const
+double2d_t FourierTransform::irfft2double_vec() const
 {
     ASSERT(ws.arr_real);
 
@@ -285,7 +285,7 @@ FourierTransform::double2d_t FourierTransform::irfft2double_vec() const
     return result;
 }
 
-FourierTransform::double2d_t FourierTransform::fft2amp(complex2d_t& source) const
+double2d_t FourierTransform::fft2amp(complex2d_t& source) const
 {
     ASSERT(ws.arr_fftw);
 
diff --git a/Base/Math/FourierTransform.h b/Base/Math/FourierTransform.h
index 310442ed79c..43fc3518eaa 100644
--- a/Base/Math/FourierTransform.h
+++ b/Base/Math/FourierTransform.h
@@ -18,19 +18,12 @@
 #ifndef BORNAGAIN_BASE_MATH_FOURIERTRANSFORM_H
 #define BORNAGAIN_BASE_MATH_FOURIERTRANSFORM_H
 
+#include "Base/Type/Vector.h"
 #include <fftw3.h>
-#include <heinz/Complex.h>
-#include <vector>
 
 //! Fourier transform of vectors (in 1D or 2D) using Fast Fourier Transform (fftw package).
 class FourierTransform {
 public:
-    // 1D and 2D vectors
-    using double1d_t = std::vector<double>;
-    using double2d_t = std::vector<double1d_t>;
-    using complex1d_t = std::vector<complex_t>;
-    using complex2d_t = std::vector<complex1d_t>;
-
     FourierTransform();
 
     // forward transform
diff --git a/Device/Resolution/Convolve.h b/Device/Resolution/Convolve.h
index d6f08723d78..0e3c3bfd5e8 100644
--- a/Device/Resolution/Convolve.h
+++ b/Device/Resolution/Convolve.h
@@ -18,8 +18,8 @@
 #ifndef BORNAGAIN_DEVICE_RESOLUTION_CONVOLVE_H
 #define BORNAGAIN_DEVICE_RESOLUTION_CONVOLVE_H
 
+#include "Base/Type/Vector.h"
 #include <fftw3.h>
-#include <vector>
 
 //! Convolution of two real vectors (in 1D or 2D) using Fast Fourier Transform.
 //!
@@ -36,12 +36,6 @@
 
 class Convolve {
 public:
-    //! definition of 1d vector of double
-    using double1d_t = std::vector<double>;
-
-    //! definition of 2d vector of double
-    using double2d_t = std::vector<double1d_t>;
-
     Convolve();
 
     //! convolution  modes
diff --git a/Img3D/Model/Geometry.h b/Img3D/Model/Geometry.h
index f931b16051c..4adf50aa1f0 100644
--- a/Img3D/Model/Geometry.h
+++ b/Img3D/Model/Geometry.h
@@ -15,15 +15,13 @@
 #ifndef BORNAGAIN_IMG3D_MODEL_GEOMETRY_H
 #define BORNAGAIN_IMG3D_MODEL_GEOMETRY_H
 
+#include "Base/Type/Vector.h"
 #include "Img3D/Model/Geometry_inc.h"
 #include <QVector>
-#include <vector>
 
 namespace Img3D {
 
 class Geometry {
-    using double2d_t = std::vector<std::vector<double>>;
-
 public:
     // vertex + normal pair
     struct VertexAndNormal {
diff --git a/Img3D/Model/Layer.h b/Img3D/Model/Layer.h
index 214e41dfb0c..19281c6f24d 100644
--- a/Img3D/Model/Layer.h
+++ b/Img3D/Model/Layer.h
@@ -24,8 +24,6 @@ class RoughnessItem;
 //! Particle layer: a transparent box
 class Layer : public PlottableBody {
 public:
-    using double2d_t = std::vector<std::vector<double>>;
-
     Layer(F3Range, const double2d_t* top = nullptr, const double2d_t* bottom = nullptr);
 };
 
diff --git a/Img3D/Model/PlottableBody.h b/Img3D/Model/PlottableBody.h
index 866b698bc79..69086a8c016 100644
--- a/Img3D/Model/PlottableBody.h
+++ b/Img3D/Model/PlottableBody.h
@@ -15,6 +15,7 @@
 #ifndef BORNAGAIN_IMG3D_MODEL_PLOTTABLEBODY_H
 #define BORNAGAIN_IMG3D_MODEL_PLOTTABLEBODY_H
 
+#include "Base/Type/Vector.h"
 #include "Img3D/Model/Geometry_inc.h"
 #include "Img3D/Type/FloatVector3D.h"
 #include <QColor>
@@ -30,8 +31,6 @@ class RoughnessItem;
 //! A geometric object. Base class for Particle and Layer.
 class PlottableBody {
 public:
-    using double2d_t = std::vector<std::vector<double>>;
-
     PlottableBody(GeometricID::Key, const double2d_t* top = nullptr,
                   const double2d_t* bottom = nullptr);
     virtual ~PlottableBody();
diff --git a/Sample/Interface/RoughnessMap.cpp b/Sample/Interface/RoughnessMap.cpp
index 0e40f37a4f7..5ad3032d28a 100644
--- a/Sample/Interface/RoughnessMap.cpp
+++ b/Sample/Interface/RoughnessMap.cpp
@@ -22,8 +22,7 @@ using std::numbers::pi;
 
 namespace {
 
-bool converged(const RoughnessMap::double2d_t& h_old, const RoughnessMap::double2d_t& h_new,
-               double threshold)
+bool converged(const double2d_t& h_old, const double2d_t& h_new, double threshold)
 {
     ASSERT(h_old.size() == h_new.size());
     ASSERT(h_old[0].size() == h_new[0].size());
@@ -63,13 +62,13 @@ RoughnessMap::RoughnessMap(size_t x_points, size_t y_points, double Lx, double L
         throw std::runtime_error("Sample Y length must be > 0");
 }
 
-RoughnessMap::double2d_t RoughnessMap::generateMap()
+double2d_t RoughnessMap::generateMap()
 {
     createMap();
     return m_rough_map;
 }
 
-RoughnessMap::double2d_t RoughnessMap::mapFromHeights() const
+double2d_t RoughnessMap::mapFromHeights() const
 {
     const size_t z_steps = 3999;
     const double sigma = m_layerRoughness->sigma();
@@ -97,7 +96,7 @@ RoughnessMap::double2d_t RoughnessMap::mapFromHeights() const
     return result;
 }
 
-RoughnessMap::double2d_t RoughnessMap::mapFromSpectrum() const
+double2d_t RoughnessMap::mapFromSpectrum() const
 {
     const double fft_factor = m_x_points * m_y_points / std::sqrt(m_lx * m_ly);
     const double dfx = 1. / m_lx;
@@ -156,8 +155,8 @@ RoughnessMap::double2d_t RoughnessMap::mapFromSpectrum() const
     return m_ft.irfft(spectrum, m_x_points);
 }
 
-RoughnessMap::double2d_t RoughnessMap::applySpectrumToHeights(const double2d_t& h_map,
-                                                              const double2d_t& s_map) const
+double2d_t RoughnessMap::applySpectrumToHeights(const double2d_t& h_map,
+                                                const double2d_t& s_map) const
 {
     // get spectrum
     auto h_fft = m_ft.rfft(h_map);
@@ -172,8 +171,8 @@ RoughnessMap::double2d_t RoughnessMap::applySpectrumToHeights(const double2d_t&
     return m_ft.irfft(h_fft, h_map[0].size());
 }
 
-RoughnessMap::double2d_t RoughnessMap::applyHeightsToSpectrum(const double2d_t& h_map,
-                                                              const double2d_t& s_map) const
+double2d_t RoughnessMap::applyHeightsToSpectrum(const double2d_t& h_map,
+                                                const double2d_t& s_map) const
 {
     // flatten spectral map
     auto s_map_flat = Vec::flatten(s_map);
diff --git a/Sample/Interface/RoughnessMap.h b/Sample/Interface/RoughnessMap.h
index 7148d3e9982..f360fed004c 100644
--- a/Sample/Interface/RoughnessMap.h
+++ b/Sample/Interface/RoughnessMap.h
@@ -30,11 +30,6 @@
 
 class RoughnessMap {
 public:
-    using double1d_t = FourierTransform::double1d_t;
-    using double2d_t = FourierTransform::double2d_t;
-    using complex1d_t = FourierTransform::complex1d_t;
-    using complex2d_t = FourierTransform::complex2d_t;
-
     RoughnessMap(size_t x_points, size_t y_points, double Lx, double Ly,
                  const LayerRoughness* layerRoughness, int seed = -1);
     RoughnessMap() = delete;
diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py
index 8054f0c3d4b..b6f32981718 100644
--- a/auto/Wrap/libBornAgainSample.py
+++ b/auto/Wrap/libBornAgainSample.py
@@ -4253,7 +4253,7 @@ class RoughnessMap(object):
         _libBornAgainSample.RoughnessMap_swiginit(self, _libBornAgainSample.new_RoughnessMap(x_points, y_points, Lx, Ly, layerRoughness, seed))
 
     def generateMap(self):
-        r"""generateMap(RoughnessMap self) -> RoughnessMap::double2d_t"""
+        r"""generateMap(RoughnessMap self) -> double2d_t"""
         return _libBornAgainSample.RoughnessMap_generateMap(self)
 
     def generate(self):
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index 7c20d30de17..ba2bf939743 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -3662,156 +3662,152 @@ namespace Swig {
 #define SWIGTYPE_p_Dodecahedron swig_types[14]
 #define SWIGTYPE_p_EllipsoidalCylinder swig_types[15]
 #define SWIGTYPE_p_ErfRoughness swig_types[16]
-#define SWIGTYPE_p_FourierTransform__double2d_t swig_types[17]
-#define SWIGTYPE_p_FuzzySphere swig_types[18]
-#define SWIGTYPE_p_GaussFisherPeakShape swig_types[19]
-#define SWIGTYPE_p_GaussSphere swig_types[20]
-#define SWIGTYPE_p_HemiEllipsoid swig_types[21]
-#define SWIGTYPE_p_HexagonalLattice2D swig_types[22]
-#define SWIGTYPE_p_HorizontalCylinder swig_types[23]
-#define SWIGTYPE_p_ICloneable swig_types[24]
-#define SWIGTYPE_p_ICosineRipple swig_types[25]
-#define SWIGTYPE_p_IFormfactor swig_types[26]
-#define SWIGTYPE_p_IFormfactorPolyhedron swig_types[27]
-#define SWIGTYPE_p_IFormfactorPrism swig_types[28]
-#define SWIGTYPE_p_IInterference swig_types[29]
-#define SWIGTYPE_p_IMaterialImpl swig_types[30]
-#define SWIGTYPE_p_INode swig_types[31]
-#define SWIGTYPE_p_IParticle swig_types[32]
-#define SWIGTYPE_p_IPeakShape swig_types[33]
-#define SWIGTYPE_p_IProfile1D swig_types[34]
-#define SWIGTYPE_p_IProfile2D swig_types[35]
-#define SWIGTYPE_p_IProfileRectangularRipple swig_types[36]
-#define SWIGTYPE_p_IProfileRipple swig_types[37]
-#define SWIGTYPE_p_IRotation swig_types[38]
-#define SWIGTYPE_p_ISampleNode swig_types[39]
-#define SWIGTYPE_p_ISawtoothRipple swig_types[40]
-#define SWIGTYPE_p_ISelectionRule swig_types[41]
-#define SWIGTYPE_p_Icosahedron swig_types[42]
-#define SWIGTYPE_p_IdentityRotation swig_types[43]
-#define SWIGTYPE_p_Interference1DLattice swig_types[44]
-#define SWIGTYPE_p_Interference2DLattice swig_types[45]
-#define SWIGTYPE_p_Interference2DParacrystal swig_types[46]
-#define SWIGTYPE_p_Interference2DSuperLattice swig_types[47]
-#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[48]
-#define SWIGTYPE_p_InterferenceHardDisk swig_types[49]
-#define SWIGTYPE_p_InterferenceNone swig_types[50]
-#define SWIGTYPE_p_InterferenceRadialParacrystal swig_types[51]
-#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[52]
-#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[53]
-#define SWIGTYPE_p_Lattice2D swig_types[54]
-#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[55]
-#define SWIGTYPE_p_Lattice3D swig_types[56]
-#define SWIGTYPE_p_Layer swig_types[57]
-#define SWIGTYPE_p_LayerRoughness swig_types[58]
-#define SWIGTYPE_p_LongBoxGauss swig_types[59]
-#define SWIGTYPE_p_LongBoxLorentz swig_types[60]
-#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[61]
-#define SWIGTYPE_p_Material swig_types[62]
-#define SWIGTYPE_p_MaterialBySLDImpl swig_types[63]
-#define SWIGTYPE_p_Mesocrystal swig_types[64]
-#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[65]
-#define SWIGTYPE_p_MisesGaussPeakShape swig_types[66]
-#define SWIGTYPE_p_MultiLayer swig_types[67]
-#define SWIGTYPE_p_Particle swig_types[68]
-#define SWIGTYPE_p_ParticleLayout swig_types[69]
-#define SWIGTYPE_p_PlatonicOctahedron swig_types[70]
-#define SWIGTYPE_p_PlatonicTetrahedron swig_types[71]
-#define SWIGTYPE_p_Prism3 swig_types[72]
-#define SWIGTYPE_p_Prism6 swig_types[73]
-#define SWIGTYPE_p_Profile1DCauchy swig_types[74]
-#define SWIGTYPE_p_Profile1DCosine swig_types[75]
-#define SWIGTYPE_p_Profile1DGate swig_types[76]
-#define SWIGTYPE_p_Profile1DGauss swig_types[77]
-#define SWIGTYPE_p_Profile1DTriangle swig_types[78]
-#define SWIGTYPE_p_Profile1DVoigt swig_types[79]
-#define SWIGTYPE_p_Profile2DCauchy swig_types[80]
-#define SWIGTYPE_p_Profile2DCone swig_types[81]
-#define SWIGTYPE_p_Profile2DGate swig_types[82]
-#define SWIGTYPE_p_Profile2DGauss swig_types[83]
-#define SWIGTYPE_p_Profile2DVoigt swig_types[84]
-#define SWIGTYPE_p_Pyramid2 swig_types[85]
-#define SWIGTYPE_p_Pyramid3 swig_types[86]
-#define SWIGTYPE_p_Pyramid4 swig_types[87]
-#define SWIGTYPE_p_Pyramid6 swig_types[88]
-#define SWIGTYPE_p_RefractiveMaterialImpl swig_types[89]
-#define SWIGTYPE_p_Rotation3DT_double_t swig_types[90]
-#define SWIGTYPE_p_RotationEuler swig_types[91]
-#define SWIGTYPE_p_RotationX swig_types[92]
-#define SWIGTYPE_p_RotationY swig_types[93]
-#define SWIGTYPE_p_RotationZ swig_types[94]
-#define SWIGTYPE_p_RoughnessMap swig_types[95]
-#define SWIGTYPE_p_RoughnessModel swig_types[96]
-#define SWIGTYPE_p_SawtoothRippleBox swig_types[97]
-#define SWIGTYPE_p_SawtoothRippleGauss swig_types[98]
-#define SWIGTYPE_p_SawtoothRippleLorentz swig_types[99]
-#define SWIGTYPE_p_SimpleSelectionRule swig_types[100]
-#define SWIGTYPE_p_Span swig_types[101]
-#define SWIGTYPE_p_Sphere swig_types[102]
-#define SWIGTYPE_p_Spheroid swig_types[103]
-#define SWIGTYPE_p_SpinMatrix swig_types[104]
-#define SWIGTYPE_p_SquareLattice2D swig_types[105]
-#define SWIGTYPE_p_TanhRoughness swig_types[106]
-#define SWIGTYPE_p_TruncatedCube swig_types[107]
-#define SWIGTYPE_p_TruncatedSphere swig_types[108]
-#define SWIGTYPE_p_TruncatedSpheroid swig_types[109]
-#define SWIGTYPE_p_Vec3T_double_t swig_types[110]
-#define SWIGTYPE_p_Vec3T_int_t swig_types[111]
-#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[112]
-#define SWIGTYPE_p_WavevectorInfo swig_types[113]
-#define SWIGTYPE_p_allocator_type swig_types[114]
-#define SWIGTYPE_p_char swig_types[115]
-#define SWIGTYPE_p_complex1d_t swig_types[116]
-#define SWIGTYPE_p_complex2d_t swig_types[117]
-#define SWIGTYPE_p_difference_type swig_types[118]
-#define SWIGTYPE_p_double1d_t swig_types[119]
-#define SWIGTYPE_p_double2d_t swig_types[120]
-#define SWIGTYPE_p_first_type swig_types[121]
-#define SWIGTYPE_p_int swig_types[122]
-#define SWIGTYPE_p_key_type swig_types[123]
-#define SWIGTYPE_p_long_long swig_types[124]
-#define SWIGTYPE_p_mapped_type swig_types[125]
-#define SWIGTYPE_p_p_PyObject swig_types[126]
-#define SWIGTYPE_p_second_type swig_types[127]
-#define SWIGTYPE_p_short swig_types[128]
-#define SWIGTYPE_p_signed_char swig_types[129]
-#define SWIGTYPE_p_size_type swig_types[130]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[131]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[132]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[133]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[134]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[135]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[136]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[137]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[138]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_t_t swig_types[139]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_t_t swig_types[140]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[141]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[142]
-#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[143]
-#define SWIGTYPE_p_std__invalid_argument swig_types[144]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[145]
-#define SWIGTYPE_p_std__mapT_std__string_double_t swig_types[146]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[147]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_t swig_types[148]
-#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[149]
-#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_t swig_types[150]
-#define SWIGTYPE_p_std__vectorT_double_t swig_types[151]
-#define SWIGTYPE_p_std__vectorT_int_t swig_types[152]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_t swig_types[153]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_t swig_types[154]
-#define SWIGTYPE_p_std__vectorT_std__string_t swig_types[155]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_t_t swig_types[156]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_t_t swig_types[157]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_t swig_types[158]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[159]
-#define SWIGTYPE_p_unsigned_char swig_types[160]
-#define SWIGTYPE_p_unsigned_int swig_types[161]
-#define SWIGTYPE_p_unsigned_long_long swig_types[162]
-#define SWIGTYPE_p_unsigned_short swig_types[163]
-#define SWIGTYPE_p_value_type swig_types[164]
-static swig_type_info *swig_types[166];
-static swig_module_info swig_module = {swig_types, 165, 0, 0, 0, 0};
+#define SWIGTYPE_p_FuzzySphere swig_types[17]
+#define SWIGTYPE_p_GaussFisherPeakShape swig_types[18]
+#define SWIGTYPE_p_GaussSphere swig_types[19]
+#define SWIGTYPE_p_HemiEllipsoid swig_types[20]
+#define SWIGTYPE_p_HexagonalLattice2D swig_types[21]
+#define SWIGTYPE_p_HorizontalCylinder swig_types[22]
+#define SWIGTYPE_p_ICloneable swig_types[23]
+#define SWIGTYPE_p_ICosineRipple swig_types[24]
+#define SWIGTYPE_p_IFormfactor swig_types[25]
+#define SWIGTYPE_p_IFormfactorPolyhedron swig_types[26]
+#define SWIGTYPE_p_IFormfactorPrism swig_types[27]
+#define SWIGTYPE_p_IInterference swig_types[28]
+#define SWIGTYPE_p_IMaterialImpl swig_types[29]
+#define SWIGTYPE_p_INode swig_types[30]
+#define SWIGTYPE_p_IParticle swig_types[31]
+#define SWIGTYPE_p_IPeakShape swig_types[32]
+#define SWIGTYPE_p_IProfile1D swig_types[33]
+#define SWIGTYPE_p_IProfile2D swig_types[34]
+#define SWIGTYPE_p_IProfileRectangularRipple swig_types[35]
+#define SWIGTYPE_p_IProfileRipple swig_types[36]
+#define SWIGTYPE_p_IRotation swig_types[37]
+#define SWIGTYPE_p_ISampleNode swig_types[38]
+#define SWIGTYPE_p_ISawtoothRipple swig_types[39]
+#define SWIGTYPE_p_ISelectionRule swig_types[40]
+#define SWIGTYPE_p_Icosahedron swig_types[41]
+#define SWIGTYPE_p_IdentityRotation swig_types[42]
+#define SWIGTYPE_p_Interference1DLattice swig_types[43]
+#define SWIGTYPE_p_Interference2DLattice swig_types[44]
+#define SWIGTYPE_p_Interference2DParacrystal swig_types[45]
+#define SWIGTYPE_p_Interference2DSuperLattice swig_types[46]
+#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[47]
+#define SWIGTYPE_p_InterferenceHardDisk swig_types[48]
+#define SWIGTYPE_p_InterferenceNone swig_types[49]
+#define SWIGTYPE_p_InterferenceRadialParacrystal swig_types[50]
+#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[51]
+#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[52]
+#define SWIGTYPE_p_Lattice2D swig_types[53]
+#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[54]
+#define SWIGTYPE_p_Lattice3D swig_types[55]
+#define SWIGTYPE_p_Layer swig_types[56]
+#define SWIGTYPE_p_LayerRoughness swig_types[57]
+#define SWIGTYPE_p_LongBoxGauss swig_types[58]
+#define SWIGTYPE_p_LongBoxLorentz swig_types[59]
+#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[60]
+#define SWIGTYPE_p_Material swig_types[61]
+#define SWIGTYPE_p_MaterialBySLDImpl swig_types[62]
+#define SWIGTYPE_p_Mesocrystal swig_types[63]
+#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[64]
+#define SWIGTYPE_p_MisesGaussPeakShape swig_types[65]
+#define SWIGTYPE_p_MultiLayer swig_types[66]
+#define SWIGTYPE_p_Particle swig_types[67]
+#define SWIGTYPE_p_ParticleLayout swig_types[68]
+#define SWIGTYPE_p_PlatonicOctahedron swig_types[69]
+#define SWIGTYPE_p_PlatonicTetrahedron swig_types[70]
+#define SWIGTYPE_p_Prism3 swig_types[71]
+#define SWIGTYPE_p_Prism6 swig_types[72]
+#define SWIGTYPE_p_Profile1DCauchy swig_types[73]
+#define SWIGTYPE_p_Profile1DCosine swig_types[74]
+#define SWIGTYPE_p_Profile1DGate swig_types[75]
+#define SWIGTYPE_p_Profile1DGauss swig_types[76]
+#define SWIGTYPE_p_Profile1DTriangle swig_types[77]
+#define SWIGTYPE_p_Profile1DVoigt swig_types[78]
+#define SWIGTYPE_p_Profile2DCauchy swig_types[79]
+#define SWIGTYPE_p_Profile2DCone swig_types[80]
+#define SWIGTYPE_p_Profile2DGate swig_types[81]
+#define SWIGTYPE_p_Profile2DGauss swig_types[82]
+#define SWIGTYPE_p_Profile2DVoigt swig_types[83]
+#define SWIGTYPE_p_Pyramid2 swig_types[84]
+#define SWIGTYPE_p_Pyramid3 swig_types[85]
+#define SWIGTYPE_p_Pyramid4 swig_types[86]
+#define SWIGTYPE_p_Pyramid6 swig_types[87]
+#define SWIGTYPE_p_RefractiveMaterialImpl swig_types[88]
+#define SWIGTYPE_p_Rotation3DT_double_t swig_types[89]
+#define SWIGTYPE_p_RotationEuler swig_types[90]
+#define SWIGTYPE_p_RotationX swig_types[91]
+#define SWIGTYPE_p_RotationY swig_types[92]
+#define SWIGTYPE_p_RotationZ swig_types[93]
+#define SWIGTYPE_p_RoughnessMap swig_types[94]
+#define SWIGTYPE_p_RoughnessModel swig_types[95]
+#define SWIGTYPE_p_SawtoothRippleBox swig_types[96]
+#define SWIGTYPE_p_SawtoothRippleGauss swig_types[97]
+#define SWIGTYPE_p_SawtoothRippleLorentz swig_types[98]
+#define SWIGTYPE_p_SimpleSelectionRule swig_types[99]
+#define SWIGTYPE_p_Span swig_types[100]
+#define SWIGTYPE_p_Sphere swig_types[101]
+#define SWIGTYPE_p_Spheroid swig_types[102]
+#define SWIGTYPE_p_SpinMatrix swig_types[103]
+#define SWIGTYPE_p_SquareLattice2D swig_types[104]
+#define SWIGTYPE_p_TanhRoughness swig_types[105]
+#define SWIGTYPE_p_TruncatedCube swig_types[106]
+#define SWIGTYPE_p_TruncatedSphere swig_types[107]
+#define SWIGTYPE_p_TruncatedSpheroid swig_types[108]
+#define SWIGTYPE_p_Vec3T_double_t swig_types[109]
+#define SWIGTYPE_p_Vec3T_int_t swig_types[110]
+#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[111]
+#define SWIGTYPE_p_WavevectorInfo swig_types[112]
+#define SWIGTYPE_p_allocator_type swig_types[113]
+#define SWIGTYPE_p_char swig_types[114]
+#define SWIGTYPE_p_difference_type swig_types[115]
+#define SWIGTYPE_p_double2d_t swig_types[116]
+#define SWIGTYPE_p_first_type swig_types[117]
+#define SWIGTYPE_p_int swig_types[118]
+#define SWIGTYPE_p_key_type swig_types[119]
+#define SWIGTYPE_p_long_long swig_types[120]
+#define SWIGTYPE_p_mapped_type swig_types[121]
+#define SWIGTYPE_p_p_PyObject swig_types[122]
+#define SWIGTYPE_p_second_type swig_types[123]
+#define SWIGTYPE_p_short swig_types[124]
+#define SWIGTYPE_p_signed_char swig_types[125]
+#define SWIGTYPE_p_size_type swig_types[126]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[127]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[128]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[129]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[130]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[131]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[132]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[133]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[134]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_t_t swig_types[135]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_t_t swig_types[136]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[137]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[138]
+#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[139]
+#define SWIGTYPE_p_std__invalid_argument swig_types[140]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[141]
+#define SWIGTYPE_p_std__mapT_std__string_double_t swig_types[142]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[143]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_t swig_types[144]
+#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[145]
+#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_t swig_types[146]
+#define SWIGTYPE_p_std__vectorT_double_t swig_types[147]
+#define SWIGTYPE_p_std__vectorT_int_t swig_types[148]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_t swig_types[149]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_t swig_types[150]
+#define SWIGTYPE_p_std__vectorT_std__string_t swig_types[151]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_t_t swig_types[152]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_t_t swig_types[153]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_t swig_types[154]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[155]
+#define SWIGTYPE_p_unsigned_char swig_types[156]
+#define SWIGTYPE_p_unsigned_int swig_types[157]
+#define SWIGTYPE_p_unsigned_long_long swig_types[158]
+#define SWIGTYPE_p_unsigned_short swig_types[159]
+#define SWIGTYPE_p_value_type swig_types[160]
+static swig_type_info *swig_types[162];
+static swig_module_info swig_module = {swig_types, 161, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -51657,7 +51653,7 @@ SWIGINTERN PyObject *_wrap_RoughnessMap_generateMap(PyObject *self, PyObject *ar
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
-  RoughnessMap::double2d_t result;
+  double2d_t result;
   
   (void)self;
   if (!args) SWIG_fail;
@@ -51678,7 +51674,7 @@ SWIGINTERN PyObject *_wrap_RoughnessMap_generateMap(PyObject *self, PyObject *ar
       SWIG_exception(SWIG_RuntimeError, msg.c_str());
     }
   }
-  resultobj = SWIG_NewPointerObj((new RoughnessMap::double2d_t(result)), SWIGTYPE_p_FourierTransform__double2d_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new double2d_t(result)), SWIGTYPE_p_double2d_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -73121,7 +73117,7 @@ static PyMethodDef SwigMethods[] = {
 	 { "LayerRoughness_swigregister", LayerRoughness_swigregister, METH_O, NULL},
 	 { "LayerRoughness_swiginit", LayerRoughness_swiginit, METH_VARARGS, NULL},
 	 { "new_RoughnessMap", _wrap_new_RoughnessMap, METH_VARARGS, "RoughnessMap(size_t x_points, size_t y_points, double Lx, double Ly, LayerRoughness layerRoughness, int seed=-1)"},
-	 { "RoughnessMap_generateMap", _wrap_RoughnessMap_generateMap, METH_O, "RoughnessMap_generateMap(RoughnessMap self) -> RoughnessMap::double2d_t"},
+	 { "RoughnessMap_generateMap", _wrap_RoughnessMap_generateMap, METH_O, "RoughnessMap_generateMap(RoughnessMap self) -> double2d_t"},
 	 { "RoughnessMap_generate", _wrap_RoughnessMap_generate, METH_O, "RoughnessMap_generate(RoughnessMap self) -> PyObject *"},
 	 { "delete_RoughnessMap", _wrap_delete_RoughnessMap, METH_O, "delete_RoughnessMap(RoughnessMap self)"},
 	 { "RoughnessMap_swigregister", RoughnessMap_swigregister, METH_O, NULL},
@@ -74874,7 +74870,6 @@ static swig_type_info _swigt__p_Cylinder = {"_p_Cylinder", "Cylinder *", 0, 0, (
 static swig_type_info _swigt__p_Dodecahedron = {"_p_Dodecahedron", "Dodecahedron *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_EllipsoidalCylinder = {"_p_EllipsoidalCylinder", "EllipsoidalCylinder *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ErfRoughness = {"_p_ErfRoughness", "ErfRoughness *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_FourierTransform__double2d_t = {"_p_FourierTransform__double2d_t", "RoughnessMap::double2d_t *|FourierTransform::double2d_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_FuzzySphere = {"_p_FuzzySphere", "FuzzySphere *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_GaussFisherPeakShape = {"_p_GaussFisherPeakShape", "GaussFisherPeakShape *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_GaussSphere = {"_p_GaussSphere", "GaussSphere *", 0, 0, (void*)0, 0};
@@ -74973,10 +74968,7 @@ static swig_type_info _swigt__p_Vec3T_std__complexT_double_t_t = {"_p_Vec3T_std_
 static swig_type_info _swigt__p_WavevectorInfo = {"_p_WavevectorInfo", "WavevectorInfo *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_complex1d_t = {"_p_complex1d_t", "complex1d_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_complex2d_t = {"_p_complex2d_t", "complex2d_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_double1d_t = {"_p_double1d_t", "double1d_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_double2d_t = {"_p_double2d_t", "double2d_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_first_type = {"_p_first_type", "first_type *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_int = {"_p_int", "int32_t *|int_fast16_t *|int_fast32_t *|int_least32_t *|intptr_t *|int *", 0, 0, (void*)0, 0};
@@ -75041,7 +75033,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_Dodecahedron,
   &_swigt__p_EllipsoidalCylinder,
   &_swigt__p_ErfRoughness,
-  &_swigt__p_FourierTransform__double2d_t,
   &_swigt__p_FuzzySphere,
   &_swigt__p_GaussFisherPeakShape,
   &_swigt__p_GaussSphere,
@@ -75140,10 +75131,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_WavevectorInfo,
   &_swigt__p_allocator_type,
   &_swigt__p_char,
-  &_swigt__p_complex1d_t,
-  &_swigt__p_complex2d_t,
   &_swigt__p_difference_type,
-  &_swigt__p_double1d_t,
   &_swigt__p_double2d_t,
   &_swigt__p_first_type,
   &_swigt__p_int,
@@ -75208,7 +75196,6 @@ static swig_cast_info _swigc__p_Cylinder[] = {  {&_swigt__p_Cylinder, 0, 0, 0},{
 static swig_cast_info _swigc__p_Dodecahedron[] = {  {&_swigt__p_Dodecahedron, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_EllipsoidalCylinder[] = {  {&_swigt__p_EllipsoidalCylinder, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ErfRoughness[] = {  {&_swigt__p_ErfRoughness, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_FourierTransform__double2d_t[] = {  {&_swigt__p_FourierTransform__double2d_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_FuzzySphere[] = {  {&_swigt__p_FuzzySphere, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_GaussFisherPeakShape[] = {  {&_swigt__p_GaussFisherPeakShape, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_GaussSphere[] = {  {&_swigt__p_GaussSphere, 0, 0, 0},{0, 0, 0, 0}};
@@ -75307,10 +75294,7 @@ static swig_cast_info _swigc__p_Vec3T_std__complexT_double_t_t[] = {  {&_swigt__
 static swig_cast_info _swigc__p_WavevectorInfo[] = {  {&_swigt__p_WavevectorInfo, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_allocator_type[] = {  {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_complex1d_t[] = {  {&_swigt__p_complex1d_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_complex2d_t[] = {  {&_swigt__p_complex2d_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_difference_type[] = {  {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_double1d_t[] = {  {&_swigt__p_double1d_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_double2d_t[] = {  {&_swigt__p_double2d_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_first_type[] = {  {&_swigt__p_first_type, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
@@ -75375,7 +75359,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_Dodecahedron,
   _swigc__p_EllipsoidalCylinder,
   _swigc__p_ErfRoughness,
-  _swigc__p_FourierTransform__double2d_t,
   _swigc__p_FuzzySphere,
   _swigc__p_GaussFisherPeakShape,
   _swigc__p_GaussSphere,
@@ -75474,10 +75457,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_WavevectorInfo,
   _swigc__p_allocator_type,
   _swigc__p_char,
-  _swigc__p_complex1d_t,
-  _swigc__p_complex2d_t,
   _swigc__p_difference_type,
-  _swigc__p_double1d_t,
   _swigc__p_double2d_t,
   _swigc__p_first_type,
   _swigc__p_int,
-- 
GitLab