diff --git a/GUI/Model/Sample/FormFactorItems.cpp b/GUI/Model/Sample/FormfactorItems.cpp
similarity index 99%
rename from GUI/Model/Sample/FormFactorItems.cpp
rename to GUI/Model/Sample/FormfactorItems.cpp
index 389ca9285021581a234ac1c0574fb0eaa60ae2b8..992f8618106686d5f88574e8ccd7aa1e762310a5 100644
--- a/GUI/Model/Sample/FormFactorItems.cpp
+++ b/GUI/Model/Sample/FormfactorItems.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FormFactorItems.cpp
-//! @brief     Implements class FormFactorItemses.
+//! @file      GUI/Model/Sample/FormfactorItems.cpp
+//! @brief     Implements class FormfactorItemses.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "Base/Const/Units.h"
 #include "GUI/Model/Util/UtilXML.h"
 #include "Sample/HardParticle/HardParticles.h"
diff --git a/GUI/Model/Sample/FormFactorItems.h b/GUI/Model/Sample/FormfactorItems.h
similarity index 99%
rename from GUI/Model/Sample/FormFactorItems.h
rename to GUI/Model/Sample/FormfactorItems.h
index 16e0672e7cc9bccfed8fd573407f927b7ab817e3..978a85b6a55cd4b1e80ddc85a960d0a5a99a4022 100644
--- a/GUI/Model/Sample/FormFactorItems.h
+++ b/GUI/Model/Sample/FormfactorItems.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/Model/Sample/FormFactorItems.h
-//! @brief     Defines class FormFactorItemses.
+//! @file      GUI/Model/Sample/FormfactorItems.h
+//! @brief     Defines class FormfactorItemses.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
diff --git a/GUI/Model/Sample/FormfactorsCatalog.cpp b/GUI/Model/Sample/FormfactorsCatalog.cpp
index 233301f16c491409a5b0ce40b1c5a1b3173df407..b8ad4f7a516d8f2f6aa3a18d1f72bc33efcaebca 100644
--- a/GUI/Model/Sample/FormfactorsCatalog.cpp
+++ b/GUI/Model/Sample/FormfactorsCatalog.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/Model/Sample/FormfactorsCatalog.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 
 FormFactorItem* FormfactorsCatalog::create(Type type)
 {
diff --git a/GUI/Model/Sample/MesocrystalItem.h b/GUI/Model/Sample/MesocrystalItem.h
index 28283c783279a28e2d2a07c5bf71730ec79f486b..29406f8d541d787bb78ba71d2ead7af27502100b 100644
--- a/GUI/Model/Sample/MesocrystalItem.h
+++ b/GUI/Model/Sample/MesocrystalItem.h
@@ -17,7 +17,7 @@
 
 #include "GUI/Model/Descriptor/PolyItem.h"
 #include "GUI/Model/Descriptor/VectorProperty.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "GUI/Model/Sample/FormfactorsCatalog.h"
 #include "GUI/Model/Sample/ItemWithParticles.h"
 #include "GUI/Model/Sample/ParticlesCatalog.h"
diff --git a/GUI/Model/Sample/ParticleItem.h b/GUI/Model/Sample/ParticleItem.h
index 154e2adea3ab2af4c720d7881b23285e1e367a76..83fca9ac2075e07ad01c1141d7808cf8728060f8 100644
--- a/GUI/Model/Sample/ParticleItem.h
+++ b/GUI/Model/Sample/ParticleItem.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLEITEM_H
 
 #include "GUI/Model/Descriptor/PolyItem.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "GUI/Model/Sample/FormfactorsCatalog.h"
 #include "GUI/Model/Sample/ItemWithMaterial.h"
 #include "GUI/Model/Sample/ItemWithParticles.h"
diff --git a/GUI/View/Sample/CoreAndShellForm.cpp b/GUI/View/Sample/CoreAndShellForm.cpp
index 407e6bc6adf6b1deef801ff511db3ec9c5c8de84..f2436088d1f72d93b5ceb9b1281234d90b586bb5 100644
--- a/GUI/View/Sample/CoreAndShellForm.cpp
+++ b/GUI/View/Sample/CoreAndShellForm.cpp
@@ -15,7 +15,7 @@
 #include "GUI/View/Sample/CoreAndShellForm.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Sample/CoreAndShellItem.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "GUI/Model/Sample/FormfactorsCatalog.h"
 #include "GUI/Model/Sample/ParticleItem.h"
 #include "GUI/View/Base/ActionFactory.h"
diff --git a/GUI/View/Sample/MesocrystalForm.cpp b/GUI/View/Sample/MesocrystalForm.cpp
index a3c93f177fafb0b2220556f9ffffdf7e55c3894a..282b95b362ec8c1f1e40fba973e3976059803ab8 100644
--- a/GUI/View/Sample/MesocrystalForm.cpp
+++ b/GUI/View/Sample/MesocrystalForm.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/View/Sample/MesocrystalForm.h"
 #include "Base/Util/Assert.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "GUI/Model/Sample/MesocrystalItem.h"
 #include "GUI/Model/Sample/ParticleItem.h"
 #include "GUI/View/Base/ActionFactory.h"
diff --git a/GUI/View/Sample/ParticleForm.cpp b/GUI/View/Sample/ParticleForm.cpp
index 9ec5a7e7c9df1f1d035966981758eb7cf67b43ba..7840d69ea2b220bbfc3152667909e483996e7f7a 100644
--- a/GUI/View/Sample/ParticleForm.cpp
+++ b/GUI/View/Sample/ParticleForm.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Sample/ParticleForm.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "GUI/Model/Sample/FormfactorsCatalog.h"
 #include "GUI/Model/Sample/ParticleItem.h"
 #include "GUI/View/Base/ActionFactory.h"
diff --git a/GUI/View/Sample/PolyForm.cpp b/GUI/View/Sample/PolyForm.cpp
index 15e6d96a69ae1c7c9c617468a4236cdd92136ea6..dbcfd80ef2aba4bec35301008470fe8837b0fbc9 100644
--- a/GUI/View/Sample/PolyForm.cpp
+++ b/GUI/View/Sample/PolyForm.cpp
@@ -13,7 +13,7 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Sample/PolyForm.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "GUI/Model/Sample/ProfileItems.h"
 #include "GUI/Model/Sample/RotationItems.h"
 #include "GUI/Model/Sample/RoughnessItems.h"
diff --git a/Tests/Unit/GUI/TestFormFactorItems.cpp b/Tests/Unit/GUI/TestFormFactorItems.cpp
index a0e5d5949b8387ab2e464fb8c58982ae86de6f54..8fdad4bef7a19ad54f3371d1b310c9d4d357ffa1 100644
--- a/Tests/Unit/GUI/TestFormFactorItems.cpp
+++ b/Tests/Unit/GUI/TestFormFactorItems.cpp
@@ -1,10 +1,10 @@
 #include "Base/Const/Units.h"
 #include "Base/Math/Numeric.h"
-#include "GUI/Model/Sample/FormFactorItems.h"
+#include "GUI/Model/Sample/FormfactorItems.h"
 #include "Sample/HardParticle/Polyhedra.h"
 #include "Tests/GTestWrapper/google_test.h"
 
-TEST(FormFactorItems, Pyramid2Item)
+TEST(FormfactorItems, Pyramid2Item)
 {
     // to domain
     Pyramid2Item item;
diff --git a/auto/Examples/scatter2d/CustomFormFactor.py b/auto/Examples/scatter2d/CustomFormFactor.py
index 79e8507aed6aa7fa47515d6dcb7aa2b7fcc194c9..1553c5079d05843ab101ec5fce9440d7d2a14b0b 100755
--- a/auto/Examples/scatter2d/CustomFormFactor.py
+++ b/auto/Examples/scatter2d/CustomFormFactor.py
@@ -13,7 +13,7 @@ def sinc(x):
     return cmath.sin(x)/x
 
 
-class CustomFormFactor(ba.IFormFactor):
+class CustomFormFactor(ba.IFormfactor):
     """
     A custom defined form factor.
     The particle is a prism of height H,
@@ -21,7 +21,7 @@ class CustomFormFactor(ba.IFormFactor):
     """
 
     def __init__(self, L, H):
-        ba.IFormFactor.__init__(self)
+        ba.IFormfactor.__init__(self)
         # parameters describing the form factor
         self.L = L
         self.H = H
diff --git a/auto/MiniExamples/scatter2d/CustomFormFactor.py b/auto/MiniExamples/scatter2d/CustomFormFactor.py
index d843ed3d3877c1f5b5f97a84234ae122923360c0..28127d06aa1ffaab2c003760913d23332357cd99 100755
--- a/auto/MiniExamples/scatter2d/CustomFormFactor.py
+++ b/auto/MiniExamples/scatter2d/CustomFormFactor.py
@@ -13,7 +13,7 @@ def sinc(x):
     return cmath.sin(x)/x
 
 
-class CustomFormFactor(ba.IFormFactor):
+class CustomFormFactor(ba.IFormfactor):
     """
     A custom defined form factor.
     The particle is a prism of height H,
@@ -21,7 +21,7 @@ class CustomFormFactor(ba.IFormFactor):
     """
 
     def __init__(self, L, H):
-        ba.IFormFactor.__init__(self)
+        ba.IFormfactor.__init__(self)
         # parameters describing the form factor
         self.L = L
         self.H = H
diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py
index 32af1220f23a3ea4feba7925fe7bd6d29de5ed4d..61ddd6c453fdf71cc4eea9a7ce2d386ee1dbe0f9 100644
--- a/auto/Wrap/libBornAgainSample.py
+++ b/auto/Wrap/libBornAgainSample.py
@@ -2463,78 +2463,78 @@ class ISampleNode(libBornAgainBase.ICloneable, libBornAgainParam.INode):
 
 # Register ISampleNode in _libBornAgainSample:
 _libBornAgainSample.ISampleNode_swigregister(ISampleNode)
-class IFormFactor(ISampleNode):
-    r"""Proxy of C++ IFormFactor class."""
+class IFormfactor(ISampleNode):
+    r"""Proxy of C++ IFormfactor class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
     __repr__ = _swig_repr
 
     def __init__(self, *args):
         r"""
-        __init__(IFormFactor self) -> IFormFactor
-        __init__(IFormFactor self, vdouble1d_t PValues) -> IFormFactor
+        __init__(IFormfactor self) -> IFormfactor
+        __init__(IFormfactor self, vdouble1d_t PValues) -> IFormfactor
         """
-        if self.__class__ == IFormFactor:
+        if self.__class__ == IFormfactor:
             _self = None
         else:
             _self = self
-        _libBornAgainSample.IFormFactor_swiginit(self, _libBornAgainSample.new_IFormFactor(_self, *args))
-    __swig_destroy__ = _libBornAgainSample.delete_IFormFactor
+        _libBornAgainSample.IFormfactor_swiginit(self, _libBornAgainSample.new_IFormfactor(_self, *args))
+    __swig_destroy__ = _libBornAgainSample.delete_IFormfactor
 
     def clone(self):
-        r"""clone(IFormFactor self) -> IFormFactor"""
-        return _libBornAgainSample.IFormFactor_clone(self)
+        r"""clone(IFormfactor self) -> IFormfactor"""
+        return _libBornAgainSample.IFormfactor_clone(self)
 
     def volume(self):
-        r"""volume(IFormFactor self) -> double"""
-        return _libBornAgainSample.IFormFactor_volume(self)
+        r"""volume(IFormfactor self) -> double"""
+        return _libBornAgainSample.IFormfactor_volume(self)
 
     def radialExtension(self):
-        r"""radialExtension(IFormFactor self) -> double"""
-        return _libBornAgainSample.IFormFactor_radialExtension(self)
+        r"""radialExtension(IFormfactor self) -> double"""
+        return _libBornAgainSample.IFormfactor_radialExtension(self)
 
     def spanZ(self, rotation):
-        r"""spanZ(IFormFactor self, IRotation rotation) -> Span"""
-        return _libBornAgainSample.IFormFactor_spanZ(self, rotation)
+        r"""spanZ(IFormfactor self, IRotation rotation) -> Span"""
+        return _libBornAgainSample.IFormfactor_spanZ(self, rotation)
 
     def pythonConstructor(self):
-        r"""pythonConstructor(IFormFactor self) -> std::string"""
-        return _libBornAgainSample.IFormFactor_pythonConstructor(self)
+        r"""pythonConstructor(IFormfactor self) -> std::string"""
+        return _libBornAgainSample.IFormfactor_pythonConstructor(self)
 
     def canSliceAnalytically(self, rot):
-        r"""canSliceAnalytically(IFormFactor self, IRotation rot) -> bool"""
-        return _libBornAgainSample.IFormFactor_canSliceAnalytically(self, rot)
+        r"""canSliceAnalytically(IFormfactor self, IRotation rot) -> bool"""
+        return _libBornAgainSample.IFormfactor_canSliceAnalytically(self, rot)
 
     def theFF(self, wavevectors):
-        r"""theFF(IFormFactor self, WavevectorInfo const & wavevectors) -> complex_t"""
-        return _libBornAgainSample.IFormFactor_theFF(self, wavevectors)
+        r"""theFF(IFormfactor self, WavevectorInfo const & wavevectors) -> complex_t"""
+        return _libBornAgainSample.IFormfactor_theFF(self, wavevectors)
 
     def thePolFF(self, wavevectors):
-        r"""thePolFF(IFormFactor self, WavevectorInfo const & wavevectors) -> SpinMatrix"""
-        return _libBornAgainSample.IFormFactor_thePolFF(self, wavevectors)
+        r"""thePolFF(IFormfactor self, WavevectorInfo const & wavevectors) -> SpinMatrix"""
+        return _libBornAgainSample.IFormfactor_thePolFF(self, wavevectors)
 
     def formfactor_pol(self, q):
-        r"""formfactor_pol(IFormFactor self, C3 q) -> SpinMatrix"""
-        return _libBornAgainSample.IFormFactor_formfactor_pol(self, q)
+        r"""formfactor_pol(IFormfactor self, C3 q) -> SpinMatrix"""
+        return _libBornAgainSample.IFormfactor_formfactor_pol(self, q)
 
     def formfactor(self, q):
-        r"""formfactor(IFormFactor self, C3 q) -> complex_t"""
-        return _libBornAgainSample.IFormFactor_formfactor(self, q)
+        r"""formfactor(IFormfactor self, C3 q) -> complex_t"""
+        return _libBornAgainSample.IFormfactor_formfactor(self, q)
 
     def contains(self, position):
-        r"""contains(IFormFactor self, R3 position) -> bool"""
-        return _libBornAgainSample.IFormFactor_contains(self, position)
+        r"""contains(IFormfactor self, R3 position) -> bool"""
+        return _libBornAgainSample.IFormfactor_contains(self, position)
 
     def isEqualTo(self, other):
-        r"""isEqualTo(IFormFactor self, IFormFactor other) -> bool"""
-        return _libBornAgainSample.IFormFactor_isEqualTo(self, other)
+        r"""isEqualTo(IFormfactor self, IFormfactor other) -> bool"""
+        return _libBornAgainSample.IFormfactor_isEqualTo(self, other)
     def __disown__(self):
         self.this.disown()
-        _libBornAgainSample.disown_IFormFactor(self)
+        _libBornAgainSample.disown_IFormfactor(self)
         return weakref.proxy(self)
 
-# Register IFormFactor in _libBornAgainSample:
-_libBornAgainSample.IFormFactor_swigregister(IFormFactor)
+# Register IFormfactor in _libBornAgainSample:
+_libBornAgainSample.IFormfactor_swigregister(IFormfactor)
 class IRotation(libBornAgainBase.ICloneable, libBornAgainParam.INode):
     r"""Proxy of C++ IRotation class."""
 
@@ -2868,7 +2868,7 @@ class Mesocrystal(IParticle):
     __repr__ = _swig_repr
 
     def __init__(self, crystal, formfactor):
-        r"""__init__(Mesocrystal self, Crystal crystal, IFormFactor formfactor) -> Mesocrystal"""
+        r"""__init__(Mesocrystal self, Crystal crystal, IFormfactor formfactor) -> Mesocrystal"""
         _libBornAgainSample.Mesocrystal_swiginit(self, _libBornAgainSample.new_Mesocrystal(crystal, formfactor))
     __swig_destroy__ = _libBornAgainSample.delete_Mesocrystal
 
@@ -2893,7 +2893,7 @@ class Particle(IParticle):
     __repr__ = _swig_repr
 
     def __init__(self, material, formfactor):
-        r"""__init__(Particle self, Material material, IFormFactor formfactor) -> Particle"""
+        r"""__init__(Particle self, Material material, IFormfactor formfactor) -> Particle"""
         _libBornAgainSample.Particle_swiginit(self, _libBornAgainSample.new_Particle(material, formfactor))
     __swig_destroy__ = _libBornAgainSample.delete_Particle
 
@@ -4378,7 +4378,7 @@ class TanhRoughness(RoughnessModel):
 
 # Register TanhRoughness in _libBornAgainSample:
 _libBornAgainSample.TanhRoughness_swigregister(TanhRoughness)
-class IFormfactorPolyhedron(IFormFactor):
+class IFormfactorPolyhedron(IFormfactor):
     r"""Proxy of C++ IFormfactorPolyhedron class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -4422,7 +4422,7 @@ class IFormfactorPrism(IFormfactorPolyhedron):
 
 # Register IFormfactorPrism in _libBornAgainSample:
 _libBornAgainSample.IFormfactorPrism_swigregister(IFormfactorPrism)
-class IProfileRipple(IFormFactor):
+class IProfileRipple(IFormfactor):
     r"""Proxy of C++ IProfileRipple class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5086,7 +5086,7 @@ class TruncatedCube(IFormfactorPolyhedron):
 
 # Register TruncatedCube in _libBornAgainSample:
 _libBornAgainSample.TruncatedCube_swigregister(TruncatedCube)
-class Cone(IFormFactor):
+class Cone(IFormfactor):
     r"""Proxy of C++ Cone class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5142,7 +5142,7 @@ class Cone(IFormFactor):
 
 # Register Cone in _libBornAgainSample:
 _libBornAgainSample.Cone_swigregister(Cone)
-class Cylinder(IFormFactor):
+class Cylinder(IFormfactor):
     r"""Proxy of C++ Cylinder class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5194,7 +5194,7 @@ class Cylinder(IFormFactor):
 
 # Register Cylinder in _libBornAgainSample:
 _libBornAgainSample.Cylinder_swigregister(Cylinder)
-class EllipsoidalCylinder(IFormFactor):
+class EllipsoidalCylinder(IFormfactor):
     r"""Proxy of C++ EllipsoidalCylinder class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5250,7 +5250,7 @@ class EllipsoidalCylinder(IFormFactor):
 
 # Register EllipsoidalCylinder in _libBornAgainSample:
 _libBornAgainSample.EllipsoidalCylinder_swigregister(EllipsoidalCylinder)
-class HemiEllipsoid(IFormFactor):
+class HemiEllipsoid(IFormfactor):
     r"""Proxy of C++ HemiEllipsoid class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5306,7 +5306,7 @@ class HemiEllipsoid(IFormFactor):
 
 # Register HemiEllipsoid in _libBornAgainSample:
 _libBornAgainSample.HemiEllipsoid_swigregister(HemiEllipsoid)
-class HorizontalCylinder(IFormFactor):
+class HorizontalCylinder(IFormfactor):
     r"""Proxy of C++ HorizontalCylinder class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5371,7 +5371,7 @@ class HorizontalCylinder(IFormFactor):
 
 # Register HorizontalCylinder in _libBornAgainSample:
 _libBornAgainSample.HorizontalCylinder_swigregister(HorizontalCylinder)
-class Sphere(IFormFactor):
+class Sphere(IFormfactor):
     r"""Proxy of C++ Sphere class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5427,7 +5427,7 @@ class Sphere(IFormFactor):
 
 # Register Sphere in _libBornAgainSample:
 _libBornAgainSample.Sphere_swigregister(Sphere)
-class Spheroid(IFormFactor):
+class Spheroid(IFormfactor):
     r"""Proxy of C++ Spheroid class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5479,7 +5479,7 @@ class Spheroid(IFormFactor):
 
 # Register Spheroid in _libBornAgainSample:
 _libBornAgainSample.Spheroid_swigregister(Spheroid)
-class TruncatedSphere(IFormFactor):
+class TruncatedSphere(IFormfactor):
     r"""Proxy of C++ TruncatedSphere class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5539,7 +5539,7 @@ class TruncatedSphere(IFormFactor):
 
 # Register TruncatedSphere in _libBornAgainSample:
 _libBornAgainSample.TruncatedSphere_swigregister(TruncatedSphere)
-class TruncatedSpheroid(IFormFactor):
+class TruncatedSpheroid(IFormfactor):
     r"""Proxy of C++ TruncatedSpheroid class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5859,7 +5859,7 @@ class SawtoothRippleLorentz(ISawtoothRipple):
 
 # Register SawtoothRippleLorentz in _libBornAgainSample:
 _libBornAgainSample.SawtoothRippleLorentz_swigregister(SawtoothRippleLorentz)
-class LongBoxGauss(IFormFactor):
+class LongBoxGauss(IFormfactor):
     r"""Proxy of C++ LongBoxGauss class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5915,7 +5915,7 @@ class LongBoxGauss(IFormFactor):
 
 # Register LongBoxGauss in _libBornAgainSample:
 _libBornAgainSample.LongBoxGauss_swigregister(LongBoxGauss)
-class LongBoxLorentz(IFormFactor):
+class LongBoxLorentz(IFormfactor):
     r"""Proxy of C++ LongBoxLorentz class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -5971,7 +5971,7 @@ class LongBoxLorentz(IFormFactor):
 
 # Register LongBoxLorentz in _libBornAgainSample:
 _libBornAgainSample.LongBoxLorentz_swigregister(LongBoxLorentz)
-class GaussSphere(IFormFactor):
+class GaussSphere(IFormfactor):
     r"""Proxy of C++ GaussSphere class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -6019,7 +6019,7 @@ class GaussSphere(IFormFactor):
 
 # Register GaussSphere in _libBornAgainSample:
 _libBornAgainSample.GaussSphere_swigregister(GaussSphere)
-class FuzzySphere(IFormFactor):
+class FuzzySphere(IFormfactor):
     r"""Proxy of C++ FuzzySphere class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index eb173cb9e041b6b50a73990bd5181f7d81a8dfaf..916a14bd948b3b50c33eae1d54db047ed0596490 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -3670,7 +3670,7 @@ namespace Swig {
 #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_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]
@@ -7623,31 +7623,31 @@ std::string SwigDirector_ISampleNode::validate() const {
 }
 
 
-SwigDirector_IFormFactor::SwigDirector_IFormFactor(PyObject *self): IFormFactor(), Swig::Director(self) {
-  SWIG_DIRECTOR_RGTR((IFormFactor *)this, this); 
+SwigDirector_IFormfactor::SwigDirector_IFormfactor(PyObject *self): IFormfactor(), Swig::Director(self) {
+  SWIG_DIRECTOR_RGTR((IFormfactor *)this, this); 
 }
 
 
 
 
-SwigDirector_IFormFactor::SwigDirector_IFormFactor(PyObject *self,std::vector< double,std::allocator< double > > const &PValues): IFormFactor(PValues), Swig::Director(self) {
-  SWIG_DIRECTOR_RGTR((IFormFactor *)this, this); 
+SwigDirector_IFormfactor::SwigDirector_IFormfactor(PyObject *self,std::vector< double,std::allocator< double > > const &PValues): IFormfactor(PValues), Swig::Director(self) {
+  SWIG_DIRECTOR_RGTR((IFormfactor *)this, this); 
 }
 
 
 
 
-SwigDirector_IFormFactor::~SwigDirector_IFormFactor() {
+SwigDirector_IFormfactor::~SwigDirector_IFormfactor() {
 }
 
-IFormFactor *SwigDirector_IFormFactor::clone() const {
-  IFormFactor *c_result = 0 ;
+IFormfactor *SwigDirector_IFormfactor::clone() const {
+  IFormfactor *c_result = 0 ;
   void *swig_argp ;
   int swig_res ;
   swig_owntype own ;
   
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 0;
@@ -7662,22 +7662,22 @@ IFormFactor *SwigDirector_IFormFactor::clone() const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.clone'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.clone'");
     }
   }
-  swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_IFormFactor,  0  | SWIG_POINTER_DISOWN, &own);
+  swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_IFormfactor,  0  | SWIG_POINTER_DISOWN, &own);
   if (!SWIG_IsOK(swig_res)) {
-    Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""IFormFactor *""'");
+    Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""IFormfactor *""'");
   }
-  c_result = reinterpret_cast< IFormFactor * >(swig_argp);
+  c_result = reinterpret_cast< IFormfactor * >(swig_argp);
   swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own /* & TODO: SWIG_POINTER_OWN */);
-  return (IFormFactor *) c_result;
+  return (IFormfactor *) c_result;
 }
 
 
-void SwigDirector_IFormFactor::transferToCPP() {
+void SwigDirector_IFormfactor::transferToCPP() {
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 1;
@@ -7692,16 +7692,16 @@ void SwigDirector_IFormFactor::transferToCPP() {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.transferToCPP'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.transferToCPP'");
     }
   }
 }
 
 
-std::string SwigDirector_IFormFactor::className() const {
+std::string SwigDirector_IFormfactor::className() const {
   std::string c_result;
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 2;
@@ -7716,7 +7716,7 @@ std::string SwigDirector_IFormFactor::className() const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.className'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.className'");
     }
   }
   std::string *swig_optr = 0;
@@ -7730,10 +7730,10 @@ std::string SwigDirector_IFormFactor::className() const {
 }
 
 
-std::vector< INode const *,std::allocator< INode const * > > SwigDirector_IFormFactor::nodeChildren() const {
+std::vector< INode const *,std::allocator< INode const * > > SwigDirector_IFormfactor::nodeChildren() const {
   std::vector< INode const *,std::allocator< INode const * > > c_result;
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 3;
@@ -7748,7 +7748,7 @@ std::vector< INode const *,std::allocator< INode const * > > SwigDirector_IFormF
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.nodeChildren'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.nodeChildren'");
     }
   }
   std::vector< INode const*,std::allocator< INode const * > > *swig_optr = 0;
@@ -7762,13 +7762,13 @@ std::vector< INode const *,std::allocator< INode const * > > SwigDirector_IFormF
 }
 
 
-std::vector< ParaMeta,std::allocator< ParaMeta > > SwigDirector_IFormFactor::parDefs() const {
+std::vector< ParaMeta,std::allocator< ParaMeta > > SwigDirector_IFormfactor::parDefs() const {
   void *swig_argp ;
   int swig_res = 0 ;
   
   std::vector< ParaMeta,std::allocator< ParaMeta > > c_result;
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 4;
@@ -7783,7 +7783,7 @@ std::vector< ParaMeta,std::allocator< ParaMeta > > SwigDirector_IFormFactor::par
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.parDefs'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.parDefs'");
     }
   }
   swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t,  0  | 0);
