From e3695b04bc8c28960ce64f5d0ced2313d437521d Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Thu, 19 May 2022 07:27:44 +0200
Subject: [PATCH] rename Frame <- IField

---
 Device/Data/Powerfield.cpp            |  28 +-
 Device/Data/Powerfield.h              |  18 +-
 auto/Wrap/doxygenDevice.i             | 352 +++++++++++-----------
 auto/Wrap/libBornAgainDevice.py       |  78 ++---
 auto/Wrap/libBornAgainDevice_wrap.cpp | 414 +++++++++++++-------------
 5 files changed, 445 insertions(+), 445 deletions(-)

diff --git a/Device/Data/Powerfield.cpp b/Device/Data/Powerfield.cpp
index b48ef2b4962..136aab39b4f 100644
--- a/Device/Data/Powerfield.cpp
+++ b/Device/Data/Powerfield.cpp
@@ -19,28 +19,28 @@
 
 #include "Base/Py/PyCore.h"
 
-IField::IField(const std::vector<IAxis*>& axes)
+Frame::Frame(const std::vector<IAxis*>& axes)
     : m_axes(axes)
 {
 }
 
-const IAxis& IField::axis(size_t serial_number) const
+const IAxis& Frame::axis(size_t serial_number) const
 {
     return *m_axes[serial_number];
 }
 
-double IField::getAxisValue(size_t global_index, size_t i_selected_axis) const
+double Frame::getAxisValue(size_t global_index, size_t i_selected_axis) const
 {
     auto axis_index = getAxisBinIndex(global_index, i_selected_axis);
     return (*m_axes[i_selected_axis])[axis_index];
 }
 
-double IField::getAxisValue(size_t global_index, const std::string& axis_name) const
+double Frame::getAxisValue(size_t global_index, const std::string& axis_name) const
 {
     return getAxisValue(global_index, getAxisIndex(axis_name));
 }
 
-std::vector<double> IField::getAxesValues(size_t global_index) const
+std::vector<double> Frame::getAxesValues(size_t global_index) const
 {
     std::vector<int> indices = getAxesBinIndices(global_index);
     std::vector<double> result;
@@ -49,18 +49,18 @@ std::vector<double> IField::getAxesValues(size_t global_index) const
     return result;
 }
 
-Bin1D IField::getAxisBin(size_t global_index, size_t i_selected_axis) const
+Bin1D Frame::getAxisBin(size_t global_index, size_t i_selected_axis) const
 {
     auto axis_index = getAxisBinIndex(global_index, i_selected_axis);
     return m_axes[i_selected_axis]->bin(axis_index);
 }
 
-Bin1D IField::getAxisBin(size_t global_index, const std::string& axis_name) const
+Bin1D Frame::getAxisBin(size_t global_index, const std::string& axis_name) const
 {
     return getAxisBin(global_index, getAxisIndex(axis_name));
 }
 
-size_t IField::getAxisIndex(const std::string& axis_name) const
+size_t Frame::getAxisIndex(const std::string& axis_name) const
 {
     for (size_t i = 0; i < m_axes.size(); ++i)
         if (m_axes[i]->axisName() == axis_name)
@@ -68,12 +68,12 @@ size_t IField::getAxisIndex(const std::string& axis_name) const
     ASSERT(0);
 }
 
-size_t IField::getAxisBinIndex(size_t global_index, const std::string& axis_name) const
+size_t Frame::getAxisBinIndex(size_t global_index, const std::string& axis_name) const
 {
     return getAxisBinIndex(global_index, getAxisIndex(axis_name));
 }
 
-std::vector<int> IField::getAxesBinIndices(size_t global_index) const
+std::vector<int> Frame::getAxesBinIndices(size_t global_index) const
 {
     size_t remainder = global_index;
     std::vector<int> result;
@@ -85,7 +85,7 @@ std::vector<int> IField::getAxesBinIndices(size_t global_index) const
     return result;
 }
 