@@ -7796,10 +7796,10 @@ std::vector< ParaMeta,std::allocator< ParaMeta > > SwigDirector_IFormFactor::par
 }
 
 
-std::string SwigDirector_IFormFactor::validate() const {
+std::string SwigDirector_IFormfactor::validate() const {
   std::string c_result;
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 5;
@@ -7814,7 +7814,7 @@ std::string SwigDirector_IFormFactor::validate() const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.validate'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.validate'");
     }
   }
   std::string *swig_optr = 0;
@@ -7828,11 +7828,11 @@ std::string SwigDirector_IFormFactor::validate() const {
 }
 
 
-double SwigDirector_IFormFactor::volume() const {
+double SwigDirector_IFormfactor::volume() const {
   double c_result = SwigValueInit< double >() ;
   
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 6;
@@ -7847,7 +7847,7 @@ double SwigDirector_IFormFactor::volume() const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.volume'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.volume'");
     }
   }
   double swig_val;
@@ -7860,11 +7860,11 @@ double SwigDirector_IFormFactor::volume() const {
 }
 
 
-double SwigDirector_IFormFactor::radialExtension() const {
+double SwigDirector_IFormfactor::radialExtension() const {
   double c_result = SwigValueInit< double >() ;
   
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 7;
@@ -7879,7 +7879,7 @@ double SwigDirector_IFormFactor::radialExtension() const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.radialExtension'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.radialExtension'");
     }
   }
   double swig_val;
@@ -7892,7 +7892,7 @@ double SwigDirector_IFormFactor::radialExtension() const {
 }
 
 
-Span SwigDirector_IFormFactor::spanZ(IRotation const *rotation) const {
+Span SwigDirector_IFormfactor::spanZ(IRotation const *rotation) const {
   void *swig_argp ;
   int swig_res = 0 ;
   
@@ -7900,7 +7900,7 @@ Span SwigDirector_IFormFactor::spanZ(IRotation const *rotation) const {
   swig::SwigVar_PyObject obj0;
   obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(rotation), SWIGTYPE_p_IRotation,  0 );
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 8;
@@ -7914,7 +7914,7 @@ Span SwigDirector_IFormFactor::spanZ(IRotation const *rotation) const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.spanZ'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.spanZ'");
     }
   }
   swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_Span,  0  | 0);
@@ -7927,13 +7927,13 @@ Span SwigDirector_IFormFactor::spanZ(IRotation const *rotation) const {
 }
 
 
-bool SwigDirector_IFormFactor::canSliceAnalytically(IRotation const *rot) const {
+bool SwigDirector_IFormfactor::canSliceAnalytically(IRotation const *rot) const {
   bool c_result = SwigValueInit< bool >() ;
   
   swig::SwigVar_PyObject obj0;
   obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(rot), SWIGTYPE_p_IRotation,  0 );
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 9;
@@ -7947,7 +7947,7 @@ bool SwigDirector_IFormFactor::canSliceAnalytically(IRotation const *rot) const
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.canSliceAnalytically'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.canSliceAnalytically'");
     }
   }
   bool swig_val;
@@ -7960,12 +7960,12 @@ bool SwigDirector_IFormFactor::canSliceAnalytically(IRotation const *rot) const
 }
 
 