-size_t IField::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
+size_t Frame::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
 {
     size_t remainder(global_index);
     for (size_t i = 0; i < rank(); ++i) {
@@ -98,7 +98,7 @@ size_t IField::getAxisBinIndex(size_t global_index, size_t i_selected_axis) cons
     ASSERT(0);
 }
 
-size_t IField::toGlobalIndex(const std::vector<unsigned>& axes_indices) const
+size_t Frame::toGlobalIndex(const std::vector<unsigned>& axes_indices) const
 {
     ASSERT(axes_indices.size() == rank());
     size_t result = 0;
@@ -111,7 +111,7 @@ size_t IField::toGlobalIndex(const std::vector<unsigned>& axes_indices) const
     return result;
 }
 
-size_t IField::findGlobalIndex(const std::vector<double>& coordinates) const
+size_t Frame::findGlobalIndex(const std::vector<double>& coordinates) const
 {
     ASSERT(coordinates.size() == rank());
     std::vector<unsigned> axes_indexes;
@@ -122,7 +122,7 @@ size_t IField::findGlobalIndex(const std::vector<double>& coordinates) const
 }
 
 
-bool IField::axisNameExists(const std::string& axis_name) const
+bool Frame::axisNameExists(const std::string& axis_name) const
 {
     for (size_t i = 0; i < m_axes.size(); ++i)
         if (m_axes[i]->axisName() == axis_name)
diff --git a/Device/Data/Powerfield.h b/Device/Data/Powerfield.h
index 32c2ebe3b58..f5369ad9c26 100644
--- a/Device/Data/Powerfield.h
+++ b/Device/Data/Powerfield.h
@@ -27,13 +27,13 @@
 
 using std::size_t;
 
-//! Holds one or two axes. Base class for Powerfield.
+//! Holds one or two axes.
 
-class IField {
+class Frame {
 public:
-    IField() = default;
-    IField(const std::vector<IAxis*>& axes);
-    virtual ~IField() {}
+    Frame() = default;
+    Frame(const std::vector<IAxis*>& axes);
+    virtual ~Frame() {}
 
     //! Returns number of dimensions.
     size_t rank() const { return m_axes.size(); }
@@ -114,7 +114,7 @@ protected:
 //! @ingroup tools
 
 template <class T>
-class Powerfield : public IField {
+class Powerfield : public Frame {
 public:
     using value_type = T;
 
@@ -261,7 +261,7 @@ Powerfield<T>::Powerfield()
 
 template <class T>
 Powerfield<T>::Powerfield(const IAxis& xAxis)
-    : IField({xAxis.clone()})
+    : Frame({xAxis.clone()})
 {
     ASSERT(xAxis.size() > 0);
     allocate();
@@ -269,7 +269,7 @@ Powerfield<T>::Powerfield(const IAxis& xAxis)
 
 template <class T>
 Powerfield<T>::Powerfield(const IAxis& xAxis, const IAxis& yAxis)
-    : IField({xAxis.clone(), yAxis.clone()})
+    : Frame({xAxis.clone(), yAxis.clone()})
 {
     ASSERT(xAxis.size() > 0);
     ASSERT(yAxis.size() > 0);
@@ -279,7 +279,7 @@ Powerfield<T>::Powerfield(const IAxis& xAxis, const IAxis& yAxis)
 
 template <class T>
 Powerfield<T>::Powerfield(Powerfield<T>&& other)
-    : IField(other)
+    : Frame(other)
 {
     m_ll_data = other.m_ll_data;
 
diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i
index 0374b0eda57..00c724c1ee0 100644
--- a/auto/Wrap/doxygenDevice.i
+++ b/auto/Wrap/doxygenDevice.i
@@ -572,6 +572,182 @@ Calculate footprint correction coefficient from the beam incident angle  alpha.
 ";
 
 
+// File: classFrame.xml
+%feature("docstring") Frame "
+
+Holds one or two axes. Base class for  Powerfield.
+
+C++ includes: Powerfield.h
+";
+
+%feature("docstring")  Frame::Frame "Frame::Frame()=default
+";
+
+%feature("docstring")  Frame::Frame "Frame::Frame(const std::vector< IAxis * > &axes)
+";
+
+%feature("docstring")  Frame::~Frame "virtual Frame::~Frame()
+";
+
+%feature("docstring")  Frame::rank "size_t Frame::rank() const
+
+Returns number of dimensions. 
+";
+
+%feature("docstring")  Frame::axis "const IAxis & Frame::axis(size_t serial_number) const
+
+Returns axis with given serial number. 
+";
+
+%feature("docstring")  Frame::getAxisValue "double Frame::getAxisValue(size_t global_index, size_t i_selected_axis) const
+
+Returns the value of selected axis for given global_index.
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+i_selected_axis: 
+Serial number of selected axis.
+
+corresponding bin center of selected axis 
+";
+
+%feature("docstring")  Frame::getAxisValue "double Frame::getAxisValue(size_t global_index, const std::string &axis_name) const
+
+Returns the value of selected axis for given global_index.
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+axis_name: 
+The name of selected axis.
+
+corresponding bin center of selected axis 
+";
+
+%feature("docstring")  Frame::getAxesValues "std::vector< double > Frame::getAxesValues(size_t global_index) const
+
+Returns values on all defined axes for given globalbin number
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+Vector of corresponding bin centers 
+";
+
+%feature("docstring")  Frame::getAxisBin "Bin1D Frame::getAxisBin(size_t global_index, size_t i_selected_axis) const
+
+Returns bin of selected axis for given global_index.
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+i_selected_axis: 
+Serial number of selected axis.
+
+Corresponding Bin1D object 
+";
+
+%feature("docstring")  Frame::getAxisBin "Bin1D Frame::getAxisBin(size_t global_index, const std::string &axis_name) const
+
+Returns bin of selected axis for given global_index.
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+axis_name: 
+The name of selected axis.
+
+Corresponding Bin1D object 
+";
+
+%feature("docstring")  Frame::getAxisBinIndex "size_t Frame::getAxisBinIndex(size_t global_index, const std::string &axis_name) const
+
+Returns axis bin index for given global index
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+axis_name: 
+The name of selected axis.
+
+Corresponding bin index for selected axis 
+";
+
+%feature("docstring")  Frame::getAxesBinIndices "std::vector< int > Frame::getAxesBinIndices(size_t global_index) const
+
+Returns vector of axes indices for given global index
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+Vector of bin indices for all axes defined 
+";
+
+%feature("docstring")  Frame::getAxisBinIndex "size_t Frame::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
+
+Returns axis bin index for given global index
+
+Parameters:
+-----------
+
+global_index: 
+The global index of this data structure.
+
+i_selected_axis: 
+Serial number of selected axis.
+
+Corresponding bin index for selected axis 
+";
+
+%feature("docstring")  Frame::toGlobalIndex "size_t Frame::toGlobalIndex(const std::vector< unsigned > &axes_indices) const
+
+Returns global index for specified indices of axes
+
+Parameters:
+-----------
+
+axes_indices: 
+Vector of axes indices for all specified axes in this dataset
+
+Corresponding global index 
+";
+
+%feature("docstring")  Frame::findGlobalIndex "size_t Frame::findGlobalIndex(const std::vector< double > &coordinates) const
+
+Returns global index for specified axes values
+
+Parameters:
+-----------
+
+coordinates: 
+Vector of axes coordinates for all specified axes in this dataset
+
+Closest global index 
+";
+
+
 // File: classHistogram1D.xml
 %feature("docstring") Histogram1D "
 
@@ -1182,182 +1358,6 @@ Apply the resolution function to the intensity data.
 ";
 
 
-// File: classIField.xml
-%feature("docstring") IField "
-
-Holds one or two axes. Base class for  Powerfield.
-
-C++ includes: Powerfield.h
-";
-
-%feature("docstring")  IField::IField "IField::IField()=default
-";
-
-%feature("docstring")  IField::IField "IField::IField(const std::vector< IAxis * > &axes)
-";
-
-%feature("docstring")  IField::~IField "virtual IField::~IField()
-";
-
-%feature("docstring")  IField::rank "size_t IField::rank() const
-
-Returns number of dimensions. 
-";
-
-%feature("docstring")  IField::axis "const IAxis & IField::axis(size_t serial_number) const
-
-Returns axis with given serial number. 
-";
-
-%feature("docstring")  IField::getAxisValue "double IField::getAxisValue(size_t global_index, size_t i_selected_axis) const
-
-Returns the value of selected axis for given global_index.
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-i_selected_axis: 
-Serial number of selected axis.
-
-corresponding bin center of selected axis 
-";
-
-%feature("docstring")  IField::getAxisValue "double IField::getAxisValue(size_t global_index, const std::string &axis_name) const
-
-Returns the value of selected axis for given global_index.
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-axis_name: 
-The name of selected axis.
-
-corresponding bin center of selected axis 
-";
-
-%feature("docstring")  IField::getAxesValues "std::vector< double > IField::getAxesValues(size_t global_index) const
-
-Returns values on all defined axes for given globalbin number
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-Vector of corresponding bin centers 
-";
-
-%feature("docstring")  IField::getAxisBin "Bin1D IField::getAxisBin(size_t global_index, size_t i_selected_axis) const
-
-Returns bin of selected axis for given global_index.
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-i_selected_axis: 
-Serial number of selected axis.
-
-Corresponding Bin1D object 
-";
-
-%feature("docstring")  IField::getAxisBin "Bin1D IField::getAxisBin(size_t global_index, const std::string &axis_name) const
-
-Returns bin of selected axis for given global_index.
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-axis_name: 
-The name of selected axis.
-
-Corresponding Bin1D object 
-";
-
-%feature("docstring")  IField::getAxisBinIndex "size_t IField::getAxisBinIndex(size_t global_index, const std::string &axis_name) const
-
-Returns axis bin index for given global index
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-axis_name: 
-The name of selected axis.
-
-Corresponding bin index for selected axis 
-";
-
-%feature("docstring")  IField::getAxesBinIndices "std::vector< int > IField::getAxesBinIndices(size_t global_index) const
-
-Returns vector of axes indices for given global index
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-Vector of bin indices for all axes defined 
-";
-
-%feature("docstring")  IField::getAxisBinIndex "size_t IField::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
-
-Returns axis bin index for given global index
-
-Parameters:
------------
-
-global_index: 
-The global index of this data structure.
-
-i_selected_axis: 
-Serial number of selected axis.
-
-Corresponding bin index for selected axis 
-";
-
-%feature("docstring")  IField::toGlobalIndex "size_t IField::toGlobalIndex(const std::vector< unsigned > &axes_indices) const
-
-Returns global index for specified indices of axes
-
-Parameters:
------------
-
-axes_indices: 
-Vector of axes indices for all specified axes in this dataset
-
-Corresponding global index 
-";
-
-%feature("docstring")  IField::findGlobalIndex "size_t IField::findGlobalIndex(const std::vector< double > &coordinates) const
-
-Returns global index for specified axes values
-
-Parameters:
------------
-
-coordinates: 
-Vector of axes coordinates for all specified axes in this dataset
-
-Closest global index 
-";
-
-
 // File: classIFootprintFactor.xml
 %feature("docstring") IFootprintFactor "
 
diff --git a/auto/Wrap/libBornAgainDevice.py b/auto/Wrap/libBornAgainDevice.py
index b0f758b8788..fd985f560aa 100644
--- a/auto/Wrap/libBornAgainDevice.py
+++ b/auto/Wrap/libBornAgainDevice.py
@@ -2048,7 +2048,7 @@ class vector_R3(object):
 _libBornAgainDevice.vector_R3_swigregister(vector_R3)
 
 import libBornAgainParam
-class IField(object):
+class Frame(object):
     r"""
 
 
@@ -2063,39 +2063,39 @@ class IField(object):
 
     def __init__(self, *args):
         r"""
-        __init__(IField self) -> IField
-        __init__(IField self, std::vector< IAxis *,std::allocator< IAxis * > > const & axes) -> IField
-        IField::IField(const std::vector< IAxis * > &axes)
+        __init__(Frame self) -> Frame
+        __init__(Frame self, std::vector< IAxis *,std::allocator< IAxis * > > const & axes) -> Frame
+        Frame::Frame(const std::vector< IAxis * > &axes)
 
         """
-        _libBornAgainDevice.IField_swiginit(self, _libBornAgainDevice.new_IField(*args))
-    __swig_destroy__ = _libBornAgainDevice.delete_IField
+        _libBornAgainDevice.Frame_swiginit(self, _libBornAgainDevice.new_Frame(*args))
+    __swig_destroy__ = _libBornAgainDevice.delete_Frame
 
     def rank(self):
         r"""
-        rank(IField self) -> size_t
-        size_t IField::rank() const
+        rank(Frame self) -> size_t
+        size_t Frame::rank() const
 
         Returns number of dimensions. 
 
         """
-        return _libBornAgainDevice.IField_rank(self)
+        return _libBornAgainDevice.Frame_rank(self)
 
     def axis(self, serial_number):
         r"""
-        axis(IField self, size_t serial_number) -> IAxis
-        const IAxis & IField::axis(size_t serial_number) const
+        axis(Frame self, size_t serial_number) -> IAxis
+        const IAxis & Frame::axis(size_t serial_number) const
 
         Returns axis with given serial number. 
 
         """
-        return _libBornAgainDevice.IField_axis(self, serial_number)
+        return _libBornAgainDevice.Frame_axis(self, serial_number)
 
     def getAxisValue(self, *args):
         r"""
-        getAxisValue(IField self, size_t global_index, size_t i_selected_axis) -> double
-        getAxisValue(IField self, size_t global_index, std::string const & axis_name) -> double
-        double IField::getAxisValue(size_t global_index, const std::string &axis_name) const
+        getAxisValue(Frame self, size_t global_index, size_t i_selected_axis) -> double
+        getAxisValue(Frame self, size_t global_index, std::string const & axis_name) -> double
+        double Frame::getAxisValue(size_t global_index, const std::string &axis_name) const
 
         Returns the value of selected axis for given global_index.
 
@@ -2111,12 +2111,12 @@ class IField(object):
         corresponding bin center of selected axis 
 
         """
-        return _libBornAgainDevice.IField_getAxisValue(self, *args)
+        return _libBornAgainDevice.Frame_getAxisValue(self, *args)
 
     def getAxesValues(self, global_index):
         r"""
-        getAxesValues(IField self, size_t global_index) -> vdouble1d_t
-        std::vector< double > IField::getAxesValues(size_t global_index) const
+        getAxesValues(Frame self, size_t global_index) -> vdouble1d_t
+        std::vector< double > Frame::getAxesValues(size_t global_index) const
 
         Returns values on all defined axes for given globalbin number
 
@@ -2129,13 +2129,13 @@ class IField(object):
         Vector of corresponding bin centers 
 
         """
-        return _libBornAgainDevice.IField_getAxesValues(self, global_index)
+        return _libBornAgainDevice.Frame_getAxesValues(self, global_index)
 
     def getAxisBin(self, *args):
         r"""
-        getAxisBin(IField self, size_t global_index, size_t i_selected_axis) -> Bin1D
-        getAxisBin(IField self, size_t global_index, std::string const & axis_name) -> Bin1D
-        Bin1D IField::getAxisBin(size_t global_index, const std::string &axis_name) const
+        getAxisBin(Frame self, size_t global_index, size_t i_selected_axis) -> Bin1D
+        getAxisBin(Frame self, size_t global_index, std::string const & axis_name) -> Bin1D
+        Bin1D Frame::getAxisBin(size_t global_index, const std::string &axis_name) const
 
         Returns bin of selected axis for given global_index.
 
@@ -2151,12 +2151,12 @@ class IField(object):
         Corresponding Bin1D object 
 
         """
-        return _libBornAgainDevice.IField_getAxisBin(self, *args)
+        return _libBornAgainDevice.Frame_getAxisBin(self, *args)
 
     def getAxesBinIndices(self, global_index):
         r"""
-        getAxesBinIndices(IField self, size_t global_index) -> vector_integer_t
-        std::vector< int > IField::getAxesBinIndices(size_t global_index) const
+        getAxesBinIndices(Frame self, size_t global_index) -> vector_integer_t
+        std::vector< int > Frame::getAxesBinIndices(size_t global_index) const
 
         Returns vector of axes indices for given global index
 
@@ -2169,13 +2169,13 @@ class IField(object):
         Vector of bin indices for all axes defined 
 
         """
-        return _libBornAgainDevice.IField_getAxesBinIndices(self, global_index)
+        return _libBornAgainDevice.Frame_getAxesBinIndices(self, global_index)
 
     def getAxisBinIndex(self, *args):
         r"""
-        getAxisBinIndex(IField self, size_t global_index, std::string const & axis_name) -> size_t
-        getAxisBinIndex(IField self, size_t global_index, size_t i_selected_axis) -> size_t
-        size_t IField::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
+        getAxisBinIndex(Frame self, size_t global_index, std::string const & axis_name) -> size_t
+        getAxisBinIndex(Frame self, size_t global_index, size_t i_selected_axis) -> size_t
+        size_t Frame::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
 
         Returns axis bin index for given global index
 
@@ -2191,12 +2191,12 @@ class IField(object):
         Corresponding bin index for selected axis 
 
         """
-        return _libBornAgainDevice.IField_getAxisBinIndex(self, *args)
+        return _libBornAgainDevice.Frame_getAxisBinIndex(self, *args)
 
     def toGlobalIndex(self, axes_indices):
         r"""
-        toGlobalIndex(IField self, std::vector< unsigned int,std::allocator< unsigned int > > const & axes_indices) -> size_t
-        size_t IField::toGlobalIndex(const std::vector< unsigned > &axes_indices) const
+        toGlobalIndex(Frame self, std::vector< unsigned int,std::allocator< unsigned int > > const & axes_indices) -> size_t
+        size_t Frame::toGlobalIndex(const std::vector< unsigned > &axes_indices) const
 
         Returns global index for specified indices of axes
 
@@ -2209,12 +2209,12 @@ class IField(object):
         Corresponding global index 
 
         """
-        return _libBornAgainDevice.IField_toGlobalIndex(self, axes_indices)
+        return _libBornAgainDevice.Frame_toGlobalIndex(self, axes_indices)
 
     def findGlobalIndex(self, coordinates):
         r"""
-        findGlobalIndex(IField self, vdouble1d_t coordinates) -> size_t
-        size_t IField::findGlobalIndex(const std::vector< double > &coordinates) const
+        findGlobalIndex(Frame self, vdouble1d_t coordinates) -> size_t
+        size_t Frame::findGlobalIndex(const std::vector< double > &coordinates) const
 
         Returns global index for specified axes values
 
@@ -2227,12 +2227,12 @@ class IField(object):
         Closest global index 
 
         """
-        return _libBornAgainDevice.IField_findGlobalIndex(self, coordinates)
+        return _libBornAgainDevice.Frame_findGlobalIndex(self, coordinates)
 
-# Register IField in _libBornAgainDevice:
-_libBornAgainDevice.IField_swigregister(IField)
+# Register Frame in _libBornAgainDevice:
+_libBornAgainDevice.Frame_swigregister(Frame)
 
-class IntensityData(IField):
+class IntensityData(Frame):
     r"""
 
 
diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp
index fddd3b3f0ab..65b5550c73c 100644
--- a/auto/Wrap/libBornAgainDevice_wrap.cpp
+++ b/auto/Wrap/libBornAgainDevice_wrap.cpp
@@ -3106,16 +3106,16 @@ namespace Swig {
 #define SWIGTYPE_p_Ellipse swig_types[6]
 #define SWIGTYPE_p_FootprintGauss swig_types[7]
 #define SWIGTYPE_p_FootprintSquare swig_types[8]
-#define SWIGTYPE_p_Histogram1D swig_types[9]
-#define SWIGTYPE_p_Histogram2D swig_types[10]
-#define SWIGTYPE_p_HorizontalLine swig_types[11]
-#define SWIGTYPE_p_IAxis swig_types[12]
-#define SWIGTYPE_p_ICloneable swig_types[13]
-#define SWIGTYPE_p_ICoordSystem swig_types[14]
-#define SWIGTYPE_p_IDetector swig_types[15]
-#define SWIGTYPE_p_IDetector2D swig_types[16]
-#define SWIGTYPE_p_IDetectorResolution swig_types[17]
-#define SWIGTYPE_p_IField swig_types[18]
+#define SWIGTYPE_p_Frame swig_types[9]
+#define SWIGTYPE_p_Histogram1D swig_types[10]
+#define SWIGTYPE_p_Histogram2D swig_types[11]
+#define SWIGTYPE_p_HorizontalLine swig_types[12]
+#define SWIGTYPE_p_IAxis swig_types[13]
+#define SWIGTYPE_p_ICloneable swig_types[14]
+#define SWIGTYPE_p_ICoordSystem swig_types[15]
+#define SWIGTYPE_p_IDetector swig_types[16]
+#define SWIGTYPE_p_IDetector2D swig_types[17]
+#define SWIGTYPE_p_IDetectorResolution swig_types[18]
 #define SWIGTYPE_p_IFootprintFactor swig_types[19]
 #define SWIGTYPE_p_IHistogram swig_types[20]
 #define SWIGTYPE_p_INode swig_types[21]
@@ -26992,86 +26992,86 @@ SWIGINTERN PyObject *vector_R3_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN PyObject *_wrap_new_IField__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) {
+SWIGINTERN PyObject *_wrap_new_Frame__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) {
   PyObject *resultobj = 0;
-  IField *result = 0 ;
+  Frame *result = 0 ;
   
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
-  result = (IField *)new IField();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IField, SWIG_POINTER_NEW |  0 );
+  result = (Frame *)new Frame();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Frame, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_IField__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Frame__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   std::vector< IAxis *,std::allocator< IAxis * > > *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  IField *result = 0 ;
+  Frame *result = 0 ;
   
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_std__vectorT_IAxis_p_std__allocatorT_IAxis_p_t_t,  0  | 0);
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IField" "', argument " "1"" of type '" "std::vector< IAxis *,std::allocator< IAxis * > > const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Frame" "', argument " "1"" of type '" "std::vector< IAxis *,std::allocator< IAxis * > > const &""'"); 
   }
   if (!argp1) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IField" "', argument " "1"" of type '" "std::vector< IAxis *,std::allocator< IAxis * > > const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Frame" "', argument " "1"" of type '" "std::vector< IAxis *,std::allocator< IAxis * > > const &""'"); 
   }
   arg1 = reinterpret_cast< std::vector< IAxis *,std::allocator< IAxis * > > * >(argp1);
-  result = (IField *)new IField((std::vector< IAxis *,std::allocator< IAxis * > > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IField, SWIG_POINTER_NEW |  0 );
+  result = (Frame *)new Frame((std::vector< IAxis *,std::allocator< IAxis * > > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Frame, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_IField(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_Frame(PyObject *self, PyObject *args) {
   Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
   
-  if (!(argc = SWIG_Python_UnpackTuple(args, "new_IField", 0, 1, argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args, "new_Frame", 0, 1, argv))) SWIG_fail;
   --argc;
   if (argc == 0) {
-    return _wrap_new_IField__SWIG_0(self, argc, argv);
+    return _wrap_new_Frame__SWIG_0(self, argc, argv);
   }
   if (argc == 1) {
     int _v;
     int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_std__vectorT_IAxis_p_std__allocatorT_IAxis_p_t_t, SWIG_POINTER_NO_NULL | 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_new_IField__SWIG_1(self, argc, argv);
+      return _wrap_new_Frame__SWIG_1(self, argc, argv);
     }
   }
   
 fail:
-  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IField'.\n"
+  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_Frame'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IField::IField()\n"
-    "    IField::IField(std::vector< IAxis *,std::allocator< IAxis * > > const &)\n");
+    "    Frame::Frame()\n"
+    "    Frame::Frame(std::vector< IAxis *,std::allocator< IAxis * > > const &)\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_IField(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_Frame(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IField" "', argument " "1"" of type '" "IField *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Frame" "', argument " "1"" of type '" "Frame *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   delete arg1;
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -27080,9 +27080,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_rank(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_rank(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -27090,12 +27090,12 @@ SWIGINTERN PyObject *_wrap_IField_rank(PyObject *SWIGUNUSEDPARM(self), PyObject
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_rank" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_rank" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
-  result = ((IField const *)arg1)->rank();
+  arg1 = reinterpret_cast< Frame * >(argp1);
+  result = ((Frame const *)arg1)->rank();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -27103,9 +27103,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_axis(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_axis(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27114,18 +27114,18 @@ SWIGINTERN PyObject *_wrap_IField_axis(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject *swig_obj[2] ;
   IAxis *result = 0 ;
   
-  if (!SWIG_Python_UnpackTuple(args, "IField_axis", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "Frame_axis", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_axis" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_axis" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_axis" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_axis" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
-  result = (IAxis *) &((IField const *)arg1)->axis(arg2);
+  result = (IAxis *) &((Frame const *)arg1)->axis(arg2);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IAxis, 0 |  0 );
   return resultobj;
 fail:
@@ -27133,9 +27133,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisValue__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisValue__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   size_t arg3 ;
   void *argp1 = 0 ;
@@ -27147,22 +27147,22 @@ SWIGINTERN PyObject *_wrap_IField_getAxisValue__SWIG_0(PyObject *SWIGUNUSEDPARM(
   double result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxisValue" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxisValue" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxisValue" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxisValue" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   ecode3 = SWIG_AsVal_size_t(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IField_getAxisValue" "', argument " "3"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Frame_getAxisValue" "', argument " "3"" of type '" "size_t""'");
   } 
   arg3 = static_cast< size_t >(val3);
-  result = (double)((IField const *)arg1)->getAxisValue(arg2,arg3);
+  result = (double)((Frame const *)arg1)->getAxisValue(arg2,arg3);
   resultobj = SWIG_From_double(static_cast< double >(result));
   return resultobj;
 fail:
@@ -27170,9 +27170,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisValue__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisValue__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   std::string *arg3 = 0 ;
   void *argp1 = 0 ;
@@ -27183,28 +27183,28 @@ SWIGINTERN PyObject *_wrap_IField_getAxisValue__SWIG_1(PyObject *SWIGUNUSEDPARM(
   double result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxisValue" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxisValue" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxisValue" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxisValue" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   {
     std::string *ptr = (std::string *)0;
     res3 = SWIG_AsPtr_std_string(swig_obj[2], &ptr);
     if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IField_getAxisValue" "', argument " "3"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Frame_getAxisValue" "', argument " "3"" of type '" "std::string const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IField_getAxisValue" "', argument " "3"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Frame_getAxisValue" "', argument " "3"" of type '" "std::string const &""'"); 
     }
     arg3 = ptr;
   }
-  result = (double)((IField const *)arg1)->getAxisValue(arg2,(std::string const &)*arg3);
+  result = (double)((Frame const *)arg1)->getAxisValue(arg2,(std::string const &)*arg3);
   resultobj = SWIG_From_double(static_cast< double >(result));
   if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
@@ -27214,18 +27214,18 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisValue(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisValue(PyObject *self, PyObject *args) {
   Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
   
-  if (!(argc = SWIG_Python_UnpackTuple(args, "IField_getAxisValue", 0, 3, argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args, "Frame_getAxisValue", 0, 3, argv))) SWIG_fail;
   --argc;
   if (argc == 3) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IField, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Frame, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27238,7 +27238,7 @@ SWIGINTERN PyObject *_wrap_IField_getAxisValue(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_IField_getAxisValue__SWIG_0(self, argc, argv);
+          return _wrap_Frame_getAxisValue__SWIG_0(self, argc, argv);
         }
       }
     }
@@ -27246,7 +27246,7 @@ SWIGINTERN PyObject *_wrap_IField_getAxisValue(PyObject *self, PyObject *args) {
   if (argc == 3) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IField, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Frame, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27257,24 +27257,24 @@ SWIGINTERN PyObject *_wrap_IField_getAxisValue(PyObject *self, PyObject *args) {
         int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
-          return _wrap_IField_getAxisValue__SWIG_1(self, argc, argv);
+          return _wrap_Frame_getAxisValue__SWIG_1(self, argc, argv);
         }
       }
     }
   }
   
 fail:
-  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IField_getAxisValue'.\n"
+  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'Frame_getAxisValue'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IField::getAxisValue(size_t,size_t) const\n"
-    "    IField::getAxisValue(size_t,std::string const &) const\n");
+    "    Frame::getAxisValue(size_t,size_t) const\n"
+    "    Frame::getAxisValue(size_t,std::string const &) const\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxesValues(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_getAxesValues(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27283,18 +27283,18 @@ SWIGINTERN PyObject *_wrap_IField_getAxesValues(PyObject *SWIGUNUSEDPARM(self),
   PyObject *swig_obj[2] ;
   std::vector< double,std::allocator< double > > result;
   
-  if (!SWIG_Python_UnpackTuple(args, "IField_getAxesValues", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "Frame_getAxesValues", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxesValues" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxesValues" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxesValues" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxesValues" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
-  result = ((IField const *)arg1)->getAxesValues(arg2);
+  result = ((Frame const *)arg1)->getAxesValues(arg2);
   resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
@@ -27302,9 +27302,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisBin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisBin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   size_t arg3 ;
   void *argp1 = 0 ;
@@ -27316,22 +27316,22 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBin__SWIG_0(PyObject *SWIGUNUSEDPARM(se
   Bin1D result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxisBin" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxisBin" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxisBin" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxisBin" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   ecode3 = SWIG_AsVal_size_t(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IField_getAxisBin" "', argument " "3"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Frame_getAxisBin" "', argument " "3"" of type '" "size_t""'");
   } 
   arg3 = static_cast< size_t >(val3);
-  result = ((IField const *)arg1)->getAxisBin(arg2,arg3);
+  result = ((Frame const *)arg1)->getAxisBin(arg2,arg3);
   resultobj = SWIG_NewPointerObj((new Bin1D(static_cast< const Bin1D& >(result))), SWIGTYPE_p_Bin1D, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
@@ -27339,9 +27339,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisBin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisBin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   std::string *arg3 = 0 ;
   void *argp1 = 0 ;
@@ -27352,28 +27352,28 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBin__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   Bin1D result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxisBin" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxisBin" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxisBin" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxisBin" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   {
     std::string *ptr = (std::string *)0;
     res3 = SWIG_AsPtr_std_string(swig_obj[2], &ptr);
     if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IField_getAxisBin" "', argument " "3"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Frame_getAxisBin" "', argument " "3"" of type '" "std::string const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IField_getAxisBin" "', argument " "3"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Frame_getAxisBin" "', argument " "3"" of type '" "std::string const &""'"); 
     }
     arg3 = ptr;
   }
-  result = ((IField const *)arg1)->getAxisBin(arg2,(std::string const &)*arg3);
+  result = ((Frame const *)arg1)->getAxisBin(arg2,(std::string const &)*arg3);
   resultobj = SWIG_NewPointerObj((new Bin1D(static_cast< const Bin1D& >(result))), SWIGTYPE_p_Bin1D, SWIG_POINTER_OWN |  0 );
   if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
@@ -27383,18 +27383,18 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisBin(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisBin(PyObject *self, PyObject *args) {
   Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
   
-  if (!(argc = SWIG_Python_UnpackTuple(args, "IField_getAxisBin", 0, 3, argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args, "Frame_getAxisBin", 0, 3, argv))) SWIG_fail;
   --argc;
   if (argc == 3) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IField, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Frame, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27407,7 +27407,7 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBin(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_IField_getAxisBin__SWIG_0(self, argc, argv);
+          return _wrap_Frame_getAxisBin__SWIG_0(self, argc, argv);
         }
       }
     }
@@ -27415,7 +27415,7 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBin(PyObject *self, PyObject *args) {
   if (argc == 3) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IField, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Frame, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27426,24 +27426,24 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBin(PyObject *self, PyObject *args) {
         int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
-          return _wrap_IField_getAxisBin__SWIG_1(self, argc, argv);
+          return _wrap_Frame_getAxisBin__SWIG_1(self, argc, argv);
         }
       }
     }
   }
   
 fail:
-  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IField_getAxisBin'.\n"
+  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'Frame_getAxisBin'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IField::getAxisBin(size_t,size_t) const\n"
-    "    IField::getAxisBin(size_t,std::string const &) const\n");
+    "    Frame::getAxisBin(size_t,size_t) const\n"
+    "    Frame::getAxisBin(size_t,std::string const &) const\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisBinIndex__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   std::string *arg3 = 0 ;
   void *argp1 = 0 ;
@@ -27454,28 +27454,28 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex__SWIG_0(PyObject *SWIGUNUSEDPA
   size_t result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxisBinIndex" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxisBinIndex" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxisBinIndex" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxisBinIndex" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   {
     std::string *ptr = (std::string *)0;
     res3 = SWIG_AsPtr_std_string(swig_obj[2], &ptr);
     if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IField_getAxisBinIndex" "', argument " "3"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Frame_getAxisBinIndex" "', argument " "3"" of type '" "std::string const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IField_getAxisBinIndex" "', argument " "3"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Frame_getAxisBinIndex" "', argument " "3"" of type '" "std::string const &""'"); 
     }
     arg3 = ptr;
   }
-  result = ((IField const *)arg1)->getAxisBinIndex(arg2,(std::string const &)*arg3);
+  result = ((Frame const *)arg1)->getAxisBinIndex(arg2,(std::string const &)*arg3);
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
@@ -27485,9 +27485,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxesBinIndices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_getAxesBinIndices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27496,18 +27496,18 @@ SWIGINTERN PyObject *_wrap_IField_getAxesBinIndices(PyObject *SWIGUNUSEDPARM(sel
   PyObject *swig_obj[2] ;
   std::vector< int,std::allocator< int > > result;
   
-  if (!SWIG_Python_UnpackTuple(args, "IField_getAxesBinIndices", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "Frame_getAxesBinIndices", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxesBinIndices" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxesBinIndices" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxesBinIndices" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxesBinIndices" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
-  result = ((IField const *)arg1)->getAxesBinIndices(arg2);
+  result = ((Frame const *)arg1)->getAxesBinIndices(arg2);
   resultobj = swig::from(static_cast< std::vector< int,std::allocator< int > > >(result));
   return resultobj;
 fail:
@@ -27515,9 +27515,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisBinIndex__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   size_t arg2 ;
   size_t arg3 ;
   void *argp1 = 0 ;
@@ -27529,22 +27529,22 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex__SWIG_1(PyObject *SWIGUNUSEDPA
   size_t result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_getAxisBinIndex" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_getAxisBinIndex" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IField_getAxisBinIndex" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Frame_getAxisBinIndex" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   ecode3 = SWIG_AsVal_size_t(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IField_getAxisBinIndex" "', argument " "3"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Frame_getAxisBinIndex" "', argument " "3"" of type '" "size_t""'");
   } 
   arg3 = static_cast< size_t >(val3);
-  result = ((IField const *)arg1)->getAxisBinIndex(arg2,arg3);
+  result = ((Frame const *)arg1)->getAxisBinIndex(arg2,arg3);
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -27552,18 +27552,18 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_getAxisBinIndex(PyObject *self, PyObject *args) {
   Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
   
-  if (!(argc = SWIG_Python_UnpackTuple(args, "IField_getAxisBinIndex", 0, 3, argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args, "Frame_getAxisBinIndex", 0, 3, argv))) SWIG_fail;
   --argc;
   if (argc == 3) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IField, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Frame, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27576,7 +27576,7 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex(PyObject *self, PyObject *args
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_IField_getAxisBinIndex__SWIG_1(self, argc, argv);
+          return _wrap_Frame_getAxisBinIndex__SWIG_1(self, argc, argv);
         }
       }
     }
@@ -27584,7 +27584,7 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex(PyObject *self, PyObject *args
   if (argc == 3) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IField, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Frame, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27595,24 +27595,24 @@ SWIGINTERN PyObject *_wrap_IField_getAxisBinIndex(PyObject *self, PyObject *args
         int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
-          return _wrap_IField_getAxisBinIndex__SWIG_0(self, argc, argv);
+          return _wrap_Frame_getAxisBinIndex__SWIG_0(self, argc, argv);
         }
       }
     }
   }
   
 fail:
-  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IField_getAxisBinIndex'.\n"
+  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'Frame_getAxisBinIndex'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IField::getAxisBinIndex(size_t,std::string const &) const\n"
-    "    IField::getAxisBinIndex(size_t,size_t) const\n");
+    "    Frame::getAxisBinIndex(size_t,std::string const &) const\n"
+    "    Frame::getAxisBinIndex(size_t,size_t) const\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_toGlobalIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_toGlobalIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   std::vector< unsigned int,std::allocator< unsigned int > > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27621,21 +27621,21 @@ SWIGINTERN PyObject *_wrap_IField_toGlobalIndex(PyObject *SWIGUNUSEDPARM(self),
   PyObject *swig_obj[2] ;
   size_t result;
   
-  if (!SWIG_Python_UnpackTuple(args, "IField_toGlobalIndex", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "Frame_toGlobalIndex", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_toGlobalIndex" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_toGlobalIndex" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IField_toGlobalIndex" "', argument " "2"" of type '" "std::vector< unsigned int,std::allocator< unsigned int > > const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Frame_toGlobalIndex" "', argument " "2"" of type '" "std::vector< unsigned int,std::allocator< unsigned int > > const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IField_toGlobalIndex" "', argument " "2"" of type '" "std::vector< unsigned int,std::allocator< unsigned int > > const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Frame_toGlobalIndex" "', argument " "2"" of type '" "std::vector< unsigned int,std::allocator< unsigned int > > const &""'"); 
   }
   arg2 = reinterpret_cast< std::vector< unsigned int,std::allocator< unsigned int > > * >(argp2);
-  result = ((IField const *)arg1)->toGlobalIndex((std::vector< unsigned int,std::allocator< unsigned int > > const &)*arg2);
+  result = ((Frame const *)arg1)->toGlobalIndex((std::vector< unsigned int,std::allocator< unsigned int > > const &)*arg2);
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -27643,9 +27643,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IField_findGlobalIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_Frame_findGlobalIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  IField *arg1 = (IField *) 0 ;
+  Frame *arg1 = (Frame *) 0 ;
   std::vector< double,std::allocator< double > > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27653,24 +27653,24 @@ SWIGINTERN PyObject *_wrap_IField_findGlobalIndex(PyObject *SWIGUNUSEDPARM(self)
   PyObject *swig_obj[2] ;
   size_t result;
   
-  if (!SWIG_Python_UnpackTuple(args, "IField_findGlobalIndex", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IField, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "Frame_findGlobalIndex", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Frame, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IField_findGlobalIndex" "', argument " "1"" of type '" "IField const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Frame_findGlobalIndex" "', argument " "1"" of type '" "Frame const *""'"); 
   }
-  arg1 = reinterpret_cast< IField * >(argp1);
+  arg1 = reinterpret_cast< Frame * >(argp1);
   {
     std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(swig_obj[1], &ptr);
     if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IField_findGlobalIndex" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Frame_findGlobalIndex" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IField_findGlobalIndex" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Frame_findGlobalIndex" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
     }
     arg2 = ptr;
   }
-  result = ((IField const *)arg1)->findGlobalIndex((std::vector< double,std::allocator< double > > const &)*arg2);
+  result = ((Frame const *)arg1)->findGlobalIndex((std::vector< double,std::allocator< double > > const &)*arg2);
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
@@ -27680,14 +27680,14 @@ fail:
 }
 
 
-SWIGINTERN PyObject *IField_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *Frame_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_IField, SWIG_NewClientData(obj));
+  SWIG_TypeNewClientData(SWIGTYPE_p_Frame, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
-SWIGINTERN PyObject *IField_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *Frame_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   return SWIG_Python_InitShadowInstance(args);
 }
 
@@ -42834,35 +42834,35 @@ static PyMethodDef SwigMethods[] = {
 	 { "delete_vector_R3", _wrap_delete_vector_R3, METH_O, "delete_vector_R3(vector_R3 self)"},
 	 { "vector_R3_swigregister", vector_R3_swigregister, METH_O, NULL},
 	 { "vector_R3_swiginit", vector_R3_swiginit, METH_VARARGS, NULL},
-	 { "new_IField", _wrap_new_IField, METH_VARARGS, "\n"
-		"IField()\n"
-		"new_IField(std::vector< IAxis *,std::allocator< IAxis * > > const & axes) -> IField\n"
-		"IField::IField(const std::vector< IAxis * > &axes)\n"
+	 { "new_Frame", _wrap_new_Frame, METH_VARARGS, "\n"
+		"Frame()\n"
+		"new_Frame(std::vector< IAxis *,std::allocator< IAxis * > > const & axes) -> Frame\n"
+		"Frame::Frame(const std::vector< IAxis * > &axes)\n"
 		"\n"
 		""},
-	 { "delete_IField", _wrap_delete_IField, METH_O, "\n"
-		"delete_IField(IField self)\n"
-		"virtual IField::~IField()\n"
+	 { "delete_Frame", _wrap_delete_Frame, METH_O, "\n"
+		"delete_Frame(Frame self)\n"
+		"virtual Frame::~Frame()\n"
 		"\n"
 		""},
-	 { "IField_rank", _wrap_IField_rank, METH_O, "\n"
-		"IField_rank(IField self) -> size_t\n"
-		"size_t IField::rank() const\n"
+	 { "Frame_rank", _wrap_Frame_rank, METH_O, "\n"
+		"Frame_rank(Frame self) -> size_t\n"
+		"size_t Frame::rank() const\n"
 		"\n"
 		"Returns number of dimensions. \n"
 		"\n"
 		""},
-	 { "IField_axis", _wrap_IField_axis, METH_VARARGS, "\n"
-		"IField_axis(IField self, size_t serial_number) -> IAxis\n"
-		"const IAxis & IField::axis(size_t serial_number) const\n"
+	 { "Frame_axis", _wrap_Frame_axis, METH_VARARGS, "\n"
+		"Frame_axis(Frame self, size_t serial_number) -> IAxis\n"
+		"const IAxis & Frame::axis(size_t serial_number) const\n"
 		"\n"
 		"Returns axis with given serial number. \n"
 		"\n"
 		""},
-	 { "IField_getAxisValue", _wrap_IField_getAxisValue, METH_VARARGS, "\n"
-		"IField_getAxisValue(IField self, size_t global_index, size_t i_selected_axis) -> double\n"
-		"IField_getAxisValue(IField self, size_t global_index, std::string const & axis_name) -> double\n"
-		"double IField::getAxisValue(size_t global_index, const std::string &axis_name) const\n"
+	 { "Frame_getAxisValue", _wrap_Frame_getAxisValue, METH_VARARGS, "\n"
+		"Frame_getAxisValue(Frame self, size_t global_index, size_t i_selected_axis) -> double\n"
+		"Frame_getAxisValue(Frame self, size_t global_index, std::string const & axis_name) -> double\n"
+		"double Frame::getAxisValue(size_t global_index, const std::string &axis_name) const\n"
 		"\n"
 		"Returns the value of selected axis for given global_index.\n"
 		"\n"
@@ -42878,9 +42878,9 @@ static PyMethodDef SwigMethods[] = {
 		"corresponding bin center of selected axis \n"
 		"\n"
 		""},
-	 { "IField_getAxesValues", _wrap_IField_getAxesValues, METH_VARARGS, "\n"
-		"IField_getAxesValues(IField self, size_t global_index) -> vdouble1d_t\n"
-		"std::vector< double > IField::getAxesValues(size_t global_index) const\n"
+	 { "Frame_getAxesValues", _wrap_Frame_getAxesValues, METH_VARARGS, "\n"
+		"Frame_getAxesValues(Frame self, size_t global_index) -> vdouble1d_t\n"
+		"std::vector< double > Frame::getAxesValues(size_t global_index) const\n"
 		"\n"
 		"Returns values on all defined axes for given globalbin number\n"
 		"\n"
@@ -42893,10 +42893,10 @@ static PyMethodDef SwigMethods[] = {
 		"Vector of corresponding bin centers \n"
 		"\n"
 		""},
-	 { "IField_getAxisBin", _wrap_IField_getAxisBin, METH_VARARGS, "\n"
-		"IField_getAxisBin(IField self, size_t global_index, size_t i_selected_axis) -> Bin1D\n"
-		"IField_getAxisBin(IField self, size_t global_index, std::string const & axis_name) -> Bin1D\n"
-		"Bin1D IField::getAxisBin(size_t global_index, const std::string &axis_name) const\n"
+	 { "Frame_getAxisBin", _wrap_Frame_getAxisBin, METH_VARARGS, "\n"
+		"Frame_getAxisBin(Frame self, size_t global_index, size_t i_selected_axis) -> Bin1D\n"
+		"Frame_getAxisBin(Frame self, size_t global_index, std::string const & axis_name) -> Bin1D\n"
+		"Bin1D Frame::getAxisBin(size_t global_index, const std::string &axis_name) const\n"
 		"\n"
 		"Returns bin of selected axis for given global_index.\n"
 		"\n"
@@ -42912,9 +42912,9 @@ static PyMethodDef SwigMethods[] = {
 		"Corresponding Bin1D object \n"
 		"\n"
 		""},
-	 { "IField_getAxesBinIndices", _wrap_IField_getAxesBinIndices, METH_VARARGS, "\n"
-		"IField_getAxesBinIndices(IField self, size_t global_index) -> vector_integer_t\n"
-		"std::vector< int > IField::getAxesBinIndices(size_t global_index) const\n"
+	 { "Frame_getAxesBinIndices", _wrap_Frame_getAxesBinIndices, METH_VARARGS, "\n"
+		"Frame_getAxesBinIndices(Frame self, size_t global_index) -> vector_integer_t\n"
+		"std::vector< int > Frame::getAxesBinIndices(size_t global_index) const\n"
 		"\n"
 		"Returns vector of axes indices for given global index\n"
 		"\n"
@@ -42927,10 +42927,10 @@ static PyMethodDef SwigMethods[] = {
 		"Vector of bin indices for all axes defined \n"
 		"\n"
 		""},
-	 { "IField_getAxisBinIndex", _wrap_IField_getAxisBinIndex, METH_VARARGS, "\n"
-		"IField_getAxisBinIndex(IField self, size_t global_index, std::string const & axis_name) -> size_t\n"
-		"IField_getAxisBinIndex(IField self, size_t global_index, size_t i_selected_axis) -> size_t\n"
-		"size_t IField::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const\n"
+	 { "Frame_getAxisBinIndex", _wrap_Frame_getAxisBinIndex, METH_VARARGS, "\n"
+		"Frame_getAxisBinIndex(Frame self, size_t global_index, std::string const & axis_name) -> size_t\n"
+		"Frame_getAxisBinIndex(Frame self, size_t global_index, size_t i_selected_axis) -> size_t\n"
+		"size_t Frame::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const\n"
 		"\n"
 		"Returns axis bin index for given global index\n"
 		"\n"
@@ -42946,9 +42946,9 @@ static PyMethodDef SwigMethods[] = {
 		"Corresponding bin index for selected axis \n"
 		"\n"
 		""},
-	 { "IField_toGlobalIndex", _wrap_IField_toGlobalIndex, METH_VARARGS, "\n"
-		"IField_toGlobalIndex(IField self, std::vector< unsigned int,std::allocator< unsigned int > > const & axes_indices) -> size_t\n"
-		"size_t IField::toGlobalIndex(const std::vector< unsigned > &axes_indices) const\n"
+	 { "Frame_toGlobalIndex", _wrap_Frame_toGlobalIndex, METH_VARARGS, "\n"
+		"Frame_toGlobalIndex(Frame self, std::vector< unsigned int,std::allocator< unsigned int > > const & axes_indices) -> size_t\n"
+		"size_t Frame::toGlobalIndex(const std::vector< unsigned > &axes_indices) const\n"
 		"\n"
 		"Returns global index for specified indices of axes\n"
 		"\n"
@@ -42961,9 +42961,9 @@ static PyMethodDef SwigMethods[] = {
 		"Corresponding global index \n"
 		"\n"
 		""},
-	 { "IField_findGlobalIndex", _wrap_IField_findGlobalIndex, METH_VARARGS, "\n"
-		"IField_findGlobalIndex(IField self, vdouble1d_t coordinates) -> size_t\n"
-		"size_t IField::findGlobalIndex(const std::vector< double > &coordinates) const\n"
+	 { "Frame_findGlobalIndex", _wrap_Frame_findGlobalIndex, METH_VARARGS, "\n"
+		"Frame_findGlobalIndex(Frame self, vdouble1d_t coordinates) -> size_t\n"
+		"size_t Frame::findGlobalIndex(const std::vector< double > &coordinates) const\n"
 		"\n"
 		"Returns global index for specified axes values\n"
 		"\n"
@@ -42976,8 +42976,8 @@ static PyMethodDef SwigMethods[] = {
 		"Closest global index \n"
 		"\n"
 		""},
-	 { "IField_swigregister", IField_swigregister, METH_O, NULL},
-	 { "IField_swiginit", IField_swiginit, METH_VARARGS, NULL},
+	 { "Frame_swigregister", Frame_swigregister, METH_O, NULL},
+	 { "Frame_swiginit", Frame_swiginit, METH_VARARGS, NULL},
 	 { "new_IntensityData", _wrap_new_IntensityData, METH_VARARGS, "\n"
 		"IntensityData()\n"
 		"IntensityData(IAxis xAxis)\n"
@@ -44952,9 +44952,6 @@ static void *_p_SphericalDetectorTo_p_IDetector(void *x, int *SWIGUNUSEDPARM(new
 static void *_p_IDetector2DTo_p_IDetector(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IDetector *)  ((IDetector2D *) x));
 }
-static void *_p_PowerfieldT_double_tTo_p_IField(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IField *)  ((Powerfield< double > *) x));
-}
 static void *_p_PolygonTo_p_IShape2D(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IShape2D *)  ((Polygon *) x));
 }
@@ -45021,6 +45018,9 @@ static void *_p_FootprintGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)
 static void *_p_IDetector2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IDetector *) ((IDetector2D *) x));
 }
+static void *_p_PowerfieldT_double_tTo_p_Frame(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((Frame *)  ((Powerfield< double > *) x));
+}
 static void *_p_ResolutionFunction2DGaussianTo_p_IResolutionFunction2D(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IResolutionFunction2D *)  ((ResolutionFunction2DGaussian *) x));
 }
@@ -45084,6 +45084,7 @@ static swig_type_info _swigt__p_Direction = {"_p_Direction", "Direction *", 0, 0
 static swig_type_info _swigt__p_Ellipse = {"_p_Ellipse", "Ellipse *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_FootprintGauss = {"_p_FootprintGauss", "FootprintGauss *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_FootprintSquare = {"_p_FootprintSquare", "FootprintSquare *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Frame = {"_p_Frame", "Frame *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Histogram1D = {"_p_Histogram1D", "Histogram1D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Histogram2D = {"_p_Histogram2D", "Histogram2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_HorizontalLine = {"_p_HorizontalLine", "HorizontalLine *", 0, 0, (void*)0, 0};
@@ -45093,7 +45094,6 @@ static swig_type_info _swigt__p_ICoordSystem = {"_p_ICoordSystem", "ICoordSystem
 static swig_type_info _swigt__p_IDetector = {"_p_IDetector", "IDetector *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IDetector2D = {"_p_IDetector2D", "IDetector2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IDetectorResolution = {"_p_IDetectorResolution", "IDetectorResolution *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_IField = {"_p_IField", "IField *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IFootprintFactor = {"_p_IFootprintFactor", "IFootprintFactor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IHistogram = {"_p_IHistogram", "IHistogram *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_INode = {"_p_INode", "INode *", 0, 0, (void*)0, 0};
@@ -45193,6 +45193,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_Ellipse,
   &_swigt__p_FootprintGauss,
   &_swigt__p_FootprintSquare,
+  &_swigt__p_Frame,
   &_swigt__p_Histogram1D,
   &_swigt__p_Histogram2D,
   &_swigt__p_HorizontalLine,
@@ -45202,7 +45203,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_IDetector,
   &_swigt__p_IDetector2D,
   &_swigt__p_IDetectorResolution,
-  &_swigt__p_IField,
   &_swigt__p_IFootprintFactor,
   &_swigt__p_IHistogram,
   &_swigt__p_INode,
@@ -45302,6 +45302,7 @@ static swig_cast_info _swigc__p_Direction[] = {  {&_swigt__p_Direction, 0, 0, 0}
 static swig_cast_info _swigc__p_Ellipse[] = {  {&_swigt__p_Ellipse, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_FootprintGauss[] = {  {&_swigt__p_FootprintGauss, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_FootprintSquare[] = {  {&_swigt__p_FootprintSquare, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Frame[] = {  {&_swigt__p_PowerfieldT_double_t, _p_PowerfieldT_double_tTo_p_Frame, 0, 0},  {&_swigt__p_Frame, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Histogram1D[] = {  {&_swigt__p_Histogram1D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Histogram2D[] = {  {&_swigt__p_Histogram2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_HorizontalLine[] = {  {&_swigt__p_HorizontalLine, 0, 0, 0},{0, 0, 0, 0}};
@@ -45311,7 +45312,6 @@ static swig_cast_info _swigc__p_ICoordSystem[] = {  {&_swigt__p_ICoordSystem, 0,
 static swig_cast_info _swigc__p_IDetector[] = {  {&_swigt__p_IDetector, 0, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IDetector, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IDetector2D[] = {  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_IDetector2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IDetectorResolution[] = {  {&_swigt__p_IDetectorResolution, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IField[] = {  {&_swigt__p_PowerfieldT_double_t, _p_PowerfieldT_double_tTo_p_IField, 0, 0},  {&_swigt__p_IField, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFootprintFactor[] = {  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_IFootprintFactor, 0, 0},  {&_swigt__p_IFootprintFactor, 0, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_IFootprintFactor, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IHistogram[] = {  {&_swigt__p_IHistogram, 0, 0, 0},  {&_swigt__p_Histogram2D, _p_Histogram2DTo_p_IHistogram, 0, 0},  {&_swigt__p_Histogram1D, _p_Histogram1DTo_p_IHistogram, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_INode, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0},  {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0},  {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0},  {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_INode, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0},{0, 0, 0, 0}};
@@ -45411,6 +45411,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_Ellipse,
   _swigc__p_FootprintGauss,
   _swigc__p_FootprintSquare,
+  _swigc__p_Frame,
   _swigc__p_Histogram1D,
   _swigc__p_Histogram2D,
   _swigc__p_HorizontalLine,
@@ -45420,7 +45421,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_IDetector,
   _swigc__p_IDetector2D,
   _swigc__p_IDetectorResolution,
-  _swigc__p_IField,
   _swigc__p_IFootprintFactor,
   _swigc__p_IHistogram,
   _swigc__p_INode,
-- 
GitLab