-complex_t SwigDirector_IFormFactor::formfactor(C3 q) const {
+complex_t SwigDirector_IFormfactor::formfactor(C3 q) const {
   complex_t c_result;
   swig::SwigVar_PyObject obj0;
   obj0 = SWIG_NewPointerObj((new C3(SWIG_STD_MOVE(q))), SWIGTYPE_p_Vec3T_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 10;
@@ -7979,7 +7979,7 @@ complex_t SwigDirector_IFormFactor::formfactor(C3 q) const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.formfactor'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.formfactor'");
     }
   }
   std::complex<double> swig_val;
@@ -7992,13 +7992,13 @@ complex_t SwigDirector_IFormFactor::formfactor(C3 q) const {
 }
 
 
-bool SwigDirector_IFormFactor::contains(R3 const &position) const {
+bool SwigDirector_IFormfactor::contains(R3 const &position) const {
   bool c_result = SwigValueInit< bool >() ;
   
   swig::SwigVar_PyObject obj0;
   obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&position), SWIGTYPE_p_Vec3T_double_t,  0 );
   if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
+    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormfactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
   const size_t swig_method_index = 11;
@@ -8012,7 +8012,7 @@ bool SwigDirector_IFormFactor::contains(R3 const &position) const {
   if (!result) {
     PyObject *error = PyErr_Occurred();
     if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.contains'");
+      Swig::DirectorMethodException::raise("Error detected when calling 'IFormfactor.contains'");
     }
   }
   bool swig_val;
@@ -34588,10 +34588,10 @@ SWIGINTERN PyObject *ISampleNode_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObje
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_IFormfactor__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   PyObject *arg1 = (PyObject *) 0 ;
-  IFormFactor *result = 0 ;
+  IFormfactor *result = 0 ;
   
   (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
@@ -34600,7 +34600,7 @@ SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_0(PyObject *self, Py_ssize_t no
     try {
       if ( arg1 != Py_None ) {
         /* subclassed */
-        result = (IFormFactor *)new SwigDirector_IFormFactor(arg1); 
+        result = (IFormfactor *)new SwigDirector_IFormfactor(arg1); 
       } else {
         SWIG_SetErrorMsg(PyExc_RuntimeError,"accessing abstract class or protected constructor"); 
         SWIG_fail;
@@ -34614,19 +34614,19 @@ SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_0(PyObject *self, Py_ssize_t no
       SWIG_exception(SWIG_RuntimeError, msg.c_str());
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormfactor, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_IFormfactor__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   PyObject *arg1 = (PyObject *) 0 ;
   std::vector< double,std::allocator< double > > *arg2 = 0 ;
   int res2 = SWIG_OLDOBJ ;
-  IFormFactor *result = 0 ;
+  IFormfactor *result = 0 ;
   
   (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
@@ -34635,10 +34635,10 @@ SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_1(PyObject *self, Py_ssize_t no
     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 '" "new_IFormFactor" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IFormfactor" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IFormFactor" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IFormfactor" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
     }
     arg2 = ptr;
   }
@@ -34646,7 +34646,7 @@ SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_1(PyObject *self, Py_ssize_t no
     try {
       if ( arg1 != Py_None ) {
         /* subclassed */
-        result = (IFormFactor *)new SwigDirector_IFormFactor(arg1,(std::vector< double,std::allocator< double > > const &)*arg2); 
+        result = (IFormfactor *)new SwigDirector_IFormfactor(arg1,(std::vector< double,std::allocator< double > > const &)*arg2); 
       } else {
         SWIG_SetErrorMsg(PyExc_RuntimeError,"accessing abstract class or protected constructor"); 
         SWIG_fail;
@@ -34660,7 +34660,7 @@ SWIGINTERN PyObject *_wrap_new_IFormFactor__SWIG_1(PyObject *self, Py_ssize_t no
       SWIG_exception(SWIG_RuntimeError, msg.c_str());
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormfactor, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -34669,19 +34669,19 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_IFormFactor(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_IFormfactor(PyObject *self, PyObject *args) {
   Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
   
-  if (!(argc = SWIG_Python_UnpackTuple(args, "new_IFormFactor", 0, 2, argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args, "new_IFormfactor", 0, 2, argv))) SWIG_fail;
   --argc;
   if (argc == 1) {
     int _v = 0;
     _v = (argv[0] != 0);
     if (_v) {
-      return _wrap_new_IFormFactor__SWIG_0(self, argc, argv);
+      return _wrap_new_IFormfactor__SWIG_0(self, argc, argv);
     }
   }
   if (argc == 2) {
@@ -34691,23 +34691,23 @@ SWIGINTERN PyObject *_wrap_new_IFormFactor(PyObject *self, PyObject *args) {
       int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_new_IFormFactor__SWIG_1(self, argc, argv);
+        return _wrap_new_IFormfactor__SWIG_1(self, argc, argv);
       }
     }
   }
   
 fail:
-  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IFormFactor'.\n"
+  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IFormfactor'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IFormFactor::IFormFactor()\n"
-    "    IFormFactor::IFormFactor(PyObject *,std::vector< double,std::allocator< double > > const &)\n");
+    "    IFormfactor::IFormfactor()\n"
+    "    IFormfactor::IFormfactor(PyObject *,std::vector< double,std::allocator< double > > const &)\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_IFormFactor(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_IFormfactor(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -34715,11 +34715,11 @@ SWIGINTERN PyObject *_wrap_delete_IFormFactor(PyObject *self, PyObject *args) {
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IFormFactor" "', argument " "1"" of type '" "IFormFactor *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IFormfactor" "', argument " "1"" of type '" "IFormfactor *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   {
     try {
       delete arg1;
@@ -34738,33 +34738,33 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_clone(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_clone(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   Swig::Director *director = 0;
   bool upcall = false;
-  IFormFactor *result = 0 ;
+  IFormfactor *result = 0 ;
   
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_clone" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_clone" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   director = SWIG_DIRECTOR_CAST(arg1);
   upcall = (director && (director->swig_get_self()==swig_obj[0]));
   try {
     {
       try {
         if (upcall) {
-          Swig::DirectorPureVirtualException::raise("IFormFactor::clone");
+          Swig::DirectorPureVirtualException::raise("IFormfactor::clone");
         } else {
-          result = (IFormFactor *)((IFormFactor const *)arg1)->clone();
+          result = (IFormfactor *)((IFormfactor const *)arg1)->clone();
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -34782,7 +34782,7 @@ SWIGINTERN PyObject *_wrap_IFormFactor_clone(PyObject *self, PyObject *args) {
     resultobj = director->swig_get_self();
     Py_INCREF(resultobj);
   } else {
-    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, 0 |  0 );
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormfactor, 0 |  0 );
   }
   if (director) {
     SWIG_AcquirePtr(resultobj, director->swig_release_ownership(SWIG_as_voidptr(result)));
@@ -34793,9 +34793,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_volume(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_volume(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -34806,20 +34806,20 @@ SWIGINTERN PyObject *_wrap_IFormFactor_volume(PyObject *self, PyObject *args) {
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_volume" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_volume" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   director = SWIG_DIRECTOR_CAST(arg1);
   upcall = (director && (director->swig_get_self()==swig_obj[0]));
   try {
     {
       try {
         if (upcall) {
-          result = (double)((IFormFactor const *)arg1)->IFormFactor::volume();
+          result = (double)((IFormfactor const *)arg1)->IFormfactor::volume();
         } else {
-          result = (double)((IFormFactor const *)arg1)->volume();
+          result = (double)((IFormfactor const *)arg1)->volume();
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -34839,9 +34839,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_radialExtension(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_radialExtension(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -34852,20 +34852,20 @@ SWIGINTERN PyObject *_wrap_IFormFactor_radialExtension(PyObject *self, PyObject
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_radialExtension" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_radialExtension" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   director = SWIG_DIRECTOR_CAST(arg1);
   upcall = (director && (director->swig_get_self()==swig_obj[0]));
   try {
     {
       try {
         if (upcall) {
-          Swig::DirectorPureVirtualException::raise("IFormFactor::radialExtension");
+          Swig::DirectorPureVirtualException::raise("IFormfactor::radialExtension");
         } else {
-          result = (double)((IFormFactor const *)arg1)->radialExtension();
+          result = (double)((IFormfactor const *)arg1)->radialExtension();
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -34885,9 +34885,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_spanZ(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_spanZ(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   IRotation *arg2 = (IRotation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34899,15 +34899,15 @@ SWIGINTERN PyObject *_wrap_IFormFactor_spanZ(PyObject *self, PyObject *args) {
   Span result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_spanZ", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_spanZ", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_spanZ" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_spanZ" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_IRotation, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_spanZ" "', argument " "2"" of type '" "IRotation const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_spanZ" "', argument " "2"" of type '" "IRotation const *""'"); 
   }
   arg2 = reinterpret_cast< IRotation * >(argp2);
   director = SWIG_DIRECTOR_CAST(arg1);
@@ -34916,9 +34916,9 @@ SWIGINTERN PyObject *_wrap_IFormFactor_spanZ(PyObject *self, PyObject *args) {
     {
       try {
         if (upcall) {
-          result = ((IFormFactor const *)arg1)->IFormFactor::spanZ((IRotation const *)arg2);
+          result = ((IFormfactor const *)arg1)->IFormfactor::spanZ((IRotation const *)arg2);
         } else {
-          result = ((IFormFactor const *)arg1)->spanZ((IRotation const *)arg2);
+          result = ((IFormfactor const *)arg1)->spanZ((IRotation const *)arg2);
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -34938,9 +34938,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_pythonConstructor(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_pythonConstructor(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -34949,14 +34949,14 @@ SWIGINTERN PyObject *_wrap_IFormFactor_pythonConstructor(PyObject *self, PyObjec
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_pythonConstructor" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_pythonConstructor" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   {
     try {
-      result = ((IFormFactor const *)arg1)->pythonConstructor();
+      result = ((IFormfactor const *)arg1)->pythonConstructor();
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -34972,9 +34972,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_canSliceAnalytically(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_canSliceAnalytically(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   IRotation *arg2 = (IRotation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34986,15 +34986,15 @@ SWIGINTERN PyObject *_wrap_IFormFactor_canSliceAnalytically(PyObject *self, PyOb
   bool result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_canSliceAnalytically", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_canSliceAnalytically", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_canSliceAnalytically" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_canSliceAnalytically" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_IRotation, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_canSliceAnalytically" "', argument " "2"" of type '" "IRotation const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_canSliceAnalytically" "', argument " "2"" of type '" "IRotation const *""'"); 
   }
   arg2 = reinterpret_cast< IRotation * >(argp2);
   director = SWIG_DIRECTOR_CAST(arg1);
@@ -35003,9 +35003,9 @@ SWIGINTERN PyObject *_wrap_IFormFactor_canSliceAnalytically(PyObject *self, PyOb
     {
       try {
         if (upcall) {
-          result = (bool)((IFormFactor const *)arg1)->IFormFactor::canSliceAnalytically((IRotation const *)arg2);
+          result = (bool)((IFormfactor const *)arg1)->IFormfactor::canSliceAnalytically((IRotation const *)arg2);
         } else {
-          result = (bool)((IFormFactor const *)arg1)->canSliceAnalytically((IRotation const *)arg2);
+          result = (bool)((IFormfactor const *)arg1)->canSliceAnalytically((IRotation const *)arg2);
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -35025,9 +35025,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_theFF(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_theFF(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   WavevectorInfo *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35037,23 +35037,23 @@ SWIGINTERN PyObject *_wrap_IFormFactor_theFF(PyObject *self, PyObject *args) {
   complex_t result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_theFF", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_theFF", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_theFF" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_theFF" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_WavevectorInfo,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_theFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_theFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactor_theFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormfactor_theFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
   }
   arg2 = reinterpret_cast< WavevectorInfo * >(argp2);
   {
     try {
-      result = ((IFormFactor const *)arg1)->theFF((WavevectorInfo const &)*arg2);
+      result = ((IFormfactor const *)arg1)->theFF((WavevectorInfo const &)*arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -35069,9 +35069,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_thePolFF(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_thePolFF(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   WavevectorInfo *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35081,23 +35081,23 @@ SWIGINTERN PyObject *_wrap_IFormFactor_thePolFF(PyObject *self, PyObject *args)
   SpinMatrix result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_thePolFF", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_thePolFF", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_thePolFF" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_thePolFF" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_WavevectorInfo,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_thePolFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_thePolFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactor_thePolFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormfactor_thePolFF" "', argument " "2"" of type '" "WavevectorInfo const &""'"); 
   }
   arg2 = reinterpret_cast< WavevectorInfo * >(argp2);
   {
     try {
-      result = ((IFormFactor const *)arg1)->thePolFF((WavevectorInfo const &)*arg2);
+      result = ((IFormfactor const *)arg1)->thePolFF((WavevectorInfo const &)*arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -35113,9 +35113,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_formfactor_pol(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_formfactor_pol(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   C3 arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35125,19 +35125,19 @@ SWIGINTERN PyObject *_wrap_IFormFactor_formfactor_pol(PyObject *self, PyObject *
   SpinMatrix result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_formfactor_pol", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_formfactor_pol", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_formfactor_pol" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_formfactor_pol" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   {
     res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_std__complexT_double_t_t,  0  | 0);
     if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_formfactor_pol" "', argument " "2"" of type '" "C3""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_formfactor_pol" "', argument " "2"" of type '" "C3""'"); 
     }  
     if (!argp2) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactor_formfactor_pol" "', argument " "2"" of type '" "C3""'");
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormfactor_formfactor_pol" "', argument " "2"" of type '" "C3""'");
     } else {
       C3 * temp = reinterpret_cast< C3 * >(argp2);
       arg2 = *temp;
@@ -35146,7 +35146,7 @@ SWIGINTERN PyObject *_wrap_IFormFactor_formfactor_pol(PyObject *self, PyObject *
   }
   {
     try {
-      result = ((IFormFactor const *)arg1)->formfactor_pol(arg2);
+      result = ((IFormfactor const *)arg1)->formfactor_pol(arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -35162,9 +35162,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_formfactor(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_formfactor(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   C3 arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35176,19 +35176,19 @@ SWIGINTERN PyObject *_wrap_IFormFactor_formfactor(PyObject *self, PyObject *args
   complex_t result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_formfactor", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_formfactor", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_formfactor" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_formfactor" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   {
     res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_std__complexT_double_t_t,  0  | 0);
     if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_formfactor" "', argument " "2"" of type '" "C3""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_formfactor" "', argument " "2"" of type '" "C3""'"); 
     }  
     if (!argp2) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactor_formfactor" "', argument " "2"" of type '" "C3""'");
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormfactor_formfactor" "', argument " "2"" of type '" "C3""'");
     } else {
       C3 * temp = reinterpret_cast< C3 * >(argp2);
       arg2 = *temp;
@@ -35201,9 +35201,9 @@ SWIGINTERN PyObject *_wrap_IFormFactor_formfactor(PyObject *self, PyObject *args
     {
       try {
         if (upcall) {
-          Swig::DirectorPureVirtualException::raise("IFormFactor::formfactor");
+          Swig::DirectorPureVirtualException::raise("IFormfactor::formfactor");
         } else {
-          result = ((IFormFactor const *)arg1)->formfactor(arg2);
+          result = ((IFormfactor const *)arg1)->formfactor(arg2);
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -35223,9 +35223,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_contains(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_contains(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   R3 *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35237,18 +35237,18 @@ SWIGINTERN PyObject *_wrap_IFormFactor_contains(PyObject *self, PyObject *args)
   bool result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_contains", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_contains", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_contains" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_contains" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_double_t,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_contains" "', argument " "2"" of type '" "R3 const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_contains" "', argument " "2"" of type '" "R3 const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormFactor_contains" "', argument " "2"" of type '" "R3 const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IFormfactor_contains" "', argument " "2"" of type '" "R3 const &""'"); 
   }
   arg2 = reinterpret_cast< R3 * >(argp2);
   director = SWIG_DIRECTOR_CAST(arg1);
@@ -35257,9 +35257,9 @@ SWIGINTERN PyObject *_wrap_IFormFactor_contains(PyObject *self, PyObject *args)
     {
       try {
         if (upcall) {
-          Swig::DirectorPureVirtualException::raise("IFormFactor::contains");
+          Swig::DirectorPureVirtualException::raise("IFormfactor::contains");
         } else {
-          result = (bool)((IFormFactor const *)arg1)->contains((R3 const &)*arg2);
+          result = (bool)((IFormfactor const *)arg1)->contains((R3 const &)*arg2);
         }
       } catch (const std::exception& ex) {
         // message shown in the Python interpreter
@@ -35279,10 +35279,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IFormFactor_isEqualTo(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_IFormfactor_isEqualTo(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
-  IFormFactor *arg2 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
+  IFormfactor *arg2 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -35291,20 +35291,20 @@ SWIGINTERN PyObject *_wrap_IFormFactor_isEqualTo(PyObject *self, PyObject *args)
   bool result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "IFormFactor_isEqualTo", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "IFormfactor_isEqualTo", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormFactor_isEqualTo" "', argument " "1"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFormfactor_isEqualTo" "', argument " "1"" of type '" "IFormfactor const *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
+  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormFactor_isEqualTo" "', argument " "2"" of type '" "IFormFactor const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IFormfactor_isEqualTo" "', argument " "2"" of type '" "IFormfactor const *""'"); 
   }
-  arg2 = reinterpret_cast< IFormFactor * >(argp2);
+  arg2 = reinterpret_cast< IFormfactor * >(argp2);
   {
     try {
-      result = (bool)((IFormFactor const *)arg1)->isEqualTo((IFormFactor const *)arg2);
+      result = (bool)((IFormfactor const *)arg1)->isEqualTo((IFormfactor const *)arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -35320,9 +35320,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_disown_IFormFactor(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_disown_IFormfactor(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  IFormFactor *arg1 = (IFormFactor *) 0 ;
+  IFormfactor *arg1 = (IFormfactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -35330,11 +35330,11 @@ SWIGINTERN PyObject *_wrap_disown_IFormFactor(PyObject *self, PyObject *args) {
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormFactor, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IFormfactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_IFormFactor" "', argument " "1"" of type '" "IFormFactor *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_IFormfactor" "', argument " "1"" of type '" "IFormfactor *""'"); 
   }
-  arg1 = reinterpret_cast< IFormFactor * >(argp1);
+  arg1 = reinterpret_cast< IFormfactor * >(argp1);
   {
     Swig::Director *director = SWIG_DIRECTOR_CAST(arg1);
     if (director) director->swig_disown();
@@ -35347,14 +35347,14 @@ fail:
 }
 
 
-SWIGINTERN PyObject *IFormFactor_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *IFormfactor_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_IFormFactor, SWIG_NewClientData(obj));
+  SWIG_TypeNewClientData(SWIGTYPE_p_IFormfactor, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
-SWIGINTERN PyObject *IFormFactor_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *IFormfactor_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   return SWIG_Python_InitShadowInstance(args);
 }
 
@@ -38269,7 +38269,7 @@ SWIGINTERN PyObject *IParticle_swigregister(PyObject *SWIGUNUSEDPARM(self), PyOb
 SWIGINTERN PyObject *_wrap_new_Mesocrystal(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Crystal *arg1 = 0 ;
-  IFormFactor *arg2 = 0 ;
+  IFormfactor *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -38287,17 +38287,17 @@ SWIGINTERN PyObject *_wrap_new_Mesocrystal(PyObject *self, PyObject *args) {
     SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Mesocrystal" "', argument " "1"" of type '" "Crystal const &""'"); 
   }
   arg1 = reinterpret_cast< Crystal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IFormFactor,  0  | 0);
+  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IFormfactor,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Mesocrystal" "', argument " "2"" of type '" "IFormFactor const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Mesocrystal" "', argument " "2"" of type '" "IFormfactor const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Mesocrystal" "', argument " "2"" of type '" "IFormFactor const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Mesocrystal" "', argument " "2"" of type '" "IFormfactor const &""'"); 
   }
-  arg2 = reinterpret_cast< IFormFactor * >(argp2);
+  arg2 = reinterpret_cast< IFormfactor * >(argp2);
   {
     try {
-      result = (Mesocrystal *)new Mesocrystal((Crystal const &)*arg1,(IFormFactor const &)*arg2);
+      result = (Mesocrystal *)new Mesocrystal((Crystal const &)*arg1,(IFormfactor const &)*arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -38462,7 +38462,7 @@ SWIGINTERN PyObject *Mesocrystal_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObje
 SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Material *arg1 = 0 ;
-  IFormFactor *arg2 = 0 ;
+  IFormfactor *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -38480,17 +38480,17 @@ SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) {
     SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Particle" "', argument " "1"" of type '" "Material const &""'"); 
   }
   arg1 = reinterpret_cast< Material * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IFormFactor,  0  | 0);
+  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IFormfactor,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Particle" "', argument " "2"" of type '" "IFormFactor const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Particle" "', argument " "2"" of type '" "IFormfactor const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Particle" "', argument " "2"" of type '" "IFormFactor const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Particle" "', argument " "2"" of type '" "IFormfactor const &""'"); 
   }
-  arg2 = reinterpret_cast< IFormFactor * >(argp2);
+  arg2 = reinterpret_cast< IFormfactor * >(argp2);
   {
     try {
-      result = (Particle *)new Particle((Material const &)*arg1,(IFormFactor const &)*arg2);
+      result = (Particle *)new Particle((Material const &)*arg1,(IFormfactor const &)*arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -72012,26 +72012,26 @@ static PyMethodDef SwigMethods[] = {
 	 { "disown_ISampleNode", _wrap_disown_ISampleNode, METH_O, NULL},
 	 { "ISampleNode_swigregister", ISampleNode_swigregister, METH_O, NULL},
 	 { "ISampleNode_swiginit", ISampleNode_swiginit, METH_VARARGS, NULL},
-	 { "new_IFormFactor", _wrap_new_IFormFactor, METH_VARARGS, "\n"
-		"IFormFactor()\n"
-		"new_IFormFactor(PyObject * _self, vdouble1d_t PValues) -> IFormFactor\n"
+	 { "new_IFormfactor", _wrap_new_IFormfactor, METH_VARARGS, "\n"
+		"IFormfactor()\n"
+		"new_IFormfactor(PyObject * _self, vdouble1d_t PValues) -> IFormfactor\n"
 		""},
-	 { "delete_IFormFactor", _wrap_delete_IFormFactor, METH_O, "delete_IFormFactor(IFormFactor self)"},
-	 { "IFormFactor_clone", _wrap_IFormFactor_clone, METH_O, "IFormFactor_clone(IFormFactor self) -> IFormFactor"},
-	 { "IFormFactor_volume", _wrap_IFormFactor_volume, METH_O, "IFormFactor_volume(IFormFactor self) -> double"},
-	 { "IFormFactor_radialExtension", _wrap_IFormFactor_radialExtension, METH_O, "IFormFactor_radialExtension(IFormFactor self) -> double"},
-	 { "IFormFactor_spanZ", _wrap_IFormFactor_spanZ, METH_VARARGS, "IFormFactor_spanZ(IFormFactor self, IRotation rotation) -> Span"},
-	 { "IFormFactor_pythonConstructor", _wrap_IFormFactor_pythonConstructor, METH_O, "IFormFactor_pythonConstructor(IFormFactor self) -> std::string"},
-	 { "IFormFactor_canSliceAnalytically", _wrap_IFormFactor_canSliceAnalytically, METH_VARARGS, "IFormFactor_canSliceAnalytically(IFormFactor self, IRotation rot) -> bool"},
-	 { "IFormFactor_theFF", _wrap_IFormFactor_theFF, METH_VARARGS, "IFormFactor_theFF(IFormFactor self, WavevectorInfo const & wavevectors) -> complex_t"},
-	 { "IFormFactor_thePolFF", _wrap_IFormFactor_thePolFF, METH_VARARGS, "IFormFactor_thePolFF(IFormFactor self, WavevectorInfo const & wavevectors) -> SpinMatrix"},
-	 { "IFormFactor_formfactor_pol", _wrap_IFormFactor_formfactor_pol, METH_VARARGS, "IFormFactor_formfactor_pol(IFormFactor self, C3 q) -> SpinMatrix"},
-	 { "IFormFactor_formfactor", _wrap_IFormFactor_formfactor, METH_VARARGS, "IFormFactor_formfactor(IFormFactor self, C3 q) -> complex_t"},
-	 { "IFormFactor_contains", _wrap_IFormFactor_contains, METH_VARARGS, "IFormFactor_contains(IFormFactor self, R3 position) -> bool"},
-	 { "IFormFactor_isEqualTo", _wrap_IFormFactor_isEqualTo, METH_VARARGS, "IFormFactor_isEqualTo(IFormFactor self, IFormFactor other) -> bool"},
-	 { "disown_IFormFactor", _wrap_disown_IFormFactor, METH_O, NULL},
-	 { "IFormFactor_swigregister", IFormFactor_swigregister, METH_O, NULL},
-	 { "IFormFactor_swiginit", IFormFactor_swiginit, METH_VARARGS, NULL},
+	 { "delete_IFormfactor", _wrap_delete_IFormfactor, METH_O, "delete_IFormfactor(IFormfactor self)"},
+	 { "IFormfactor_clone", _wrap_IFormfactor_clone, METH_O, "IFormfactor_clone(IFormfactor self) -> IFormfactor"},
+	 { "IFormfactor_volume", _wrap_IFormfactor_volume, METH_O, "IFormfactor_volume(IFormfactor self) -> double"},
+	 { "IFormfactor_radialExtension", _wrap_IFormfactor_radialExtension, METH_O, "IFormfactor_radialExtension(IFormfactor self) -> double"},
+	 { "IFormfactor_spanZ", _wrap_IFormfactor_spanZ, METH_VARARGS, "IFormfactor_spanZ(IFormfactor self, IRotation rotation) -> Span"},
+	 { "IFormfactor_pythonConstructor", _wrap_IFormfactor_pythonConstructor, METH_O, "IFormfactor_pythonConstructor(IFormfactor self) -> std::string"},
+	 { "IFormfactor_canSliceAnalytically", _wrap_IFormfactor_canSliceAnalytically, METH_VARARGS, "IFormfactor_canSliceAnalytically(IFormfactor self, IRotation rot) -> bool"},
+	 { "IFormfactor_theFF", _wrap_IFormfactor_theFF, METH_VARARGS, "IFormfactor_theFF(IFormfactor self, WavevectorInfo const & wavevectors) -> complex_t"},
+	 { "IFormfactor_thePolFF", _wrap_IFormfactor_thePolFF, METH_VARARGS, "IFormfactor_thePolFF(IFormfactor self, WavevectorInfo const & wavevectors) -> SpinMatrix"},
+	 { "IFormfactor_formfactor_pol", _wrap_IFormfactor_formfactor_pol, METH_VARARGS, "IFormfactor_formfactor_pol(IFormfactor self, C3 q) -> SpinMatrix"},
+	 { "IFormfactor_formfactor", _wrap_IFormfactor_formfactor, METH_VARARGS, "IFormfactor_formfactor(IFormfactor self, C3 q) -> complex_t"},
+	 { "IFormfactor_contains", _wrap_IFormfactor_contains, METH_VARARGS, "IFormfactor_contains(IFormfactor self, R3 position) -> bool"},
+	 { "IFormfactor_isEqualTo", _wrap_IFormfactor_isEqualTo, METH_VARARGS, "IFormfactor_isEqualTo(IFormfactor self, IFormfactor other) -> bool"},
+	 { "disown_IFormfactor", _wrap_disown_IFormfactor, METH_O, NULL},
+	 { "IFormfactor_swigregister", IFormfactor_swigregister, METH_O, NULL},
+	 { "IFormfactor_swiginit", IFormfactor_swiginit, METH_VARARGS, NULL},
 	 { "IRotation_createRotation", _wrap_IRotation_createRotation, METH_O, "IRotation_createRotation(RotMatrix const & matrix) -> IRotation"},
 	 { "IRotation_clone", _wrap_IRotation_clone, METH_O, "IRotation_clone(IRotation self) -> IRotation"},
 	 { "IRotation_createInverse", _wrap_IRotation_createInverse, METH_O, "IRotation_createInverse(IRotation self) -> IRotation"},
@@ -72127,14 +72127,14 @@ static PyMethodDef SwigMethods[] = {
 	 { "IParticle_rotate", _wrap_IParticle_rotate, METH_VARARGS, "IParticle_rotate(IParticle self, IRotation rotation) -> IParticle"},
 	 { "IParticle_setAbundance", _wrap_IParticle_setAbundance, METH_VARARGS, "IParticle_setAbundance(IParticle self, double abundance)"},
 	 { "IParticle_swigregister", IParticle_swigregister, METH_O, NULL},
-	 { "new_Mesocrystal", _wrap_new_Mesocrystal, METH_VARARGS, "new_Mesocrystal(Crystal crystal, IFormFactor formfactor) -> Mesocrystal"},
+	 { "new_Mesocrystal", _wrap_new_Mesocrystal, METH_VARARGS, "new_Mesocrystal(Crystal crystal, IFormfactor formfactor) -> Mesocrystal"},
 	 { "delete_Mesocrystal", _wrap_delete_Mesocrystal, METH_O, "delete_Mesocrystal(Mesocrystal self)"},
 	 { "Mesocrystal_clone", _wrap_Mesocrystal_clone, METH_O, "Mesocrystal_clone(Mesocrystal self) -> Mesocrystal"},
 	 { "Mesocrystal_className", _wrap_Mesocrystal_className, METH_O, "Mesocrystal_className(Mesocrystal self) -> std::string"},
 	 { "Mesocrystal_nodeChildren", _wrap_Mesocrystal_nodeChildren, METH_O, "Mesocrystal_nodeChildren(Mesocrystal self) -> swig_dummy_type_const_inode_vector"},
 	 { "Mesocrystal_swigregister", Mesocrystal_swigregister, METH_O, NULL},
 	 { "Mesocrystal_swiginit", Mesocrystal_swiginit, METH_VARARGS, NULL},
-	 { "new_Particle", _wrap_new_Particle, METH_VARARGS, "new_Particle(Material material, IFormFactor formfactor) -> Particle"},
+	 { "new_Particle", _wrap_new_Particle, METH_VARARGS, "new_Particle(Material material, IFormfactor formfactor) -> Particle"},
 	 { "delete_Particle", _wrap_delete_Particle, METH_O, "delete_Particle(Particle self)"},
 	 { "Particle_clone", _wrap_Particle_clone, METH_O, "Particle_clone(Particle self) -> Particle"},
 	 { "Particle_className", _wrap_Particle_className, METH_O, "Particle_className(Particle self) -> std::string"},
@@ -73172,85 +73172,85 @@ static PyMethodDef SwigMethods[] = {
 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
 
 static void *_p_BarGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
 }
 static void *_p_BarLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
 }
 static void *_p_BasicLattice2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (Lattice2D *) ((BasicLattice2D *) x));
 }
 static void *_p_Bipyramid4To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Bipyramid4 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Bipyramid4 *) x));
 }
 static void *_p_BoxTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
 }
 static void *_p_CantellatedCubeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x));
 }
 static void *_p_CompoundTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((Compound *) x));
 }
 static void *_p_ConeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((Cone *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((Cone *) x));
 }
 static void *_p_CoreAndShellTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (ISampleNode *)(IParticle *) ((CoreAndShell *) x));
 }
 static void *_p_CosineRippleBoxTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
 }
 static void *_p_CosineRippleGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
 }
 static void *_p_CosineRippleLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
 }
 static void *_p_CrystalTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (ISampleNode *) ((Crystal *) x));
 }
 static void *_p_CylinderTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((Cylinder *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((Cylinder *) x));
 }
 static void *_p_DodecahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Dodecahedron *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Dodecahedron *) x));
 }
 static void *_p_EllipsoidalCylinderTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((EllipsoidalCylinder *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((EllipsoidalCylinder *) x));
 }
 static void *_p_ErfRoughnessTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (RoughnessModel *) ((ErfRoughness *) x));
 }
 static void *_p_FuzzySphereTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((FuzzySphere *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((FuzzySphere *) x));
 }
 static void *_p_GaussFisherPeakShapeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IPeakShape *) ((GaussFisherPeakShape *) x));
 }
 static void *_p_GaussSphereTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((GaussSphere *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((GaussSphere *) x));
 }
 static void *_p_HemiEllipsoidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((HemiEllipsoid *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((HemiEllipsoid *) x));
 }
 static void *_p_HexagonalLattice2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (Lattice2D *) ((HexagonalLattice2D *) x));
 }
 static void *_p_HorizontalCylinderTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((HorizontalCylinder *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((HorizontalCylinder *) x));
 }
 static void *_p_ICosineRippleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *) ((ICosineRipple *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *) ((ICosineRipple *) x));
 }
-static void *_p_IFormFactorTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *) ((IFormFactor *) x));
+static void *_p_IFormfactorTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((ICloneable *) (ISampleNode *) ((IFormfactor *) x));
 }
 static void *_p_IFormfactorPolyhedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((IFormfactorPolyhedron *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((IFormfactorPolyhedron *) x));
 }
 static void *_p_IFormfactorPrismTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
 }
 static void *_p_IInterferenceTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *)  ((IInterference *) x));
@@ -73268,10 +73268,10 @@ static void *_p_IProfile2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory
     return (void *)((ICloneable *)  ((IProfile2D *) x));
 }
 static void *_p_IProfileRectangularRippleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *) ((IProfileRectangularRipple *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *) ((IProfileRectangularRipple *) x));
 }
 static void *_p_IProfileRippleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((IProfileRipple *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((IProfileRipple *) x));
 }
 static void *_p_IRotationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *)  ((IRotation *) x));
@@ -73280,10 +73280,10 @@ static void *_p_ISampleNodeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemor
     return (void *)((ICloneable *)  ((ISampleNode *) x));
 }
 static void *_p_ISawtoothRippleTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *) ((ISawtoothRipple *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *) ((ISawtoothRipple *) x));
 }
 static void *_p_IcosahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Icosahedron *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Icosahedron *) x));
 }
 static void *_p_IdentityRotationTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IRotation *) ((IdentityRotation *) x));
@@ -73328,10 +73328,10 @@ static void *_p_LayerRoughnessTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newme
     return (void *)((ICloneable *) (ISampleNode *) ((LayerRoughness *) x));
 }
 static void *_p_LongBoxGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((LongBoxGauss *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((LongBoxGauss *) x));
 }
 static void *_p_LongBoxLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((LongBoxLorentz *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((LongBoxLorentz *) x));
 }
 static void *_p_LorentzFisherPeakShapeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IPeakShape *) ((LorentzFisherPeakShape *) x));
@@ -73355,16 +73355,16 @@ static void *_p_ParticleLayoutTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newme
     return (void *)((ICloneable *) (ISampleNode *) ((ParticleLayout *) x));
 }
 static void *_p_PlatonicOctahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
 }
 static void *_p_PlatonicTetrahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
 }
 static void *_p_Prism3To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
 }
 static void *_p_Prism6To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
 }
 static void *_p_Profile1DCauchyTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IProfile1D *) ((Profile1DCauchy *) x));
@@ -73400,16 +73400,16 @@ static void *_p_Profile2DVoigtTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newme
     return (void *)((ICloneable *) (IProfile2D *) ((Profile2DVoigt *) x));
 }
 static void *_p_Pyramid2To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid2 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid2 *) x));
 }
 static void *_p_Pyramid3To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid3 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid3 *) x));
 }
 static void *_p_Pyramid4To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid4 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid4 *) x));
 }
 static void *_p_Pyramid6To_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid6 *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid6 *) x));
 }
 static void *_p_RotationEulerTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IRotation *) ((RotationEuler *) x));
@@ -73427,19 +73427,19 @@ static void *_p_RoughnessModelTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newme
     return (void *)((ICloneable *)  ((RoughnessModel *) x));
 }
 static void *_p_SawtoothRippleBoxTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
 }
 static void *_p_SawtoothRippleGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
 }
 static void *_p_SawtoothRippleLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
 }
 static void *_p_SphereTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((Sphere *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((Sphere *) x));
 }
 static void *_p_SpheroidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((Spheroid *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((Spheroid *) x));
 }
 static void *_p_SquareLattice2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (Lattice2D *) ((SquareLattice2D *) x));
@@ -73448,13 +73448,13 @@ static void *_p_TanhRoughnessTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmem
     return (void *)((ICloneable *) (RoughnessModel *) ((TanhRoughness *) x));
 }
 static void *_p_TruncatedCubeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x));
 }
 static void *_p_TruncatedSphereTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((TruncatedSphere *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((TruncatedSphere *) x));
 }
 static void *_p_TruncatedSpheroidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (ISampleNode *)(IFormFactor *) ((TruncatedSpheroid *) x));
+    return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((TruncatedSpheroid *) x));
 }
 static void *_p_CosineRippleBoxTo_p_ICosineRipple(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICosineRipple *)  ((CosineRippleBox *) x));
@@ -73465,128 +73465,128 @@ static void *_p_CosineRippleGaussTo_p_ICosineRipple(void *x, int *SWIGUNUSEDPARM
 static void *_p_CosineRippleLorentzTo_p_ICosineRipple(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICosineRipple *)  ((CosineRippleLorentz *) x));
 }
-static void *_p_BarGaussTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
+static void *_p_BarGaussTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
 }
-static void *_p_BarLorentzTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
+static void *_p_BarLorentzTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
 }
-static void *_p_Bipyramid4To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Bipyramid4 *) x));
+static void *_p_Bipyramid4To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Bipyramid4 *) x));
 }
-static void *_p_BoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
+static void *_p_BoxTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
 }
-static void *_p_CantellatedCubeTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((CantellatedCube *) x));
+static void *_p_CantellatedCubeTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((CantellatedCube *) x));
 }
-static void *_p_ConeTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((Cone *) x));
+static void *_p_ConeTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((Cone *) x));
 }
-static void *_p_CosineRippleBoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
+static void *_p_CosineRippleBoxTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
 }
-static void *_p_CosineRippleGaussTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
+static void *_p_CosineRippleGaussTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
 }
-static void *_p_CosineRippleLorentzTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
+static void *_p_CosineRippleLorentzTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
 }
-static void *_p_CylinderTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((Cylinder *) x));
+static void *_p_CylinderTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((Cylinder *) x));
 }
-static void *_p_DodecahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Dodecahedron *) x));
+static void *_p_DodecahedronTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Dodecahedron *) x));
 }
-static void *_p_EllipsoidalCylinderTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((EllipsoidalCylinder *) x));
+static void *_p_EllipsoidalCylinderTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((EllipsoidalCylinder *) x));
 }
-static void *_p_FuzzySphereTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((FuzzySphere *) x));
+static void *_p_FuzzySphereTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((FuzzySphere *) x));
 }
-static void *_p_GaussSphereTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((GaussSphere *) x));
+static void *_p_GaussSphereTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((GaussSphere *) x));
 }
-static void *_p_HemiEllipsoidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((HemiEllipsoid *) x));
+static void *_p_HemiEllipsoidTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((HemiEllipsoid *) x));
 }
-static void *_p_HorizontalCylinderTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((HorizontalCylinder *) x));
+static void *_p_HorizontalCylinderTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((HorizontalCylinder *) x));
 }
-static void *_p_ICosineRippleTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *) ((ICosineRipple *) x));
+static void *_p_ICosineRippleTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *) ((ICosineRipple *) x));
 }
-static void *_p_IFormfactorPolyhedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((IFormfactorPolyhedron *) x));
+static void *_p_IFormfactorPolyhedronTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((IFormfactorPolyhedron *) x));
 }
-static void *_p_IFormfactorPrismTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
+static void *_p_IFormfactorPrismTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
 }
-static void *_p_IProfileRectangularRippleTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *) ((IProfileRectangularRipple *) x));
+static void *_p_IProfileRectangularRippleTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *) ((IProfileRectangularRipple *) x));
 }
-static void *_p_IProfileRippleTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((IProfileRipple *) x));
+static void *_p_IProfileRippleTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((IProfileRipple *) x));
 }
-static void *_p_ISawtoothRippleTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *) ((ISawtoothRipple *) x));
+static void *_p_ISawtoothRippleTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *) ((ISawtoothRipple *) x));
 }
-static void *_p_IcosahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Icosahedron *) x));
+static void *_p_IcosahedronTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Icosahedron *) x));
 }
-static void *_p_LongBoxGaussTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((LongBoxGauss *) x));
+static void *_p_LongBoxGaussTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((LongBoxGauss *) x));
 }
-static void *_p_LongBoxLorentzTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((LongBoxLorentz *) x));
+static void *_p_LongBoxLorentzTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((LongBoxLorentz *) x));
 }
-static void *_p_PlatonicOctahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
+static void *_p_PlatonicOctahedronTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
 }
-static void *_p_PlatonicTetrahedronTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
+static void *_p_PlatonicTetrahedronTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
 }
-static void *_p_Prism3To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
+static void *_p_Prism3To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
 }
-static void *_p_Prism6To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
+static void *_p_Prism6To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
 }
-static void *_p_Pyramid2To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Pyramid2 *) x));
+static void *_p_Pyramid2To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Pyramid2 *) x));
 }
-static void *_p_Pyramid3To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Pyramid3 *) x));
+static void *_p_Pyramid3To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Pyramid3 *) x));
 }
-static void *_p_Pyramid4To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Pyramid4 *) x));
+static void *_p_Pyramid4To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Pyramid4 *) x));
 }
-static void *_p_Pyramid6To_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((Pyramid6 *) x));
+static void *_p_Pyramid6To_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((Pyramid6 *) x));
 }
-static void *_p_SawtoothRippleBoxTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
+static void *_p_SawtoothRippleBoxTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
 }
-static void *_p_SawtoothRippleGaussTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
+static void *_p_SawtoothRippleGaussTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
 }
-static void *_p_SawtoothRippleLorentzTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
+static void *_p_SawtoothRippleLorentzTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
 }
-static void *_p_SphereTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((Sphere *) x));
+static void *_p_SphereTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((Sphere *) x));
 }
-static void *_p_SpheroidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((Spheroid *) x));
+static void *_p_SpheroidTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((Spheroid *) x));
 }
-static void *_p_TruncatedCubeTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *) (IFormfactorPolyhedron *) ((TruncatedCube *) x));
+static void *_p_TruncatedCubeTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *) (IFormfactorPolyhedron *) ((TruncatedCube *) x));
 }
-static void *_p_TruncatedSphereTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((TruncatedSphere *) x));
+static void *_p_TruncatedSphereTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((TruncatedSphere *) x));
 }
-static void *_p_TruncatedSpheroidTo_p_IFormFactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IFormFactor *)  ((TruncatedSpheroid *) x));
+static void *_p_TruncatedSpheroidTo_p_IFormfactor(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IFormfactor *)  ((TruncatedSpheroid *) x));
 }
 static void *_p_Bipyramid4To_p_IFormfactorPolyhedron(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IFormfactorPolyhedron *)  ((Bipyramid4 *) x));
@@ -73673,82 +73673,82 @@ static void *_p_RefractiveMaterialImplTo_p_IMaterialImpl(void *x, int *SWIGUNUSE
     return (void *)((IMaterialImpl *)  ((RefractiveMaterialImpl *) x));
 }
 static void *_p_BarGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
 }
 static void *_p_BarLorentzTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
 }
 static void *_p_BasicLattice2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (Lattice2D *) ((BasicLattice2D *) x));
 }
 static void *_p_Bipyramid4To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Bipyramid4 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Bipyramid4 *) x));
 }
 static void *_p_BoxTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
 }
 static void *_p_CantellatedCubeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x));
 }
 static void *_p_CompoundTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (ISampleNode *)(IParticle *) ((Compound *) x));
 }
 static void *_p_ConeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((Cone *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((Cone *) x));
 }
 static void *_p_CoreAndShellTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (ISampleNode *)(IParticle *) ((CoreAndShell *) x));
 }
 static void *_p_CosineRippleBoxTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
 }
 static void *_p_CosineRippleGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
 }
 static void *_p_CosineRippleLorentzTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
 }
 static void *_p_CrystalTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (ISampleNode *) ((Crystal *) x));
 }
 static void *_p_CylinderTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((Cylinder *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((Cylinder *) x));
 }
 static void *_p_DodecahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Dodecahedron *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Dodecahedron *) x));
 }
 static void *_p_EllipsoidalCylinderTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((EllipsoidalCylinder *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((EllipsoidalCylinder *) x));
 }
 static void *_p_FuzzySphereTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((FuzzySphere *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((FuzzySphere *) x));
 }
 static void *_p_GaussFisherPeakShapeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IPeakShape *) ((GaussFisherPeakShape *) x));
 }
 static void *_p_GaussSphereTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((GaussSphere *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((GaussSphere *) x));
 }
 static void *_p_HemiEllipsoidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((HemiEllipsoid *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((HemiEllipsoid *) x));
 }
 static void *_p_HexagonalLattice2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (Lattice2D *) ((HexagonalLattice2D *) x));
 }
 static void *_p_HorizontalCylinderTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((HorizontalCylinder *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((HorizontalCylinder *) x));
 }
 static void *_p_ICosineRippleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *) ((ICosineRipple *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *) ((ICosineRipple *) x));
 }
-static void *_p_IFormFactorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *) ((IFormFactor *) x));
+static void *_p_IFormfactorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((INode *) (ISampleNode *) ((IFormfactor *) x));
 }
 static void *_p_IFormfactorPolyhedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((IFormfactorPolyhedron *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((IFormfactorPolyhedron *) x));
 }
 static void *_p_IFormfactorPrismTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
 }
 static void *_p_IInterferenceTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *)  ((IInterference *) x));
@@ -73766,10 +73766,10 @@ static void *_p_IProfile2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *)  ((IProfile2D *) x));
 }
 static void *_p_IProfileRectangularRippleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *) ((IProfileRectangularRipple *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *) ((IProfileRectangularRipple *) x));
 }
 static void *_p_IProfileRippleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((IProfileRipple *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((IProfileRipple *) x));
 }
 static void *_p_IRotationTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *)  ((IRotation *) x));
@@ -73778,10 +73778,10 @@ static void *_p_ISampleNodeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *)  ((ISampleNode *) x));
 }
 static void *_p_ISawtoothRippleTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *) ((ISawtoothRipple *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *) ((ISawtoothRipple *) x));
 }
 static void *_p_IcosahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Icosahedron *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Icosahedron *) x));
 }
 static void *_p_IdentityRotationTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IRotation *) ((IdentityRotation *) x));
@@ -73829,10 +73829,10 @@ static void *_p_LayerRoughnessTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)
     return (void *)((INode *) (ISampleNode *) ((LayerRoughness *) x));
 }
 static void *_p_LongBoxGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((LongBoxGauss *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((LongBoxGauss *) x));
 }
 static void *_p_LongBoxLorentzTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((LongBoxLorentz *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((LongBoxLorentz *) x));
 }
 static void *_p_LorentzFisherPeakShapeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IPeakShape *) ((LorentzFisherPeakShape *) x));
@@ -73856,16 +73856,16 @@ static void *_p_ParticleLayoutTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)
     return (void *)((INode *) (ISampleNode *) ((ParticleLayout *) x));
 }
 static void *_p_PlatonicOctahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
 }
 static void *_p_PlatonicTetrahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
 }
 static void *_p_Prism3To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
 }
 static void *_p_Prism6To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
 }
 static void *_p_Profile1DCauchyTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IProfile1D *) ((Profile1DCauchy *) x));
@@ -73901,16 +73901,16 @@ static void *_p_Profile2DVoigtTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)
     return (void *)((INode *) (IProfile2D *) ((Profile2DVoigt *) x));
 }
 static void *_p_Pyramid2To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid2 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid2 *) x));
 }
 static void *_p_Pyramid3To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid3 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid3 *) x));
 }
 static void *_p_Pyramid4To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid4 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid4 *) x));
 }
 static void *_p_Pyramid6To_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid6 *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid6 *) x));
 }
 static void *_p_RotationEulerTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IRotation *) ((RotationEuler *) x));
@@ -73925,31 +73925,31 @@ static void *_p_RotationZTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IRotation *) ((RotationZ *) x));
 }
 static void *_p_SawtoothRippleBoxTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
 }
 static void *_p_SawtoothRippleGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
 }
 static void *_p_SawtoothRippleLorentzTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
 }
 static void *_p_SphereTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((Sphere *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((Sphere *) x));
 }
 static void *_p_SpheroidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((Spheroid *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((Spheroid *) x));
 }
 static void *_p_SquareLattice2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (Lattice2D *) ((SquareLattice2D *) x));
 }
 static void *_p_TruncatedCubeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x));
 }
 static void *_p_TruncatedSphereTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((TruncatedSphere *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((TruncatedSphere *) x));
 }
 static void *_p_TruncatedSpheroidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (ISampleNode *)(IFormFactor *) ((TruncatedSpheroid *) x));
+    return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((TruncatedSpheroid *) x));
 }
 static void *_p_CompoundTo_p_IParticle(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IParticle *)  ((Compound *) x));
@@ -74069,88 +74069,88 @@ static void *_p_RotationZTo_p_IRotation(void *x, int *SWIGUNUSEDPARM(newmemory))
     return (void *)((IRotation *)  ((RotationZ *) x));
 }
 static void *_p_BarGaussTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
 }
 static void *_p_BarLorentzTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
 }
 static void *_p_Bipyramid4To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Bipyramid4 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Bipyramid4 *) x));
 }
 static void *_p_BoxTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Box *) x));
 }
 static void *_p_CantellatedCubeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((CantellatedCube *) x));
 }
 static void *_p_CompoundTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISampleNode *) (IParticle *) ((Compound *) x));
 }
 static void *_p_ConeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((Cone *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((Cone *) x));
 }
 static void *_p_CoreAndShellTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISampleNode *) (IParticle *) ((CoreAndShell *) x));
 }
 static void *_p_CosineRippleBoxTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleBox *) x));
 }
 static void *_p_CosineRippleGaussTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleGauss *) x));
 }
 static void *_p_CosineRippleLorentzTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(ICosineRipple *) ((CosineRippleLorentz *) x));
 }
 static void *_p_CrystalTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISampleNode *)  ((Crystal *) x));
 }
 static void *_p_CylinderTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((Cylinder *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((Cylinder *) x));
 }
 static void *_p_DodecahedronTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Dodecahedron *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Dodecahedron *) x));
 }
 static void *_p_EllipsoidalCylinderTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((EllipsoidalCylinder *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((EllipsoidalCylinder *) x));
 }
 static void *_p_FuzzySphereTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((FuzzySphere *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((FuzzySphere *) x));
 }
 static void *_p_GaussSphereTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((GaussSphere *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((GaussSphere *) x));
 }
 static void *_p_HemiEllipsoidTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((HemiEllipsoid *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((HemiEllipsoid *) x));
 }
 static void *_p_HorizontalCylinderTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((HorizontalCylinder *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((HorizontalCylinder *) x));
 }
 static void *_p_ICosineRippleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *) ((ICosineRipple *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *) ((ICosineRipple *) x));
 }
-static void *_p_IFormFactorTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *)  ((IFormFactor *) x));
+static void *_p_IFormfactorTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((ISampleNode *)  ((IFormfactor *) x));
 }
 static void *_p_IFormfactorPolyhedronTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((IFormfactorPolyhedron *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((IFormfactorPolyhedron *) x));
 }
 static void *_p_IFormfactorPrismTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((IFormfactorPrism *) x));
 }
 static void *_p_IParticleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISampleNode *)  ((IParticle *) x));
 }
 static void *_p_IProfileRectangularRippleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *) ((IProfileRectangularRipple *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *) ((IProfileRectangularRipple *) x));
 }
 static void *_p_IProfileRippleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((IProfileRipple *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((IProfileRipple *) x));
 }
 static void *_p_ISawtoothRippleTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *) ((ISawtoothRipple *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *) ((ISawtoothRipple *) x));
 }
 static void *_p_IcosahedronTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Icosahedron *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Icosahedron *) x));
 }
 static void *_p_LayerTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISampleNode *)  ((Layer *) x));
@@ -74159,10 +74159,10 @@ static void *_p_LayerRoughnessTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newm
     return (void *)((ISampleNode *)  ((LayerRoughness *) x));
 }
 static void *_p_LongBoxGaussTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((LongBoxGauss *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((LongBoxGauss *) x));
 }
 static void *_p_LongBoxLorentzTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((LongBoxLorentz *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((LongBoxLorentz *) x));
 }
 static void *_p_MesocrystalTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISampleNode *) (IParticle *) ((Mesocrystal *) x));
@@ -74177,52 +74177,52 @@ static void *_p_ParticleLayoutTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newm
     return (void *)((ISampleNode *)  ((ParticleLayout *) x));
 }
 static void *_p_PlatonicOctahedronTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((PlatonicOctahedron *) x));
 }
 static void *_p_PlatonicTetrahedronTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((PlatonicTetrahedron *) x));
 }
 static void *_p_Prism3To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism3 *) x));
 }
 static void *_p_Prism6To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *)(IFormfactorPrism *) ((Prism6 *) x));
 }
 static void *_p_Pyramid2To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid2 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid2 *) x));
 }
 static void *_p_Pyramid3To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid3 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid3 *) x));
 }
 static void *_p_Pyramid4To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid4 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid4 *) x));
 }
 static void *_p_Pyramid6To_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((Pyramid6 *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((Pyramid6 *) x));
 }
 static void *_p_SawtoothRippleBoxTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x));
 }
 static void *_p_SawtoothRippleGaussTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleGauss *) x));
 }
 static void *_p_SawtoothRippleLorentzTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleLorentz *) x));
 }
 static void *_p_SphereTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((Sphere *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((Sphere *) x));
 }
 static void *_p_SpheroidTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((Spheroid *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((Spheroid *) x));
 }
 static void *_p_TruncatedCubeTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x));
+    return (void *)((ISampleNode *) (IFormfactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x));
 }
 static void *_p_TruncatedSphereTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((TruncatedSphere *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((TruncatedSphere *) x));
 }
 static void *_p_TruncatedSpheroidTo_p_ISampleNode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ISampleNode *) (IFormFactor *) ((TruncatedSpheroid *) x));
+    return (void *)((ISampleNode *) (IFormfactor *) ((TruncatedSpheroid *) x));
 }
 static void *_p_SawtoothRippleBoxTo_p_ISawtoothRipple(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ISawtoothRipple *)  ((SawtoothRippleBox *) x));
@@ -74276,7 +74276,7 @@ static swig_type_info _swigt__p_HexagonalLattice2D = {"_p_HexagonalLattice2D", "
 static swig_type_info _swigt__p_HorizontalCylinder = {"_p_HorizontalCylinder", "HorizontalCylinder *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ICloneable = {"_p_ICloneable", "ICloneable *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ICosineRipple = {"_p_ICosineRipple", "ICosineRipple *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_IFormFactor = {"_p_IFormFactor", "IFormFactor *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_IFormfactor = {"_p_IFormfactor", "IFormfactor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IFormfactorPolyhedron = {"_p_IFormfactorPolyhedron", "IFormfactorPolyhedron *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IFormfactorPrism = {"_p_IFormfactorPrism", "IFormfactorPrism *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IInterference = {"_p_IInterference", "IInterference *", 0, 0, (void*)0, 0};
@@ -74437,7 +74437,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_HorizontalCylinder,
   &_swigt__p_ICloneable,
   &_swigt__p_ICosineRipple,
-  &_swigt__p_IFormFactor,
+  &_swigt__p_IFormfactor,
   &_swigt__p_IFormfactorPolyhedron,
   &_swigt__p_IFormfactorPrism,
   &_swigt__p_IInterference,
@@ -74596,14 +74596,14 @@ static swig_cast_info _swigc__p_GaussSphere[] = {  {&_swigt__p_GaussSphere, 0, 0
 static swig_cast_info _swigc__p_HemiEllipsoid[] = {  {&_swigt__p_HemiEllipsoid, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_HexagonalLattice2D[] = {  {&_swigt__p_HexagonalLattice2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_HorizontalCylinder[] = {  {&_swigt__p_HorizontalCylinder, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ErfRoughness, _p_ErfRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0},  {&_swigt__p_RoughnessModel, _p_RoughnessModelTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_TanhRoughness, _p_TanhRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ErfRoughness, _p_ErfRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0},  {&_swigt__p_RoughnessModel, _p_RoughnessModelTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_TanhRoughness, _p_TanhRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ICosineRipple[] = {  {&_swigt__p_ICosineRipple, 0, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICosineRipple, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICosineRipple, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICosineRipple, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IFormFactor[] = {  {&_swigt__p_IFormFactor, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_IFormFactor, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IFormFactor, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormFactor, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormFactor, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormFactor, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_IFormFactor, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_IFormFactor, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_IFormFactor, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_IFormFactor, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_IFormFactor, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormFactor, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_IFormFactor, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_IFormFactor, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_IFormFactor, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_IFormFactor, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_IFormFactor, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormFactor, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_IFormFactor, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormFactor, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormFactor, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormFactor, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormFactor, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormFactor, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_IFormFactor, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_IFormFactor, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormFactor, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormFactor, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormFactor, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormFactor, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormFactor, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormFactor, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormFactor, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormFactor, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_IFormFactor, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_IFormFactor, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_IFormFactor, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_IFormFactor, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_IFormFactor, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormFactor, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_IFormFactor, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_IFormFactor, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_IFormfactor[] = {  {&_swigt__p_IFormfactor, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactor, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormfactor, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactor, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_IFormfactor, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_IFormfactor, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_IFormfactor, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_IFormfactor, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_IFormfactor, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_IFormfactor, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactor, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactor, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactor, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_IFormfactor, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_IFormfactor, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactor, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_IFormfactor, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFormfactorPolyhedron[] = {  {&_swigt__p_IFormfactorPolyhedron, 0, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactorPolyhedron, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFormfactorPrism[] = {  {&_swigt__p_IFormfactorPrism, 0, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPrism, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPrism, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPrism, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IInterference[] = {  {&_swigt__p_IInterference, 0, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_IInterference, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IMaterialImpl[] = {  {&_swigt__p_IMaterialImpl, 0, 0, 0},  {&_swigt__p_MaterialBySLDImpl, _p_MaterialBySLDImplTo_p_IMaterialImpl, 0, 0},  {&_swigt__p_RefractiveMaterialImpl, _p_RefractiveMaterialImplTo_p_IMaterialImpl, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0},  {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0},  {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IParticle[] = {  {&_swigt__p_IParticle, 0, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_IParticle, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_IParticle, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_IParticle, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IPeakShape[] = {  {&_swigt__p_IPeakShape, 0, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_IPeakShape, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IProfile1D[] = {  {&_swigt__p_IProfile1D, 0, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_IProfile1D, 0, 0},{0, 0, 0, 0}};
@@ -74611,7 +74611,7 @@ static swig_cast_info _swigc__p_IProfile2D[] = {  {&_swigt__p_IProfile2D, 0, 0,
 static swig_cast_info _swigc__p_IProfileRectangularRipple[] = {  {&_swigt__p_IProfileRectangularRipple, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_IProfileRectangularRipple, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IProfileRectangularRipple, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IProfileRipple[] = {  {&_swigt__p_IProfileRipple, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_IProfileRipple, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IProfileRipple, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_IProfileRipple, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_IProfileRipple, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_IProfileRipple, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IProfileRipple, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IProfileRipple, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IProfileRipple, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_IProfileRipple, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_IProfileRipple, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_IProfileRipple, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IRotation[] = {  {&_swigt__p_IRotation, 0, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_IRotation, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_IRotation, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_IRotation, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_IRotation, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_IRotation, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_ISampleNode[] = {  {&_swigt__p_ISampleNode, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ISampleNode, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_ISampleNode, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ISampleNode, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_ISampleNode, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_ISampleNode, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ISampleNode, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ISampleNode, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ISampleNode, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_ISampleNode, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ISampleNode, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ISampleNode, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ISampleNode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ISampleNode, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ISampleNode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ISampleNode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ISampleNode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISampleNode, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ISampleNode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISampleNode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ISampleNode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISampleNode, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_ISampleNode, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ISampleNode, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ISampleNode, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_ISampleNode, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ISampleNode, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ISampleNode, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ISampleNode[] = {  {&_swigt__p_ISampleNode, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ISampleNode, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_ISampleNode, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ISampleNode, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_ISampleNode, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_ISampleNode, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ISampleNode, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ISampleNode, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ISampleNode, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_ISampleNode, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ISampleNode, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ISampleNode, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ISampleNode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ISampleNode, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ISampleNode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ISampleNode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ISampleNode, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ISampleNode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ISampleNode, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ISampleNode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ISampleNode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ISampleNode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ISampleNode, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ISampleNode, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_ISampleNode, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ISampleNode, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ISampleNode, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ISampleNode, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ISampleNode, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ISampleNode, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_ISampleNode, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ISampleNode, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ISampleNode, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ISampleNode, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ISawtoothRipple[] = {  {&_swigt__p_ISawtoothRipple, 0, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ISawtoothRipple, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ISawtoothRipple, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ISawtoothRipple, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ISelectionRule[] = {  {&_swigt__p_ISelectionRule, 0, 0, 0},  {&_swigt__p_SimpleSelectionRule, _p_SimpleSelectionRuleTo_p_ISelectionRule, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Icosahedron[] = {  {&_swigt__p_Icosahedron, 0, 0, 0},{0, 0, 0, 0}};
@@ -74759,7 +74759,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_HorizontalCylinder,
   _swigc__p_ICloneable,
   _swigc__p_ICosineRipple,
-  _swigc__p_IFormFactor,
+  _swigc__p_IFormfactor,
   _swigc__p_IFormfactorPolyhedron,
   _swigc__p_IFormfactorPrism,
   _swigc__p_IInterference,
diff --git a/auto/Wrap/libBornAgainSample_wrap.h b/auto/Wrap/libBornAgainSample_wrap.h
index 1004b9f2c35b8fe1d71184329636a2abb23ff1d9..d3093c76017770986c57575c8fc9239ecce88a4e 100644
--- a/auto/Wrap/libBornAgainSample_wrap.h
+++ b/auto/Wrap/libBornAgainSample_wrap.h
@@ -61,13 +61,13 @@ private:
 };
 
 
-class SwigDirector_IFormFactor : public IFormFactor, public Swig::Director {
+class SwigDirector_IFormfactor : public IFormfactor, public Swig::Director {
 
 public:
-    SwigDirector_IFormFactor(PyObject *self);
-    SwigDirector_IFormFactor(PyObject *self,std::vector< double,std::allocator< double > > const &PValues);
-    virtual ~SwigDirector_IFormFactor();
-    virtual IFormFactor *clone() const;
+    SwigDirector_IFormfactor(PyObject *self);
+    SwigDirector_IFormfactor(PyObject *self,std::vector< double,std::allocator< double > > const &PValues);
+    virtual ~SwigDirector_IFormfactor();
+    virtual IFormfactor *clone() const;
     virtual void transferToCPP();
     virtual std::string className() const;
     virtual std::vector< INode const *,std::allocator< INode const * > > nodeChildren() const;
@@ -100,7 +100,7 @@ private:
         swig::SwigVar_PyObject name = SWIG_Python_str_FromChar(method_name);
         method = PyObject_GetAttr(swig_get_self(), name);
         if (!method) {
-          std::string msg = "Method in class IFormFactor doesn't exist, undefined ";
+          std::string msg = "Method in class IFormfactor doesn't exist, undefined ";
           msg += method_name;
           Swig::DirectorMethodException::raise(msg.c_str());
         }