diff --git a/auto/Doc/man/bornagain.1 b/auto/Doc/man/bornagain.1
index 1abbe2bfc4582f0cc481eb032118e34b8b5eff1e..3a43708bef531db48ce991af8c1a9a5bb66b0865 100644
--- a/auto/Doc/man/bornagain.1
+++ b/auto/Doc/man/bornagain.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BORNAGAIN 1"
-.TH BORNAGAIN 1 "2020-11-23" "perl v5.32.1" "BornAgain manual"
+.TH BORNAGAIN 1 "2021-03-09" "perl v5.32.1" "BornAgain manual"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i
index 35fafe2a7ee7665b27a9f27dd8347104514ed1f0..bbd788741c331fc1bbfe8e373592579e7329ecb1 100644
--- a/auto/Wrap/doxygenCore.i
+++ b/auto/Wrap/doxygenCore.i
@@ -275,9 +275,6 @@ C++ includes: ConstantBackground.h
 %feature("docstring")  ConstantBackground::backgroundValue "double ConstantBackground::backgroundValue() const
 ";
 
-%feature("docstring")  ConstantBackground::accept "void ConstantBackground::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  ConstantBackground::addBackground "double ConstantBackground::addBackground(double intensity) const override
 ";
 
@@ -311,9 +308,6 @@ C++ includes: DepthProbeComputation.h
 %feature("docstring")  DepthProbeSimulation::~DepthProbeSimulation "DepthProbeSimulation::~DepthProbeSimulation() override
 ";
 
-%feature("docstring")  DepthProbeSimulation::accept "void DepthProbeSimulation::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  DepthProbeSimulation::result "SimulationResult DepthProbeSimulation::result() const override
 
 Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays 
@@ -697,9 +691,6 @@ C++ includes: GISASSimulation.h
 %feature("docstring")  GISASSimulation::~GISASSimulation "GISASSimulation::~GISASSimulation() override=default
 ";
 
-%feature("docstring")  GISASSimulation::accept "void GISASSimulation::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  GISASSimulation::result "SimulationResult GISASSimulation::result() const override
 
 Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays 
@@ -1351,9 +1342,6 @@ C++ includes: OffSpecularSimulation.h
 %feature("docstring")  OffSpecularSimulation::~OffSpecularSimulation "OffSpecularSimulation::~OffSpecularSimulation() override=default
 ";
 
-%feature("docstring")  OffSpecularSimulation::accept "void OffSpecularSimulation::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  OffSpecularSimulation::result "SimulationResult OffSpecularSimulation::result() const override
 
 Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays 
@@ -1486,9 +1474,6 @@ C++ includes: PoissonNoiseBackground.h
 %feature("docstring")  PoissonNoiseBackground::clone "PoissonNoiseBackground * PoissonNoiseBackground::clone() const override
 ";
 
-%feature("docstring")  PoissonNoiseBackground::accept "void PoissonNoiseBackground::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  PoissonNoiseBackground::addBackground "double PoissonNoiseBackground::addBackground(double intensity) const override
 ";
 
@@ -1933,9 +1918,6 @@ C++ includes: SpecularSimulation.h
 Put into a clean state for running a simulation. 
 ";
 
-%feature("docstring")  SpecularSimulation::accept "void SpecularSimulation::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  SpecularSimulation::result "SimulationResult SpecularSimulation::result() const override
 
 Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays. If simulation was not run, returns an array of proper size filled with zeros. 
diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i
index 4f0cee0a57f588e2e952b77eecada15efb3c9c2c..a188dc015d288258df8e1600259bc38143a8eb4d 100644
--- a/auto/Wrap/doxygenDevice.i
+++ b/auto/Wrap/doxygenDevice.i
@@ -75,9 +75,6 @@ C++ includes: Beam.h
 %feature("docstring")  Beam::clone "Beam * Beam::clone() const
 ";
 
-%feature("docstring")  Beam::accept "void Beam::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Beam::getChildren "std::vector< const INode * > Beam::getChildren() const override
 ";
 
@@ -182,9 +179,6 @@ Constructor taking a 2 dimensional resolution function as argument.
 Convolve given intensities with the encapsulated resolution. 
 ";
 
-%feature("docstring")  ConvolutionDetectorResolution::accept "void ConvolutionDetectorResolution::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  ConvolutionDetectorResolution::getResolutionFunction2D "const IResolutionFunction2D * ConvolutionDetectorResolution::getResolutionFunction2D() const
 ";
 
@@ -537,9 +531,6 @@ C++ includes: FootprintGauss.h
 %feature("docstring")  FootprintGauss::FootprintGauss "FootprintGauss::FootprintGauss(double width_ratio)
 ";
 
-%feature("docstring")  FootprintGauss::accept "void FootprintGauss::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FootprintGauss::clone "FootprintGauss * FootprintGauss::clone() const override
 ";
 
@@ -569,9 +560,6 @@ C++ includes: FootprintSquare.h
 %feature("docstring")  FootprintSquare::FootprintSquare "FootprintSquare::FootprintSquare(double width_ratio)
 ";
 
-%feature("docstring")  FootprintSquare::accept "void FootprintSquare::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FootprintSquare::clone "FootprintSquare * FootprintSquare::clone() const override
 ";
 
@@ -1546,9 +1534,6 @@ C++ includes: Instrument.h
 %feature("docstring")  Instrument::~Instrument "Instrument::~Instrument() override
 ";
 
-%feature("docstring")  Instrument::accept "void Instrument::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Instrument::beam "Beam& Instrument::beam()
 ";
 
@@ -2179,9 +2164,6 @@ will always return positive value
 %feature("docstring")  PolFilter::totalTransmission "double PolFilter::totalTransmission() const
 ";
 
-%feature("docstring")  PolFilter::accept "void PolFilter::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classPolygon.xml
 %feature("docstring") Polygon "
@@ -2353,9 +2335,6 @@ Height of the detector in mm along y-direction
 %feature("docstring")  RectangularDetector::clone "RectangularDetector * RectangularDetector::clone() const override
 ";
 
-%feature("docstring")  RectangularDetector::accept "void RectangularDetector::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  RectangularDetector::~RectangularDetector "RectangularDetector::~RectangularDetector() override
 ";
 
@@ -2441,9 +2420,6 @@ C++ includes: ResolutionFunction2DGaussian.h
 %feature("docstring")  ResolutionFunction2DGaussian::clone "ResolutionFunction2DGaussian* ResolutionFunction2DGaussian::clone() const override
 ";
 
-%feature("docstring")  ResolutionFunction2DGaussian::accept "void ResolutionFunction2DGaussian::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  ResolutionFunction2DGaussian::evaluateCDF "double ResolutionFunction2DGaussian::evaluateCDF(double x, double y) const override
 ";
 
@@ -2562,9 +2538,6 @@ C++ includes: SpecularDetector1D.h
 %feature("docstring")  SpecularDetector1D::clone "SpecularDetector1D * SpecularDetector1D::clone() const override
 ";
 
-%feature("docstring")  SpecularDetector1D::accept "void SpecularDetector1D::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  SpecularDetector1D::detectorMask "const DetectorMask* SpecularDetector1D::detectorMask() const override
 
 Returns detector masks container. 
@@ -2671,9 +2644,6 @@ central alpha angle
 %feature("docstring")  SphericalDetector::clone "SphericalDetector * SphericalDetector::clone() const override
 ";
 
-%feature("docstring")  SphericalDetector::accept "void SphericalDetector::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  SphericalDetector::~SphericalDetector "SphericalDetector::~SphericalDetector() override=default
 ";
 
diff --git a/auto/Wrap/doxygenParam.i b/auto/Wrap/doxygenParam.i
index 715c9e03f7158ee21e1e0872441a10b29b69d6b3..cbe6eeab1d0da1a390f13d8a2395f12a95058dcc 100644
--- a/auto/Wrap/doxygenParam.i
+++ b/auto/Wrap/doxygenParam.i
@@ -47,11 +47,6 @@ generate list of sample values
 Returns true if the distribution is in the limit case of a Dirac delta distribution. 
 ";
 
-%feature("docstring")  DistributionCosine::accept "void DistributionCosine::accept(INodeVisitor *visitor) const override
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  DistributionCosine::pythonConstructor "std::string DistributionCosine::pythonConstructor(const std::string &units) const override
 
 Prints distribution with constructor parameters in given units. ba.DistributionGaussian(2.0*deg, 0.02*deg) 
@@ -107,11 +102,6 @@ Returns list of sample values.
 Returns true if the distribution is in the limit case of a Dirac delta distribution. 
 ";
 
-%feature("docstring")  DistributionGate::accept "void DistributionGate::accept(INodeVisitor *visitor) const override
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  DistributionGate::pythonConstructor "std::string DistributionGate::pythonConstructor(const std::string &units) const override
 
 Prints distribution with constructor parameters in given units. ba.DistributionGaussian(2.0*deg, 0.02*deg) 
@@ -164,11 +154,6 @@ generate list of sample values
 Returns true if the distribution is in the limit case of a Dirac delta distribution. 
 ";
 
-%feature("docstring")  DistributionGaussian::accept "void DistributionGaussian::accept(INodeVisitor *visitor) const override
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  DistributionGaussian::pythonConstructor "std::string DistributionGaussian::pythonConstructor(const std::string &units) const override
 
 Prints distribution with constructor parameters in given units. ba.DistributionGaussian(2.0*deg, 0.02*deg) 
@@ -265,11 +250,6 @@ generate list of sample values
 Returns true if the distribution is in the limit case of a Dirac delta distribution. 
 ";
 
-%feature("docstring")  DistributionLogNormal::accept "void DistributionLogNormal::accept(INodeVisitor *visitor) const override
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  DistributionLogNormal::pythonConstructor "std::string DistributionLogNormal::pythonConstructor(const std::string &units) const override
 
 Prints distribution with constructor parameters in given units. ba.DistributionGaussian(2.0*deg, 0.02*deg) 
@@ -322,11 +302,6 @@ generate list of sample values
 Returns true if the distribution is in the limit case of a Dirac delta distribution. 
 ";
 
-%feature("docstring")  DistributionLorentz::accept "void DistributionLorentz::accept(INodeVisitor *visitor) const override
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  DistributionLorentz::pythonConstructor "std::string DistributionLorentz::pythonConstructor(const std::string &units) const override
 
 Prints distribution with constructor parameters in given units. ba.DistributionGaussian(2.0*deg, 0.02*deg) 
@@ -385,11 +360,6 @@ generate list of sample values
 Returns true if the distribution is in the limit case of a Dirac delta distribution. 
 ";
 
-%feature("docstring")  DistributionTrapezoid::accept "void DistributionTrapezoid::accept(INodeVisitor *visitor) const override
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  DistributionTrapezoid::pythonConstructor "std::string DistributionTrapezoid::pythonConstructor(const std::string &units) const override
 
 Prints distribution with constructor parameters in given units. ba.DistributionGaussian(2.0*deg, 0.02*deg) 
@@ -468,11 +438,6 @@ C++ includes: INode.h
 %feature("docstring")  INode::~INode "virtual INode::~INode()=default
 ";
 
-%feature("docstring")  INode::accept "virtual void INode::accept(INodeVisitor *visitor) const =0
-
-Calls the  INodeVisitor's visit method. 
-";
-
 %feature("docstring")  INode::getChildren "std::vector< const INode * > INode::getChildren() const
 
 Returns a vector of children. 
@@ -487,384 +452,6 @@ Returns a vector of all descendants.
 ";
 
 
-// File: classINodeVisitor.xml
-%feature("docstring") INodeVisitor "
-
-Visitor interface to visit ISampleNode objects.
-
-From visitor pattern to achieve double dispatch.
-
-C++ includes: INodeVisitor.h
-";
-
-%feature("docstring")  INodeVisitor::INodeVisitor "INodeVisitor::INodeVisitor()
-";
-
-%feature("docstring")  INodeVisitor::~INodeVisitor "virtual INodeVisitor::~INodeVisitor()=default
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const BasicLattice2D *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Beam *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ConstantBackground *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ConvolutionDetectorResolution *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Crystal *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionCosine *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionGate *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionGaussian *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionLogNormal *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionLorentz *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const DistributionTrapezoid *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DCauchy *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DTriangle *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction1DVoigt *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DCauchy *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDecayFunction2DVoigt *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DCauchy *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DCosine *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DGate *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DTriangle *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution1DVoigt *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DCauchy *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DCone *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DGate *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FTDistribution2DVoigt *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FootprintGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FootprintSquare *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorAnisoPyramid *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorBarGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorBarLorentz *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorBox *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCantellatedCube *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCone *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCone6 *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCoreShell *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCosineRippleBox *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCosineRippleGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCosineRippleLorentz *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCrystal *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCuboctahedron *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorCylinder *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorMaterial *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorPositionFactor *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDecoratorRotation *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorDodecahedron *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorEllipsoidalCylinder *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorFullSphere *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorFullSpheroid *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorGaussSphere *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorHemiEllipsoid *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorHollowSphere *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorIcosahedron *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorLongBoxGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorLongBoxLorentz *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorPrism3 *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorPrism6 *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorPyramid *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorSawtoothRippleBox *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorSawtoothRippleGauss *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorSawtoothRippleLorentz *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorSphereGaussianRadius *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorSphereLogNormalRadius *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorTetrahedron *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorTruncatedCube *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorTruncatedSphere *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorTruncatedSpheroid *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const FormFactorWeighted *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const GISASSimulation *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const HexagonalLattice2D *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IBornFF *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IClusteredParticles *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactor *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IFormFactorDecorator *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IInterference *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const INode *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IParticle *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IPeakShape *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IRotation *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ISampleNode *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IdentityRotation *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Instrument *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Interference1DLattice *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Interference2DLattice *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Interference2DParaCrystal *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Interference2DSuperLattice *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Interference3DLattice *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFinite2DLattice *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceFinite3DLattice *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceHardDisk *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceNone *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceRadialParaCrystal *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceTwin *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Layer *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const LayerInterface *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const LayerRoughness *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const MesoCrystal *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const MultiLayer *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const OffSpecularSimulation *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Particle *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleComposition *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleCoreShell *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ParticleLayout *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const PoissonNoiseBackground *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RectangularDetector *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const ResolutionFunction2DGaussian *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationEuler *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationX *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationY *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const RotationZ *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SpecularDetector1D *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SpecularSimulation *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SphericalDetector *)
-";
-
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const SquareLattice2D *)
-";
-
-%feature("docstring")  INodeVisitor::depth "int INodeVisitor::depth() const
-
-Returns depth of the visitor in the composite hierarchy. 
-";
-
-%feature("docstring")  INodeVisitor::setDepth "void INodeVisitor::setDepth(int depth)
-
-Sets depth of the visitor in the composite hierarchy. 
-";
-
-
 // File: classIRangedDistribution.xml
 %feature("docstring") IRangedDistribution "
 
@@ -1229,9 +816,6 @@ Returns distribution name for python-formatted text.
 ";
 
 
-// File: INodeVisitor_8h.xml
-
-
 // File: NodeUtils_8h.xml
 
 
diff --git a/auto/Wrap/doxygenSample.i b/auto/Wrap/doxygenSample.i
index a9e371fbb27869e19814d04a65f816b4752cd9b3..169b9f5bdac1407e97a0811cafbba01b6bff07de 100644
--- a/auto/Wrap/doxygenSample.i
+++ b/auto/Wrap/doxygenSample.i
@@ -118,9 +118,6 @@ C++ includes: Lattice2D.h
 %feature("docstring")  BasicLattice2D::clone "BasicLattice2D * BasicLattice2D::clone() const override
 ";
 
-%feature("docstring")  BasicLattice2D::accept "void BasicLattice2D::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  BasicLattice2D::length1 "double BasicLattice2D::length1() const override
 ";
 
@@ -172,9 +169,6 @@ C++ includes: Crystal.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Crystal::accept "void Crystal::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Crystal::createTotalFormFactor "IFormFactor * Crystal::createTotalFormFactor(const IFormFactor &meso_crystal_form_factor, const IRotation *rotation, const R3 &translation) const
 ";
 
@@ -313,9 +307,6 @@ C++ includes: FormFactorAnisoPyramid.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorAnisoPyramid::accept "void FormFactorAnisoPyramid::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorAnisoPyramid::getLength "double FormFactorAnisoPyramid::getLength() const
 ";
 
@@ -351,9 +342,6 @@ C++ includes: FormFactorBar.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorBarGauss::accept "void FormFactorBarGauss::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorBarLorentz.xml
 %feature("docstring") FormFactorBarLorentz "
@@ -377,9 +365,6 @@ C++ includes: FormFactorBar.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorBarLorentz::accept "void FormFactorBarLorentz::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorBox.xml
 %feature("docstring") FormFactorBox "
@@ -403,9 +388,6 @@ C++ includes: FormFactorBox.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorBox::accept "void FormFactorBox::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorBox::getLength "double FormFactorBox::getLength() const
 ";
 
@@ -450,9 +432,6 @@ C++ includes: FormFactorCantellatedCube.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCantellatedCube::accept "void FormFactorCantellatedCube::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCantellatedCube::getLength "double FormFactorCantellatedCube::getLength() const
 ";
 
@@ -494,9 +473,6 @@ C++ includes: FormFactorCone.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCone::accept "void FormFactorCone::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCone::getHeight "double FormFactorCone::getHeight() const
 ";
 
@@ -539,9 +515,6 @@ C++ includes: FormFactorCone6.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCone6::accept "void FormFactorCone6::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCone6::getBaseEdge "double FormFactorCone6::getBaseEdge() const
 ";
 
@@ -576,9 +549,6 @@ C++ includes: FormFactorCoreShell.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCoreShell::accept "void FormFactorCoreShell::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCoreShell::radialExtension "double FormFactorCoreShell::radialExtension() const override
 
 Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations 
@@ -632,9 +602,6 @@ C++ includes: FormFactorCosineRipple.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCosineRippleBox::accept "void FormFactorCosineRippleBox::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorCosineRippleGauss.xml
 %feature("docstring") FormFactorCosineRippleGauss "
@@ -658,9 +625,6 @@ C++ includes: FormFactorCosineRipple.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCosineRippleGauss::accept "void FormFactorCosineRippleGauss::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorCosineRippleLorentz.xml
 %feature("docstring") FormFactorCosineRippleLorentz "
@@ -684,9 +648,6 @@ C++ includes: FormFactorCosineRipple.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCosineRippleLorentz::accept "void FormFactorCosineRippleLorentz::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorCrystal.xml
 %feature("docstring") FormFactorCrystal "
@@ -710,9 +671,6 @@ C++ includes: FormFactorCrystal.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCrystal::accept "void FormFactorCrystal::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCrystal::setAmbientMaterial "void FormFactorCrystal::setAmbientMaterial(const Material &material) override
 
 Passes the material in which this particle is embedded. 
@@ -771,9 +729,6 @@ C++ includes: FormFactorCuboctahedron.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCuboctahedron::accept "void FormFactorCuboctahedron::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCuboctahedron::getLength "double FormFactorCuboctahedron::getLength() const
 ";
 
@@ -809,9 +764,6 @@ C++ includes: FormFactorCylinder.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorCylinder::accept "void FormFactorCylinder::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorCylinder::getHeight "double FormFactorCylinder::getHeight() const
 ";
 
@@ -851,9 +803,6 @@ C++ includes: FormFactorDecoratorMaterial.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorDecoratorMaterial::accept "void FormFactorDecoratorMaterial::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorDecoratorMaterial::setMaterial "void FormFactorDecoratorMaterial::setMaterial(const Material &material)
 
 Sets the material of the scatterer. 
@@ -894,9 +843,6 @@ C++ includes: FormFactorDecoratorPositionFactor.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorDecoratorPositionFactor::accept "void FormFactorDecoratorPositionFactor::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorDecoratorPositionFactor::bottomZ "double FormFactorDecoratorPositionFactor::bottomZ(const IRotation &rotation) const override
 
 Returns the z-coordinate of the lowest point in this shape after a given rotation. 
@@ -939,9 +885,6 @@ Constructor, setting form factor and rotation.
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorDecoratorRotation::accept "void FormFactorDecoratorRotation::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorDecoratorRotation::bottomZ "double FormFactorDecoratorRotation::bottomZ(const IRotation &rotation) const override
 
 Returns the z-coordinate of the lowest point in this shape after a given rotation. 
@@ -985,9 +928,6 @@ C++ includes: FormFactorDodecahedron.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorDodecahedron::accept "void FormFactorDodecahedron::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorDodecahedron::getEdge "double FormFactorDodecahedron::getEdge() const
 ";
 
@@ -1014,9 +954,6 @@ C++ includes: FormFactorEllipsoidalCylinder.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorEllipsoidalCylinder::accept "void FormFactorEllipsoidalCylinder::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorEllipsoidalCylinder::getRadiusX "double FormFactorEllipsoidalCylinder::getRadiusX() const
 ";
 
@@ -1059,9 +996,6 @@ C++ includes: FormFactorFullSphere.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorFullSphere::accept "void FormFactorFullSphere::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorFullSphere::getRadius "double FormFactorFullSphere::getRadius() const
 ";
 
@@ -1108,9 +1042,6 @@ C++ includes: FormFactorFullSpheroid.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorFullSpheroid::accept "void FormFactorFullSpheroid::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorFullSpheroid::getHeight "double FormFactorFullSpheroid::getHeight() const
 ";
 
@@ -1150,9 +1081,6 @@ C++ includes: FormFactorGauss.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorGaussSphere::accept "void FormFactorGaussSphere::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorGaussSphere::getMeanRadius "double FormFactorGaussSphere::getMeanRadius() const
 ";
 
@@ -1192,9 +1120,6 @@ C++ includes: FormFactorHemiEllipsoid.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorHemiEllipsoid::accept "void FormFactorHemiEllipsoid::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorHemiEllipsoid::getHeight "double FormFactorHemiEllipsoid::getHeight() const
 ";
 
@@ -1237,9 +1162,6 @@ C++ includes: FormFactorHollowSphere.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorHollowSphere::accept "void FormFactorHollowSphere::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorHollowSphere::radialExtension "double FormFactorHollowSphere::radialExtension() const override
 
 Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations 
@@ -1273,9 +1195,6 @@ C++ includes: FormFactorIcosahedron.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorIcosahedron::accept "void FormFactorIcosahedron::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorIcosahedron::getEdge "double FormFactorIcosahedron::getEdge() const
 ";
 
@@ -1302,9 +1221,6 @@ C++ includes: FormFactorLongBoxGauss.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorLongBoxGauss::accept "void FormFactorLongBoxGauss::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorLongBoxGauss::getLength "double FormFactorLongBoxGauss::getLength() const
 ";
 
@@ -1347,9 +1263,6 @@ C++ includes: FormFactorLongBoxLorentz.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorLongBoxLorentz::accept "void FormFactorLongBoxLorentz::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorLongBoxLorentz::getLength "double FormFactorLongBoxLorentz::getLength() const
 ";
 
@@ -1392,9 +1305,6 @@ C++ includes: FormFactorPrism3.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorPrism3::accept "void FormFactorPrism3::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorPrism3::getBaseEdge "double FormFactorPrism3::getBaseEdge() const
 ";
 
@@ -1421,9 +1331,6 @@ C++ includes: FormFactorPrism6.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorPrism6::accept "void FormFactorPrism6::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorPrism6::getBaseEdge "double FormFactorPrism6::getBaseEdge() const
 ";
 
@@ -1450,9 +1357,6 @@ C++ includes: FormFactorPyramid.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorPyramid::accept "void FormFactorPyramid::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorPyramid::getHeight "double FormFactorPyramid::getHeight() const
 ";
 
@@ -1485,9 +1389,6 @@ C++ includes: FormFactorSawtoothRipple.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorSawtoothRippleBox::accept "void FormFactorSawtoothRippleBox::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorSawtoothRippleGauss.xml
 %feature("docstring") FormFactorSawtoothRippleGauss "
@@ -1511,9 +1412,6 @@ C++ includes: FormFactorSawtoothRipple.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorSawtoothRippleGauss::accept "void FormFactorSawtoothRippleGauss::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorSawtoothRippleLorentz.xml
 %feature("docstring") FormFactorSawtoothRippleLorentz "
@@ -1537,9 +1435,6 @@ C++ includes: FormFactorSawtoothRipple.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorSawtoothRippleLorentz::accept "void FormFactorSawtoothRippleLorentz::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classFormFactorSphereGaussianRadius.xml
 %feature("docstring") FormFactorSphereGaussianRadius "
@@ -1563,9 +1458,6 @@ C++ includes: FormFactorSphereGaussianRadius.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorSphereGaussianRadius::accept "void FormFactorSphereGaussianRadius::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorSphereGaussianRadius::radialExtension "double FormFactorSphereGaussianRadius::radialExtension() const override
 
 Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations 
@@ -1599,9 +1491,6 @@ C++ includes: FormFactorSphereLogNormalRadius.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorSphereLogNormalRadius::accept "void FormFactorSphereLogNormalRadius::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorSphereLogNormalRadius::radialExtension "double FormFactorSphereLogNormalRadius::radialExtension() const override
 
 Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations 
@@ -1640,9 +1529,6 @@ C++ includes: FormFactorTetrahedron.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorTetrahedron::accept "void FormFactorTetrahedron::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorTetrahedron::getBaseEdge "double FormFactorTetrahedron::getBaseEdge() const
 ";
 
@@ -1675,9 +1561,6 @@ C++ includes: FormFactorTruncatedCube.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorTruncatedCube::accept "void FormFactorTruncatedCube::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorTruncatedCube::getLength "double FormFactorTruncatedCube::getLength() const
 ";
 
@@ -1707,9 +1590,6 @@ C++ includes: FormFactorTruncatedSphere.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorTruncatedSphere::accept "void FormFactorTruncatedSphere::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorTruncatedSphere::getHeight "double FormFactorTruncatedSphere::getHeight() const
 ";
 
@@ -1752,9 +1632,6 @@ C++ includes: FormFactorTruncatedSpheroid.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorTruncatedSpheroid::accept "void FormFactorTruncatedSpheroid::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorTruncatedSpheroid::getRadius "double FormFactorTruncatedSpheroid::getRadius() const
 ";
 
@@ -1802,9 +1679,6 @@ C++ includes: FormFactorWeighted.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  FormFactorWeighted::accept "void FormFactorWeighted::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FormFactorWeighted::radialExtension "double FormFactorWeighted::radialExtension() const override
 
 Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations 
@@ -1859,9 +1733,6 @@ C++ includes: FTDecay1D.h
 %feature("docstring")  FTDecayFunction1DCauchy::clone "FTDecayFunction1DCauchy * FTDecayFunction1DCauchy::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction1DCauchy::accept "void FTDecayFunction1DCauchy::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction1DCauchy::evaluate "double FTDecayFunction1DCauchy::evaluate(double q) const override
 ";
 
@@ -1886,9 +1757,6 @@ C++ includes: FTDecay1D.h
 %feature("docstring")  FTDecayFunction1DGauss::clone "FTDecayFunction1DGauss * FTDecayFunction1DGauss::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction1DGauss::accept "void FTDecayFunction1DGauss::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction1DGauss::evaluate "double FTDecayFunction1DGauss::evaluate(double q) const override
 ";
 
@@ -1913,9 +1781,6 @@ C++ includes: FTDecay1D.h
 %feature("docstring")  FTDecayFunction1DTriangle::clone "FTDecayFunction1DTriangle * FTDecayFunction1DTriangle::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction1DTriangle::accept "void FTDecayFunction1DTriangle::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction1DTriangle::evaluate "double FTDecayFunction1DTriangle::evaluate(double q) const override
 ";
 
@@ -1940,9 +1805,6 @@ C++ includes: FTDecay1D.h
 %feature("docstring")  FTDecayFunction1DVoigt::clone "FTDecayFunction1DVoigt * FTDecayFunction1DVoigt::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction1DVoigt::accept "void FTDecayFunction1DVoigt::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction1DVoigt::evaluate "double FTDecayFunction1DVoigt::evaluate(double q) const override
 ";
 
@@ -1975,9 +1837,6 @@ C++ includes: FTDecay2D.h
 %feature("docstring")  FTDecayFunction2DCauchy::clone "FTDecayFunction2DCauchy * FTDecayFunction2DCauchy::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction2DCauchy::accept "void FTDecayFunction2DCauchy::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction2DCauchy::evaluate "double FTDecayFunction2DCauchy::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed decay function for q in X,Y coordinates 
@@ -2004,9 +1863,6 @@ C++ includes: FTDecay2D.h
 %feature("docstring")  FTDecayFunction2DGauss::clone "FTDecayFunction2DGauss * FTDecayFunction2DGauss::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction2DGauss::accept "void FTDecayFunction2DGauss::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction2DGauss::evaluate "double FTDecayFunction2DGauss::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed decay function for q in X,Y coordinates 
@@ -2033,9 +1889,6 @@ C++ includes: FTDecay2D.h
 %feature("docstring")  FTDecayFunction2DVoigt::clone "FTDecayFunction2DVoigt * FTDecayFunction2DVoigt::clone() const override
 ";
 
-%feature("docstring")  FTDecayFunction2DVoigt::accept "void FTDecayFunction2DVoigt::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDecayFunction2DVoigt::evaluate "double FTDecayFunction2DVoigt::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed decay function for q in X,Y coordinates 
@@ -2070,9 +1923,6 @@ C++ includes: FTDistributions1D.h
 %feature("docstring")  FTDistribution1DCauchy::clone "FTDistribution1DCauchy * FTDistribution1DCauchy::clone() const override
 ";
 
-%feature("docstring")  FTDistribution1DCauchy::accept "void FTDistribution1DCauchy::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution1DCauchy::evaluate "double FTDistribution1DCauchy::evaluate(double q) const override
 
 Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1. 
@@ -2107,9 +1957,6 @@ C++ includes: FTDistributions1D.h
 %feature("docstring")  FTDistribution1DCosine::clone "FTDistribution1DCosine * FTDistribution1DCosine::clone() const override
 ";
 
-%feature("docstring")  FTDistribution1DCosine::accept "void FTDistribution1DCosine::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution1DCosine::evaluate "double FTDistribution1DCosine::evaluate(double q) const override
 
 Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1. 
@@ -2144,9 +1991,6 @@ C++ includes: FTDistributions1D.h
 %feature("docstring")  FTDistribution1DGate::clone "FTDistribution1DGate * FTDistribution1DGate::clone() const override
 ";
 
-%feature("docstring")  FTDistribution1DGate::accept "void FTDistribution1DGate::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution1DGate::evaluate "double FTDistribution1DGate::evaluate(double q) const override
 
 Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1. 
@@ -2181,9 +2025,6 @@ C++ includes: FTDistributions1D.h
 %feature("docstring")  FTDistribution1DGauss::clone "FTDistribution1DGauss * FTDistribution1DGauss::clone() const override
 ";
 
-%feature("docstring")  FTDistribution1DGauss::accept "void FTDistribution1DGauss::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution1DGauss::evaluate "double FTDistribution1DGauss::evaluate(double q) const override
 
 Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1. 
@@ -2218,9 +2059,6 @@ C++ includes: FTDistributions1D.h
 %feature("docstring")  FTDistribution1DTriangle::clone "FTDistribution1DTriangle * FTDistribution1DTriangle::clone() const override
 ";
 
-%feature("docstring")  FTDistribution1DTriangle::accept "void FTDistribution1DTriangle::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution1DTriangle::evaluate "double FTDistribution1DTriangle::evaluate(double q) const override
 
 Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1. 
@@ -2255,9 +2093,6 @@ C++ includes: FTDistributions1D.h
 %feature("docstring")  FTDistribution1DVoigt::clone "FTDistribution1DVoigt * FTDistribution1DVoigt::clone() const override
 ";
 
-%feature("docstring")  FTDistribution1DVoigt::accept "void FTDistribution1DVoigt::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution1DVoigt::evaluate "double FTDistribution1DVoigt::evaluate(double q) const override
 
 Returns Fourier transform of this distribution; is a decay function starting at evaluate(0)=1. 
@@ -2300,9 +2135,6 @@ C++ includes: FTDistributions2D.h
 %feature("docstring")  FTDistribution2DCauchy::clone "FTDistribution2DCauchy * FTDistribution2DCauchy::clone() const override
 ";
 
-%feature("docstring")  FTDistribution2DCauchy::accept "void FTDistribution2DCauchy::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution2DCauchy::evaluate "double FTDistribution2DCauchy::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1 
@@ -2344,9 +2176,6 @@ C++ includes: FTDistributions2D.h
 %feature("docstring")  FTDistribution2DCone::clone "FTDistribution2DCone * FTDistribution2DCone::clone() const override
 ";
 
-%feature("docstring")  FTDistribution2DCone::accept "void FTDistribution2DCone::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution2DCone::evaluate "double FTDistribution2DCone::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1 
@@ -2376,9 +2205,6 @@ C++ includes: FTDistributions2D.h
 %feature("docstring")  FTDistribution2DGate::clone "FTDistribution2DGate * FTDistribution2DGate::clone() const override
 ";
 
-%feature("docstring")  FTDistribution2DGate::accept "void FTDistribution2DGate::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution2DGate::evaluate "double FTDistribution2DGate::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1 
@@ -2408,9 +2234,6 @@ C++ includes: FTDistributions2D.h
 %feature("docstring")  FTDistribution2DGauss::clone "FTDistribution2DGauss * FTDistribution2DGauss::clone() const override
 ";
 
-%feature("docstring")  FTDistribution2DGauss::accept "void FTDistribution2DGauss::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution2DGauss::evaluate "double FTDistribution2DGauss::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1 
@@ -2440,9 +2263,6 @@ C++ includes: FTDistributions2D.h
 %feature("docstring")  FTDistribution2DVoigt::clone "FTDistribution2DVoigt * FTDistribution2DVoigt::clone() const override
 ";
 
-%feature("docstring")  FTDistribution2DVoigt::accept "void FTDistribution2DVoigt::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  FTDistribution2DVoigt::evaluate "double FTDistribution2DVoigt::evaluate(double qx, double qy) const override
 
 evaluate Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1 
@@ -2482,9 +2302,6 @@ C++ includes: IPeakShape.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  GaussFisherPeakShape::accept "void GaussFisherPeakShape::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  GaussFisherPeakShape::evaluate "double GaussFisherPeakShape::evaluate(R3 q, R3 q_lattice_point) const override
 
 Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point. 
@@ -2513,9 +2330,6 @@ C++ includes: Lattice2D.h
 %feature("docstring")  HexagonalLattice2D::clone "HexagonalLattice2D * HexagonalLattice2D::clone() const override
 ";
 
-%feature("docstring")  HexagonalLattice2D::accept "void HexagonalLattice2D::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  HexagonalLattice2D::length1 "double HexagonalLattice2D::length1() const override
 ";
 
@@ -2618,9 +2432,6 @@ C++ includes: Rotations.h
 Returns a new  IRotation object that is the current object's inverse. 
 ";
 
-%feature("docstring")  IdentityRotation::accept "void IdentityRotation::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  IdentityRotation::getTransform3D "Transform3D IdentityRotation::getTransform3D() const override
 
 Returns transformation. 
@@ -3099,9 +2910,6 @@ rotation of lattice with respect to x-axis in radians
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Interference1DLattice::accept "void Interference1DLattice::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Interference1DLattice::setDecayFunction "void Interference1DLattice::setDecayFunction(const IFTDecayFunction1D &decay)
 
 Sets one-dimensional decay function.
@@ -3145,9 +2953,6 @@ C++ includes: Interference2DLattice.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Interference2DLattice::accept "void Interference2DLattice::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Interference2DLattice::setDecayFunction "void Interference2DLattice::setDecayFunction(const IFTDecayFunction2D &decay)
 
 Sets two-dimensional decay function.
@@ -3199,9 +3004,6 @@ C++ includes: Interference2DParaCrystal.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Interference2DParaCrystal::accept "void Interference2DParaCrystal::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Interference2DParaCrystal::setDomainSizes "void Interference2DParaCrystal::setDomainSizes(double size_1, double size_2)
 
 Sets the sizes of coherence domains.
@@ -3327,9 +3129,6 @@ correlation length in direction 2
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Interference2DSuperLattice::accept "void Interference2DSuperLattice::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Interference2DSuperLattice::setSubstructureIFF "void Interference2DSuperLattice::setSubstructureIFF(const IInterference &sub_iff)
 ";
 
@@ -3382,9 +3181,6 @@ C++ includes: Interference3DLattice.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Interference3DLattice::accept "void Interference3DLattice::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Interference3DLattice::setPeakShape "void Interference3DLattice::setPeakShape(const IPeakShape &peak_shape)
 ";
 
@@ -3436,9 +3232,6 @@ number of lattice cells in the second lattice direction
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  InterferenceFinite2DLattice::accept "void InterferenceFinite2DLattice::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  InterferenceFinite2DLattice::numberUnitCells1 "unsigned InterferenceFinite2DLattice::numberUnitCells1() const
 ";
 
@@ -3485,9 +3278,6 @@ C++ includes: InterferenceFinite3DLattice.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  InterferenceFinite3DLattice::accept "void InterferenceFinite3DLattice::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  InterferenceFinite3DLattice::numberUnitCells1 "unsigned InterferenceFinite3DLattice::numberUnitCells1() const
 ";
 
@@ -3533,9 +3323,6 @@ C++ includes: InterferenceHardDisk.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  InterferenceHardDisk::accept "void InterferenceHardDisk::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  InterferenceHardDisk::getParticleDensity "double InterferenceHardDisk::getParticleDensity() const override
 
 If defined by this interference function's parameters, returns the particle density (per area). Otherwise, returns zero or a user-defined value 
@@ -3567,9 +3354,6 @@ C++ includes: InterferenceNone.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  InterferenceNone::accept "void InterferenceNone::accept(INodeVisitor *visitor) const override
-";
-
 
 // File: classInterferenceRadialParaCrystal.xml
 %feature("docstring") InterferenceRadialParaCrystal "
@@ -3601,9 +3385,6 @@ the damping (coherence) length of the paracrystal in nanometers
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  InterferenceRadialParaCrystal::accept "void InterferenceRadialParaCrystal::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  InterferenceRadialParaCrystal::setKappa "void InterferenceRadialParaCrystal::setKappa(double kappa)
 
 Sets size spacing coupling parameter of the Size Spacing Correlation Approximation. 
@@ -3672,9 +3453,6 @@ C++ includes: InterferenceTwin.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  InterferenceTwin::accept "void InterferenceTwin::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  InterferenceTwin::direction "R3 InterferenceTwin::direction() const
 ";
 
@@ -4034,9 +3812,6 @@ C++ includes: IPeakShape.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  IsotropicGaussPeakShape::accept "void IsotropicGaussPeakShape::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  IsotropicGaussPeakShape::evaluate "double IsotropicGaussPeakShape::evaluate(R3 q, R3 q_lattice_point) const override
 
 Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point. 
@@ -4065,9 +3840,6 @@ C++ includes: IPeakShape.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  IsotropicLorentzPeakShape::accept "void IsotropicLorentzPeakShape::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  IsotropicLorentzPeakShape::evaluate "double IsotropicLorentzPeakShape::evaluate(R3 q, R3 q_lattice_point) const override
 
 Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point. 
@@ -4133,9 +3905,6 @@ C++ includes: Lattice3D.h
 %feature("docstring")  Lattice3D::~Lattice3D "Lattice3D::~Lattice3D() override
 ";
 
-%feature("docstring")  Lattice3D::accept "void Lattice3D::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Lattice3D::transformed "Lattice3D Lattice3D::transformed(const Transform3D &transform) const
 
 Creates transformed lattice. 
@@ -4224,9 +3993,6 @@ thickness of a layer in nanometers
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Layer::accept "void Layer::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Layer::thickness "double Layer::thickness() const
 ";
 
@@ -4273,9 +4039,6 @@ C++ includes: LayerInterface.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  LayerInterface::accept "void LayerInterface::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  LayerInterface::setRoughness "void LayerInterface::setRoughness(const LayerRoughness &roughness)
 
 Sets roughness of the interface. 
@@ -4334,9 +4097,6 @@ lateral correlation length of the roughness in nanometers
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  LayerRoughness::accept "void LayerRoughness::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  LayerRoughness::getSpectralFun "double LayerRoughness::getSpectralFun(R3 kvec) const
 
 Returns power spectral density of the surface roughness.
@@ -4409,9 +4169,6 @@ C++ includes: IPeakShape.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  LorentzFisherPeakShape::accept "void LorentzFisherPeakShape::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  LorentzFisherPeakShape::evaluate "double LorentzFisherPeakShape::evaluate(R3 q, R3 q_lattice_point) const override
 
 Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point. 
@@ -4626,9 +4383,6 @@ C++ includes: MesoCrystal.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  MesoCrystal::accept "void MesoCrystal::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  MesoCrystal::createSlicedParticle "SlicedParticle MesoCrystal::createSlicedParticle(const ZLimits &limits) const override
 
 Creates a sliced form factor for this particle. 
@@ -4666,9 +4420,6 @@ C++ includes: IPeakShape.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  MisesFisherGaussPeakShape::accept "void MisesFisherGaussPeakShape::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  MisesFisherGaussPeakShape::evaluate "double MisesFisherGaussPeakShape::evaluate(R3 q, R3 q_lattice_point) const override
 
 Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point. 
@@ -4702,9 +4453,6 @@ C++ includes: IPeakShape.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  MisesGaussPeakShape::accept "void MisesGaussPeakShape::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  MisesGaussPeakShape::evaluate "double MisesGaussPeakShape::evaluate(R3 q, R3 q_lattice_point) const override
 
 Evaluates the peak shape at q from a reciprocal lattice point at q_lattice_point. 
@@ -4740,9 +4488,6 @@ C++ includes: MultiLayer.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  MultiLayer::accept "void MultiLayer::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  MultiLayer::numberOfLayers "size_t MultiLayer::numberOfLayers() const
 ";
 
@@ -4836,9 +4581,6 @@ C++ includes: Particle.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  Particle::accept "void Particle::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  Particle::createSlicedParticle "SlicedParticle Particle::createSlicedParticle(const ZLimits &limits) const override
 
 Creates a sliced form factor for this particle. 
@@ -4881,9 +4623,6 @@ C++ includes: ParticleComposition.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  ParticleComposition::accept "void ParticleComposition::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  ParticleComposition::createFormFactor "IFormFactor * ParticleComposition::createFormFactor() const override
 
 Creates a form factor for this particle. 
@@ -4942,9 +4681,6 @@ C++ includes: ParticleCoreShell.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  ParticleCoreShell::accept "void ParticleCoreShell::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  ParticleCoreShell::createSlicedParticle "SlicedParticle ParticleCoreShell::createSlicedParticle(const ZLimits &limits) const override
 
 Creates a sliced form factor for this particle. 
@@ -4985,9 +4721,6 @@ C++ includes: ParticleLayout.h
 Returns a clone of this  ISampleNode object. 
 ";
 
-%feature("docstring")  ParticleLayout::accept "void ParticleLayout::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  ParticleLayout::addParticle "void ParticleLayout::addParticle(const IParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation())
 
 Adds particle to the layout with abundance, position and the rotation defined.
@@ -5322,9 +5055,6 @@ C++ includes: Rotations.h
 Returns a new  IRotation object that is the current object's inverse. 
 ";
 
-%feature("docstring")  RotationEuler::accept "void RotationEuler::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  RotationEuler::getAlpha "double RotationEuler::getAlpha() const
 ";
 
@@ -5367,9 +5097,6 @@ Constructor of rotation around x-axis.
 Returns a new  IRotation object that is the current object's inverse. 
 ";
 
-%feature("docstring")  RotationX::accept "void RotationX::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  RotationX::getAngle "double RotationX::getAngle() const
 ";
 
@@ -5406,9 +5133,6 @@ Constructor of rotation around y-axis.
 Returns a new  IRotation object that is the current object's inverse. 
 ";
 
-%feature("docstring")  RotationY::accept "void RotationY::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  RotationY::getAngle "double RotationY::getAngle() const
 ";
 
@@ -5445,9 +5169,6 @@ Constructor of rotation around z-axis.
 Returns a new  IRotation object that is the current object's inverse. 
 ";
 
-%feature("docstring")  RotationZ::accept "void RotationZ::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  RotationZ::getAngle "double RotationZ::getAngle() const
 ";
 
@@ -5517,9 +5238,6 @@ C++ includes: Lattice2D.h
 %feature("docstring")  SquareLattice2D::clone "SquareLattice2D * SquareLattice2D::clone() const override
 ";
 
-%feature("docstring")  SquareLattice2D::accept "void SquareLattice2D::accept(INodeVisitor *visitor) const override
-";
-
 %feature("docstring")  SquareLattice2D::length1 "double SquareLattice2D::length1() const override
 ";
 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index c0d072b71fe22963690b0fa1d4b7231559f22712..fd2805f1a045135327e238ff086c3180d7909e0c 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -4049,14 +4049,6 @@ class GISASSimulation(ISimulation2D):
         _libBornAgainCore.GISASSimulation_swiginit(self, _libBornAgainCore.new_GISASSimulation(*args))
     __swig_destroy__ = _libBornAgainCore.delete_GISASSimulation
 
-    def accept(self, visitor):
-        r"""
-        accept(GISASSimulation self, INodeVisitor * visitor)
-        void GISASSimulation::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainCore.GISASSimulation_accept(self, visitor)
-
     def result(self):
         r"""
         result(GISASSimulation self) -> SimulationResult
@@ -4115,14 +4107,6 @@ class DepthProbeSimulation(ISimulation):
         _libBornAgainCore.DepthProbeSimulation_swiginit(self, _libBornAgainCore.new_DepthProbeSimulation())
     __swig_destroy__ = _libBornAgainCore.delete_DepthProbeSimulation
 
-    def accept(self, visitor):
-        r"""
-        accept(DepthProbeSimulation self, INodeVisitor * visitor)
-        void DepthProbeSimulation::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainCore.DepthProbeSimulation_accept(self, visitor)
-
     def result(self):
         r"""
         result(DepthProbeSimulation self) -> SimulationResult
@@ -4229,14 +4213,6 @@ class SpecularSimulation(ISimulation):
         """
         return _libBornAgainCore.SpecularSimulation_prepareSimulation(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(SpecularSimulation self, INodeVisitor * visitor)
-        void SpecularSimulation::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainCore.SpecularSimulation_accept(self, visitor)
-
     def result(self):
         r"""
         result(SpecularSimulation self) -> SimulationResult
@@ -4323,14 +4299,6 @@ class OffSpecularSimulation(ISimulation2D):
         _libBornAgainCore.OffSpecularSimulation_swiginit(self, _libBornAgainCore.new_OffSpecularSimulation(*args))
     __swig_destroy__ = _libBornAgainCore.delete_OffSpecularSimulation
 
-    def accept(self, visitor):
-        r"""
-        accept(OffSpecularSimulation self, INodeVisitor * visitor)
-        void OffSpecularSimulation::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainCore.OffSpecularSimulation_accept(self, visitor)
-
     def result(self):
         r"""
         result(OffSpecularSimulation self) -> SimulationResult
@@ -4458,14 +4426,6 @@ class ConstantBackground(IBackground):
         """
         return _libBornAgainCore.ConstantBackground_backgroundValue(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(ConstantBackground self, INodeVisitor * visitor)
-        void ConstantBackground::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainCore.ConstantBackground_accept(self, visitor)
-
     def addBackground(self, intensity):
         r"""
         addBackground(ConstantBackground self, double intensity) -> double
@@ -4517,14 +4477,6 @@ class PoissonNoiseBackground(IBackground):
         """
         return _libBornAgainCore.PoissonNoiseBackground_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(PoissonNoiseBackground self, INodeVisitor * visitor)
-        void PoissonNoiseBackground::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainCore.PoissonNoiseBackground_accept(self, visitor)
-
     def addBackground(self, intensity):
         r"""
         addBackground(PoissonNoiseBackground self, double intensity) -> double
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index 3f9f3f9df947d8275367aeff15650f3cd294f3a1..25b64f2b643a1e144d95c104f35c6d761b9c842f 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -3117,94 +3117,93 @@ namespace Swig {
 #define SWIGTYPE_p_IFormFactor swig_types[17]
 #define SWIGTYPE_p_IIntensityFunction swig_types[18]
 #define SWIGTYPE_p_INode swig_types[19]
-#define SWIGTYPE_p_INodeVisitor swig_types[20]
-#define SWIGTYPE_p_IRangedDistribution swig_types[21]
-#define SWIGTYPE_p_ISampleNode swig_types[22]
-#define SWIGTYPE_p_IShape2D swig_types[23]
-#define SWIGTYPE_p_ISimulation swig_types[24]
-#define SWIGTYPE_p_ISimulation2D swig_types[25]
-#define SWIGTYPE_p_ISpecularScan swig_types[26]
-#define SWIGTYPE_p_IVarianceFunction swig_types[27]
-#define SWIGTYPE_p_Instrument swig_types[28]
-#define SWIGTYPE_p_IntensityFunctionLog swig_types[29]
-#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[30]
-#define SWIGTYPE_p_IterationInfo swig_types[31]
-#define SWIGTYPE_p_MultiLayer swig_types[32]
-#define SWIGTYPE_p_OffSpecularSimulation swig_types[33]
-#define SWIGTYPE_p_ParameterDistribution swig_types[34]
-#define SWIGTYPE_p_PoissonNoiseBackground swig_types[35]
-#define SWIGTYPE_p_PyBuilderCallback swig_types[36]
-#define SWIGTYPE_p_PyObserverCallback swig_types[37]
-#define SWIGTYPE_p_QzScan swig_types[38]
-#define SWIGTYPE_p_RealLimits swig_types[39]
-#define SWIGTYPE_p_ScanResolution swig_types[40]
-#define SWIGTYPE_p_SimulationOptions swig_types[41]
-#define SWIGTYPE_p_SimulationResult swig_types[42]
-#define SWIGTYPE_p_SpecularSimulation swig_types[43]
-#define SWIGTYPE_p_VarianceConstantFunction swig_types[44]
-#define SWIGTYPE_p_VarianceSimFunction swig_types[45]
-#define SWIGTYPE_p_Vec3T_double_t swig_types[46]
-#define SWIGTYPE_p_Vec3T_int_t swig_types[47]
-#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[48]
-#define SWIGTYPE_p_allocator_type swig_types[49]
-#define SWIGTYPE_p_char swig_types[50]
-#define SWIGTYPE_p_difference_type swig_types[51]
-#define SWIGTYPE_p_first_type swig_types[52]
-#define SWIGTYPE_p_int swig_types[53]
-#define SWIGTYPE_p_key_type swig_types[54]
-#define SWIGTYPE_p_long_long swig_types[55]
-#define SWIGTYPE_p_mapped_type swig_types[56]
-#define SWIGTYPE_p_mumufit__MinimizerResult swig_types[57]
-#define SWIGTYPE_p_mumufit__Parameters swig_types[58]
-#define SWIGTYPE_p_p_PyObject swig_types[59]
-#define SWIGTYPE_p_second_type swig_types[60]
-#define SWIGTYPE_p_short swig_types[61]
-#define SWIGTYPE_p_signed_char swig_types[62]
-#define SWIGTYPE_p_size_type swig_types[63]
-#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[64]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[65]
-#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[66]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[67]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[68]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[69]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[70]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[71]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[72]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[73]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[74]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[75]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[76]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[77]
-#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[78]
-#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[79]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[80]
-#define SWIGTYPE_p_std__functionT_bool_fsize_tF_t swig_types[81]
-#define SWIGTYPE_p_std__invalid_argument swig_types[82]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[83]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[84]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[85]
-#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[86]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[87]
-#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[88]
-#define SWIGTYPE_p_std__vectorT_ParameterDistribution_std__allocatorT_ParameterDistribution_t_t swig_types[89]
-#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[90]
-#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[91]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[92]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[93]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[94]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[95]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[96]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[97]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[98]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[99]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[100]
-#define SWIGTYPE_p_unsigned_char swig_types[101]
-#define SWIGTYPE_p_unsigned_int swig_types[102]
-#define SWIGTYPE_p_unsigned_long_long swig_types[103]
-#define SWIGTYPE_p_unsigned_short swig_types[104]
-#define SWIGTYPE_p_value_type swig_types[105]
-static swig_type_info *swig_types[107];
-static swig_module_info swig_module = {swig_types, 106, 0, 0, 0, 0};
+#define SWIGTYPE_p_IRangedDistribution swig_types[20]
+#define SWIGTYPE_p_ISampleNode swig_types[21]
+#define SWIGTYPE_p_IShape2D swig_types[22]
+#define SWIGTYPE_p_ISimulation swig_types[23]
+#define SWIGTYPE_p_ISimulation2D swig_types[24]
+#define SWIGTYPE_p_ISpecularScan swig_types[25]
+#define SWIGTYPE_p_IVarianceFunction swig_types[26]
+#define SWIGTYPE_p_Instrument swig_types[27]
+#define SWIGTYPE_p_IntensityFunctionLog swig_types[28]
+#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[29]
+#define SWIGTYPE_p_IterationInfo swig_types[30]
+#define SWIGTYPE_p_MultiLayer swig_types[31]
+#define SWIGTYPE_p_OffSpecularSimulation swig_types[32]
+#define SWIGTYPE_p_ParameterDistribution swig_types[33]
+#define SWIGTYPE_p_PoissonNoiseBackground swig_types[34]
+#define SWIGTYPE_p_PyBuilderCallback swig_types[35]
+#define SWIGTYPE_p_PyObserverCallback swig_types[36]
+#define SWIGTYPE_p_QzScan swig_types[37]
+#define SWIGTYPE_p_RealLimits swig_types[38]
+#define SWIGTYPE_p_ScanResolution swig_types[39]
+#define SWIGTYPE_p_SimulationOptions swig_types[40]
+#define SWIGTYPE_p_SimulationResult swig_types[41]
+#define SWIGTYPE_p_SpecularSimulation swig_types[42]
+#define SWIGTYPE_p_VarianceConstantFunction swig_types[43]
+#define SWIGTYPE_p_VarianceSimFunction swig_types[44]
+#define SWIGTYPE_p_Vec3T_double_t swig_types[45]
+#define SWIGTYPE_p_Vec3T_int_t swig_types[46]
+#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[47]
+#define SWIGTYPE_p_allocator_type swig_types[48]
+#define SWIGTYPE_p_char swig_types[49]
+#define SWIGTYPE_p_difference_type swig_types[50]
+#define SWIGTYPE_p_first_type swig_types[51]
+#define SWIGTYPE_p_int swig_types[52]
+#define SWIGTYPE_p_key_type swig_types[53]
+#define SWIGTYPE_p_long_long swig_types[54]
+#define SWIGTYPE_p_mapped_type swig_types[55]
+#define SWIGTYPE_p_mumufit__MinimizerResult swig_types[56]
+#define SWIGTYPE_p_mumufit__Parameters swig_types[57]
+#define SWIGTYPE_p_p_PyObject swig_types[58]
+#define SWIGTYPE_p_second_type swig_types[59]
+#define SWIGTYPE_p_short swig_types[60]
+#define SWIGTYPE_p_signed_char swig_types[61]
+#define SWIGTYPE_p_size_type swig_types[62]
+#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[63]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[64]
+#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[65]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[66]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[67]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[68]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[69]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[70]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[71]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[72]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[73]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[74]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[75]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[76]
+#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[77]
+#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[78]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[79]
+#define SWIGTYPE_p_std__functionT_bool_fsize_tF_t swig_types[80]
+#define SWIGTYPE_p_std__invalid_argument swig_types[81]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[82]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[83]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[84]
+#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[85]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[86]
+#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[87]
+#define SWIGTYPE_p_std__vectorT_ParameterDistribution_std__allocatorT_ParameterDistribution_t_t swig_types[88]
+#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[89]
+#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[90]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[91]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[92]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[93]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[94]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[95]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[96]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[97]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[98]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[99]
+#define SWIGTYPE_p_unsigned_char swig_types[100]
+#define SWIGTYPE_p_unsigned_int swig_types[101]
+#define SWIGTYPE_p_unsigned_long_long swig_types[102]
+#define SWIGTYPE_p_unsigned_short swig_types[103]
+#define SWIGTYPE_p_value_type swig_types[104]
+static swig_type_info *swig_types[106];
+static swig_module_info swig_module = {swig_types, 105, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -43142,35 +43141,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GISASSimulation_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  GISASSimulation *arg1 = (GISASSimulation *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "GISASSimulation_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_GISASSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GISASSimulation_accept" "', argument " "1"" of type '" "GISASSimulation const *""'"); 
-  }
-  arg1 = reinterpret_cast< GISASSimulation * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GISASSimulation_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((GISASSimulation const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_GISASSimulation_result(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   GISASSimulation *arg1 = (GISASSimulation *) 0 ;
@@ -43331,35 +43301,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DepthProbeSimulation_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DepthProbeSimulation *arg1 = (DepthProbeSimulation *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DepthProbeSimulation_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DepthProbeSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DepthProbeSimulation_accept" "', argument " "1"" of type '" "DepthProbeSimulation const *""'"); 
-  }
-  arg1 = reinterpret_cast< DepthProbeSimulation * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DepthProbeSimulation_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DepthProbeSimulation const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_DepthProbeSimulation_result(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DepthProbeSimulation *arg1 = (DepthProbeSimulation *) 0 ;
@@ -43843,35 +43784,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SpecularSimulation_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "SpecularSimulation_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SpecularSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpecularSimulation_accept" "', argument " "1"" of type '" "SpecularSimulation const *""'"); 
-  }
-  arg1 = reinterpret_cast< SpecularSimulation * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpecularSimulation_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((SpecularSimulation const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_SpecularSimulation_result(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
@@ -44148,35 +44060,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_OffSpecularSimulation_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  OffSpecularSimulation *arg1 = (OffSpecularSimulation *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "OffSpecularSimulation_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_OffSpecularSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "OffSpecularSimulation_accept" "', argument " "1"" of type '" "OffSpecularSimulation const *""'"); 
-  }
-  arg1 = reinterpret_cast< OffSpecularSimulation * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "OffSpecularSimulation_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((OffSpecularSimulation const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_OffSpecularSimulation_result(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   OffSpecularSimulation *arg1 = (OffSpecularSimulation *) 0 ;
@@ -44536,35 +44419,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_ConstantBackground_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  ConstantBackground *arg1 = (ConstantBackground *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ConstantBackground_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ConstantBackground, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantBackground_accept" "', argument " "1"" of type '" "ConstantBackground const *""'"); 
-  }
-  arg1 = reinterpret_cast< ConstantBackground * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConstantBackground_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((ConstantBackground const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_ConstantBackground_addBackground(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ConstantBackground *arg1 = (ConstantBackground *) 0 ;
@@ -44687,35 +44541,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PoissonNoiseBackground_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  PoissonNoiseBackground *arg1 = (PoissonNoiseBackground *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "PoissonNoiseBackground_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_PoissonNoiseBackground, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PoissonNoiseBackground_accept" "', argument " "1"" of type '" "PoissonNoiseBackground const *""'"); 
-  }
-  arg1 = reinterpret_cast< PoissonNoiseBackground * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PoissonNoiseBackground_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((PoissonNoiseBackground const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_PoissonNoiseBackground_addBackground(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   PoissonNoiseBackground *arg1 = (PoissonNoiseBackground *) 0 ;
@@ -47500,11 +47325,6 @@ static PyMethodDef SwigMethods[] = {
 		"GISASSimulation::~GISASSimulation() override=default\n"
 		"\n"
 		""},
-	 { "GISASSimulation_accept", _wrap_GISASSimulation_accept, METH_VARARGS, "\n"
-		"GISASSimulation_accept(GISASSimulation self, INodeVisitor * visitor)\n"
-		"void GISASSimulation::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "GISASSimulation_result", _wrap_GISASSimulation_result, METH_O, "\n"
 		"GISASSimulation_result(GISASSimulation self) -> SimulationResult\n"
 		"SimulationResult GISASSimulation::result() const override\n"
@@ -47543,11 +47363,6 @@ static PyMethodDef SwigMethods[] = {
 		"DepthProbeSimulation::~DepthProbeSimulation() override\n"
 		"\n"
 		""},
-	 { "DepthProbeSimulation_accept", _wrap_DepthProbeSimulation_accept, METH_VARARGS, "\n"
-		"DepthProbeSimulation_accept(DepthProbeSimulation self, INodeVisitor * visitor)\n"
-		"void DepthProbeSimulation::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "DepthProbeSimulation_result", _wrap_DepthProbeSimulation_result, METH_O, "\n"
 		"DepthProbeSimulation_result(DepthProbeSimulation self) -> SimulationResult\n"
 		"SimulationResult DepthProbeSimulation::result() const override\n"
@@ -47615,11 +47430,6 @@ static PyMethodDef SwigMethods[] = {
 		"Put into a clean state for running a simulation. \n"
 		"\n"
 		""},
-	 { "SpecularSimulation_accept", _wrap_SpecularSimulation_accept, METH_VARARGS, "\n"
-		"SpecularSimulation_accept(SpecularSimulation self, INodeVisitor * visitor)\n"
-		"void SpecularSimulation::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "SpecularSimulation_result", _wrap_SpecularSimulation_result, METH_O, "\n"
 		"SpecularSimulation_result(SpecularSimulation self) -> SimulationResult\n"
 		"SimulationResult SpecularSimulation::result() const override\n"
@@ -47673,11 +47483,6 @@ static PyMethodDef SwigMethods[] = {
 		"OffSpecularSimulation::~OffSpecularSimulation() override=default\n"
 		"\n"
 		""},
-	 { "OffSpecularSimulation_accept", _wrap_OffSpecularSimulation_accept, METH_VARARGS, "\n"
-		"OffSpecularSimulation_accept(OffSpecularSimulation self, INodeVisitor * visitor)\n"
-		"void OffSpecularSimulation::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "OffSpecularSimulation_result", _wrap_OffSpecularSimulation_result, METH_O, "\n"
 		"OffSpecularSimulation_result(OffSpecularSimulation self) -> SimulationResult\n"
 		"SimulationResult OffSpecularSimulation::result() const override\n"
@@ -47745,11 +47550,6 @@ static PyMethodDef SwigMethods[] = {
 		"double ConstantBackground::backgroundValue() const\n"
 		"\n"
 		""},
-	 { "ConstantBackground_accept", _wrap_ConstantBackground_accept, METH_VARARGS, "\n"
-		"ConstantBackground_accept(ConstantBackground self, INodeVisitor * visitor)\n"
-		"void ConstantBackground::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "ConstantBackground_addBackground", _wrap_ConstantBackground_addBackground, METH_VARARGS, "\n"
 		"ConstantBackground_addBackground(ConstantBackground self, double intensity) -> double\n"
 		"double ConstantBackground::addBackground(double intensity) const override\n"
@@ -47773,11 +47573,6 @@ static PyMethodDef SwigMethods[] = {
 		"PoissonNoiseBackground * PoissonNoiseBackground::clone() const override\n"
 		"\n"
 		""},
-	 { "PoissonNoiseBackground_accept", _wrap_PoissonNoiseBackground_accept, METH_VARARGS, "\n"
-		"PoissonNoiseBackground_accept(PoissonNoiseBackground self, INodeVisitor * visitor)\n"
-		"void PoissonNoiseBackground::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "PoissonNoiseBackground_addBackground", _wrap_PoissonNoiseBackground_addBackground, METH_VARARGS, "\n"
 		"PoissonNoiseBackground_addBackground(PoissonNoiseBackground self, double intensity) -> double\n"
 		"double PoissonNoiseBackground::addBackground(double intensity) const override\n"
@@ -48139,7 +47934,6 @@ static swig_type_info _swigt__p_IDistribution1D = {"_p_IDistribution1D", "IDistr
 static swig_type_info _swigt__p_IFootprintFactor = {"_p_IFootprintFactor", "IFootprintFactor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IIntensityFunction = {"_p_IIntensityFunction", "IIntensityFunction *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_INode = {"_p_INode", "INode *|std::vector< INode * >::value_type|std::vector< INode const * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_INodeVisitor = {"_p_INodeVisitor", "INodeVisitor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IRangedDistribution = {"_p_IRangedDistribution", "IRangedDistribution *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IShape2D = {"_p_IShape2D", "IShape2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ISimulation = {"_p_ISimulation", "ISimulation *", 0, 0, (void*)0, 0};
@@ -48246,7 +48040,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_IFormFactor,
   &_swigt__p_IIntensityFunction,
   &_swigt__p_INode,
-  &_swigt__p_INodeVisitor,
   &_swigt__p_IRangedDistribution,
   &_swigt__p_ISampleNode,
   &_swigt__p_IShape2D,
@@ -48355,7 +48148,6 @@ static swig_cast_info _swigc__p_IDistribution1D[] = {  {&_swigt__p_IDistribution
 static swig_cast_info _swigc__p_IFootprintFactor[] = {  {&_swigt__p_IFootprintFactor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IIntensityFunction[] = {  {&_swigt__p_IntensityFunctionSqrt, _p_IntensityFunctionSqrtTo_p_IIntensityFunction, 0, 0},  {&_swigt__p_IIntensityFunction, 0, 0, 0},  {&_swigt__p_IntensityFunctionLog, _p_IntensityFunctionLogTo_p_IIntensityFunction, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0},  {&_swigt__p_ISimulation2D, _p_ISimulation2DTo_p_INode, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INode, 0, 0},  {&_swigt__p_OffSpecularSimulation, _p_OffSpecularSimulationTo_p_INode, 0, 0},  {&_swigt__p_ISimulation, _p_ISimulationTo_p_INode, 0, 0},  {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_INode, 0, 0},  {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INode, 0, 0},  {&_swigt__p_IBackground, _p_IBackgroundTo_p_INode, 0, 0},  {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_INode, 0, 0},  {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_INode, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0},  {&_swigt__p_IBornFF, _p_IBornFFTo_p_INode, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INodeVisitor[] = {  {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IRangedDistribution[] = {  {&_swigt__p_IRangedDistribution, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IShape2D[] = {  {&_swigt__p_IShape2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ISimulation[] = {  {&_swigt__p_ISimulation2D, _p_ISimulation2DTo_p_ISimulation, 0, 0},  {&_swigt__p_ISimulation, 0, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ISimulation, 0, 0},  {&_swigt__p_OffSpecularSimulation, _p_OffSpecularSimulationTo_p_ISimulation, 0, 0},  {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_ISimulation, 0, 0},  {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ISimulation, 0, 0},{0, 0, 0, 0}};
@@ -48462,7 +48254,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_IFormFactor,
   _swigc__p_IIntensityFunction,
   _swigc__p_INode,
-  _swigc__p_INodeVisitor,
   _swigc__p_IRangedDistribution,
   _swigc__p_ISampleNode,
   _swigc__p_IShape2D,
diff --git a/auto/Wrap/libBornAgainDevice.py b/auto/Wrap/libBornAgainDevice.py
index c4b14d6eef1304b0e8249e1f1493987be6dc7ef9..d51efb5b8d779fc2bbdd7530f8e2c235c6a16c0c 100644
--- a/auto/Wrap/libBornAgainDevice.py
+++ b/auto/Wrap/libBornAgainDevice.py
@@ -2963,14 +2963,6 @@ class Beam(libBornAgainParam.INode):
         r"""horizontalBeam() -> Beam"""
         return _libBornAgainDevice.Beam_horizontalBeam()
 
-    def accept(self, visitor):
-        r"""
-        accept(Beam self, INodeVisitor * visitor)
-        void Beam::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.Beam_accept(self, visitor)
-
     def getChildren(self):
         r"""
         getChildren(Beam self) -> std::vector< INode const *,std::allocator< INode const * > >
@@ -3210,14 +3202,6 @@ class FootprintGauss(IFootprintFactor):
         """
         _libBornAgainDevice.FootprintGauss_swiginit(self, _libBornAgainDevice.new_FootprintGauss(*args))
 
-    def accept(self, visitor):
-        r"""
-        accept(FootprintGauss self, INodeVisitor * visitor)
-        void FootprintGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.FootprintGauss_accept(self, visitor)
-
     def clone(self):
         r"""
         clone(FootprintGauss self) -> FootprintGauss
@@ -3280,14 +3264,6 @@ class FootprintSquare(IFootprintFactor):
         """
         _libBornAgainDevice.FootprintSquare_swiginit(self, _libBornAgainDevice.new_FootprintSquare(*args))
 
-    def accept(self, visitor):
-        r"""
-        accept(FootprintSquare self, INodeVisitor * visitor)
-        void FootprintSquare::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.FootprintSquare_accept(self, visitor)
-
     def clone(self):
         r"""
         clone(FootprintSquare self) -> FootprintSquare
@@ -3906,14 +3882,6 @@ class ResolutionFunction2DGaussian(IResolutionFunction2D):
         """
         return _libBornAgainDevice.ResolutionFunction2DGaussian_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(ResolutionFunction2DGaussian self, INodeVisitor * visitor)
-        void ResolutionFunction2DGaussian::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.ResolutionFunction2DGaussian_accept(self, visitor)
-
     def evaluateCDF(self, x, y):
         r"""
         evaluateCDF(ResolutionFunction2DGaussian self, double x, double y) -> double
@@ -4577,14 +4545,6 @@ class RectangularDetector(IDetector2D):
 
         """
         return _libBornAgainDevice.RectangularDetector_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(RectangularDetector self, INodeVisitor * visitor)
-        void RectangularDetector::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.RectangularDetector_accept(self, visitor)
     __swig_destroy__ = _libBornAgainDevice.delete_RectangularDetector
 
     def setDetectorNormal(self, direction):
@@ -4793,14 +4753,6 @@ class SphericalDetector(IDetector2D):
 
         """
         return _libBornAgainDevice.SphericalDetector_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(SphericalDetector self, INodeVisitor * visitor)
-        void SphericalDetector::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.SphericalDetector_accept(self, visitor)
     __swig_destroy__ = _libBornAgainDevice.delete_SphericalDetector
 
     def defaultCoords(self):
@@ -4850,14 +4802,6 @@ class Instrument(libBornAgainParam.INode):
         _libBornAgainDevice.Instrument_swiginit(self, _libBornAgainDevice.new_Instrument(*args))
     __swig_destroy__ = _libBornAgainDevice.delete_Instrument
 
-    def accept(self, visitor):
-        r"""
-        accept(Instrument self, INodeVisitor * visitor)
-        void Instrument::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.Instrument_accept(self, visitor)
-
     def beam(self, *args):
         r"""
         beam(Instrument self) -> Beam
diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp
index 79275f3308f2002d5172002042a1b0556f42633e..eb783b99fa6810846ef783dd2d22e2710e9f9494 100644
--- a/auto/Wrap/libBornAgainDevice_wrap.cpp
+++ b/auto/Wrap/libBornAgainDevice_wrap.cpp
@@ -3120,95 +3120,94 @@ namespace Swig {
 #define SWIGTYPE_p_IFootprintFactor swig_types[20]
 #define SWIGTYPE_p_IHistogram swig_types[21]
 #define SWIGTYPE_p_INode swig_types[22]
-#define SWIGTYPE_p_INodeVisitor swig_types[23]
-#define SWIGTYPE_p_IPixel swig_types[24]
-#define SWIGTYPE_p_IResolutionFunction2D swig_types[25]
-#define SWIGTYPE_p_IShape2D swig_types[26]
-#define SWIGTYPE_p_Instrument swig_types[27]
-#define SWIGTYPE_p_IntensityDataIOFactory swig_types[28]
-#define SWIGTYPE_p_Line swig_types[29]
-#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[30]
-#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[31]
-#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[32]
-#define SWIGTYPE_p_OutputDataT_bool_t swig_types[33]
-#define SWIGTYPE_p_OutputDataT_double_t swig_types[34]
-#define SWIGTYPE_p_PolFilter swig_types[35]
-#define SWIGTYPE_p_PolMatrices swig_types[36]
-#define SWIGTYPE_p_Polygon swig_types[37]
-#define SWIGTYPE_p_PolygonPrivate swig_types[38]
-#define SWIGTYPE_p_RealLimits swig_types[39]
-#define SWIGTYPE_p_Rectangle swig_types[40]
-#define SWIGTYPE_p_RectangularDetector swig_types[41]
-#define SWIGTYPE_p_RectangularPixel swig_types[42]
-#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[43]
-#define SWIGTYPE_p_SimulationResult swig_types[44]
-#define SWIGTYPE_p_SphericalDetector swig_types[45]
-#define SWIGTYPE_p_Vec3T_double_t swig_types[46]
-#define SWIGTYPE_p_Vec3T_int_t swig_types[47]
-#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[48]
-#define SWIGTYPE_p_VerticalLine swig_types[49]
-#define SWIGTYPE_p_allocator_type swig_types[50]
-#define SWIGTYPE_p_bool swig_types[51]
-#define SWIGTYPE_p_char swig_types[52]
-#define SWIGTYPE_p_const_iterator swig_types[53]
-#define SWIGTYPE_p_corr_matrix_t swig_types[54]
-#define SWIGTYPE_p_difference_type swig_types[55]
-#define SWIGTYPE_p_double swig_types[56]
-#define SWIGTYPE_p_first_type swig_types[57]
-#define SWIGTYPE_p_int swig_types[58]
-#define SWIGTYPE_p_iterator swig_types[59]
-#define SWIGTYPE_p_key_type swig_types[60]
-#define SWIGTYPE_p_long_long swig_types[61]
-#define SWIGTYPE_p_mapped_type swig_types[62]
-#define SWIGTYPE_p_p_ICoordSystem swig_types[63]
-#define SWIGTYPE_p_p_PyObject swig_types[64]
-#define SWIGTYPE_p_parameters_t swig_types[65]
-#define SWIGTYPE_p_second_type swig_types[66]
-#define SWIGTYPE_p_short swig_types[67]
-#define SWIGTYPE_p_signed_char swig_types[68]
-#define SWIGTYPE_p_size_type swig_types[69]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[70]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[71]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[72]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[73]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[74]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[75]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[76]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[77]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[78]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[79]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[80]
-#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[81]
-#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[82]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[83]
-#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[84]
-#define SWIGTYPE_p_std__invalid_argument swig_types[85]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[86]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[87]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[88]
-#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[89]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[90]
-#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[91]
-#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[92]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[93]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[94]
-#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[95]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[96]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[97]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[98]
-#define SWIGTYPE_p_std__vectorT_std__unique_ptrT_DiffuseElement_t_std__allocatorT_std__unique_ptrT_DiffuseElement_t_t_t swig_types[99]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[100]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[101]
-#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[102]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[103]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[104]
-#define SWIGTYPE_p_unsigned_char swig_types[105]
-#define SWIGTYPE_p_unsigned_int swig_types[106]
-#define SWIGTYPE_p_unsigned_long_long swig_types[107]
-#define SWIGTYPE_p_unsigned_short swig_types[108]
-#define SWIGTYPE_p_value_type swig_types[109]
-static swig_type_info *swig_types[111];
-static swig_module_info swig_module = {swig_types, 110, 0, 0, 0, 0};
+#define SWIGTYPE_p_IPixel swig_types[23]
+#define SWIGTYPE_p_IResolutionFunction2D swig_types[24]
+#define SWIGTYPE_p_IShape2D swig_types[25]
+#define SWIGTYPE_p_Instrument swig_types[26]
+#define SWIGTYPE_p_IntensityDataIOFactory swig_types[27]
+#define SWIGTYPE_p_Line swig_types[28]
+#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[29]
+#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[30]
+#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[31]
+#define SWIGTYPE_p_OutputDataT_bool_t swig_types[32]
+#define SWIGTYPE_p_OutputDataT_double_t swig_types[33]
+#define SWIGTYPE_p_PolFilter swig_types[34]
+#define SWIGTYPE_p_PolMatrices swig_types[35]
+#define SWIGTYPE_p_Polygon swig_types[36]
+#define SWIGTYPE_p_PolygonPrivate swig_types[37]
+#define SWIGTYPE_p_RealLimits swig_types[38]
+#define SWIGTYPE_p_Rectangle swig_types[39]
+#define SWIGTYPE_p_RectangularDetector swig_types[40]
+#define SWIGTYPE_p_RectangularPixel swig_types[41]
+#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[42]
+#define SWIGTYPE_p_SimulationResult swig_types[43]
+#define SWIGTYPE_p_SphericalDetector swig_types[44]
+#define SWIGTYPE_p_Vec3T_double_t swig_types[45]
+#define SWIGTYPE_p_Vec3T_int_t swig_types[46]
+#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[47]
+#define SWIGTYPE_p_VerticalLine swig_types[48]
+#define SWIGTYPE_p_allocator_type swig_types[49]
+#define SWIGTYPE_p_bool swig_types[50]
+#define SWIGTYPE_p_char swig_types[51]
+#define SWIGTYPE_p_const_iterator swig_types[52]
+#define SWIGTYPE_p_corr_matrix_t swig_types[53]
+#define SWIGTYPE_p_difference_type swig_types[54]
+#define SWIGTYPE_p_double swig_types[55]
+#define SWIGTYPE_p_first_type swig_types[56]
+#define SWIGTYPE_p_int swig_types[57]
+#define SWIGTYPE_p_iterator swig_types[58]
+#define SWIGTYPE_p_key_type swig_types[59]
+#define SWIGTYPE_p_long_long swig_types[60]
+#define SWIGTYPE_p_mapped_type swig_types[61]
+#define SWIGTYPE_p_p_ICoordSystem swig_types[62]
+#define SWIGTYPE_p_p_PyObject swig_types[63]
+#define SWIGTYPE_p_parameters_t swig_types[64]
+#define SWIGTYPE_p_second_type swig_types[65]
+#define SWIGTYPE_p_short swig_types[66]
+#define SWIGTYPE_p_signed_char swig_types[67]
+#define SWIGTYPE_p_size_type swig_types[68]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[69]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[70]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[71]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[72]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[73]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[74]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[75]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[76]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[77]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[78]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[79]
+#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[80]
+#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[81]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[82]
+#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[83]
+#define SWIGTYPE_p_std__invalid_argument swig_types[84]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[85]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[86]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[87]
+#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[88]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[89]
+#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[90]
+#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[91]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[92]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[93]
+#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[94]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[95]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[96]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[97]
+#define SWIGTYPE_p_std__vectorT_std__unique_ptrT_DiffuseElement_t_std__allocatorT_std__unique_ptrT_DiffuseElement_t_t_t swig_types[98]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[99]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[100]
+#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[101]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[102]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[103]
+#define SWIGTYPE_p_unsigned_char swig_types[104]
+#define SWIGTYPE_p_unsigned_int swig_types[105]
+#define SWIGTYPE_p_unsigned_long_long swig_types[106]
+#define SWIGTYPE_p_unsigned_short swig_types[107]
+#define SWIGTYPE_p_value_type swig_types[108]
+static swig_type_info *swig_types[110];
+static swig_module_info swig_module = {swig_types, 109, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -33782,35 +33781,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Beam_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Beam *arg1 = (Beam *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Beam_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Beam, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Beam_accept" "', argument " "1"" of type '" "Beam const *""'"); 
-  }
-  arg1 = reinterpret_cast< Beam * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Beam_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Beam const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Beam_getChildren(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Beam *arg1 = (Beam *) 0 ;
@@ -34498,35 +34468,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FootprintGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FootprintGauss *arg1 = (FootprintGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FootprintGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FootprintGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FootprintGauss_accept" "', argument " "1"" of type '" "FootprintGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FootprintGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FootprintGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FootprintGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FootprintGauss_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FootprintGauss *arg1 = (FootprintGauss *) 0 ;
@@ -34739,35 +34680,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FootprintSquare_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FootprintSquare *arg1 = (FootprintSquare *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FootprintSquare_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FootprintSquare, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FootprintSquare_accept" "', argument " "1"" of type '" "FootprintSquare const *""'"); 
-  }
-  arg1 = reinterpret_cast< FootprintSquare * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FootprintSquare_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FootprintSquare const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FootprintSquare_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FootprintSquare *arg1 = (FootprintSquare *) 0 ;
@@ -37469,35 +37381,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_ResolutionFunction2DGaussian_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  ResolutionFunction2DGaussian *arg1 = (ResolutionFunction2DGaussian *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ResolutionFunction2DGaussian_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ResolutionFunction2DGaussian, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ResolutionFunction2DGaussian_accept" "', argument " "1"" of type '" "ResolutionFunction2DGaussian const *""'"); 
-  }
-  arg1 = reinterpret_cast< ResolutionFunction2DGaussian * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ResolutionFunction2DGaussian_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((ResolutionFunction2DGaussian const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_ResolutionFunction2DGaussian_evaluateCDF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ResolutionFunction2DGaussian *arg1 = (ResolutionFunction2DGaussian *) 0 ;
@@ -39497,35 +39380,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_RectangularDetector_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  RectangularDetector *arg1 = (RectangularDetector *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "RectangularDetector_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RectangularDetector, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RectangularDetector_accept" "', argument " "1"" of type '" "RectangularDetector const *""'"); 
-  }
-  arg1 = reinterpret_cast< RectangularDetector * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RectangularDetector_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((RectangularDetector const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_RectangularDetector(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   RectangularDetector *arg1 = (RectangularDetector *) 0 ;
@@ -40710,35 +40564,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SphericalDetector_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SphericalDetector *arg1 = (SphericalDetector *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "SphericalDetector_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SphericalDetector, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SphericalDetector_accept" "', argument " "1"" of type '" "SphericalDetector const *""'"); 
-  }
-  arg1 = reinterpret_cast< SphericalDetector * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SphericalDetector_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((SphericalDetector const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_SphericalDetector(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SphericalDetector *arg1 = (SphericalDetector *) 0 ;
@@ -40954,35 +40779,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Instrument_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Instrument *arg1 = (Instrument *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Instrument_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Instrument, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Instrument_accept" "', argument " "1"" of type '" "Instrument const *""'"); 
-  }
-  arg1 = reinterpret_cast< Instrument * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Instrument_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Instrument const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Instrument_beam__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Instrument *arg1 = (Instrument *) 0 ;
@@ -47934,11 +47730,6 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { "Beam_horizontalBeam", _wrap_Beam_horizontalBeam, METH_NOARGS, "Beam_horizontalBeam() -> Beam"},
-	 { "Beam_accept", _wrap_Beam_accept, METH_VARARGS, "\n"
-		"Beam_accept(Beam self, INodeVisitor * visitor)\n"
-		"void Beam::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Beam_getChildren", _wrap_Beam_getChildren, METH_O, "\n"
 		"Beam_getChildren(Beam self) -> std::vector< INode const *,std::allocator< INode const * > >\n"
 		"std::vector< const INode * > Beam::getChildren() const override\n"
@@ -48076,11 +47867,6 @@ static PyMethodDef SwigMethods[] = {
 		"FootprintGauss::FootprintGauss(double width_ratio)\n"
 		"\n"
 		""},
-	 { "FootprintGauss_accept", _wrap_FootprintGauss_accept, METH_VARARGS, "\n"
-		"FootprintGauss_accept(FootprintGauss self, INodeVisitor * visitor)\n"
-		"void FootprintGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FootprintGauss_clone", _wrap_FootprintGauss_clone, METH_O, "\n"
 		"FootprintGauss_clone(FootprintGauss self) -> FootprintGauss\n"
 		"FootprintGauss * FootprintGauss::clone() const override\n"
@@ -48112,11 +47898,6 @@ static PyMethodDef SwigMethods[] = {
 		"FootprintSquare::FootprintSquare(double width_ratio)\n"
 		"\n"
 		""},
-	 { "FootprintSquare_accept", _wrap_FootprintSquare_accept, METH_VARARGS, "\n"
-		"FootprintSquare_accept(FootprintSquare self, INodeVisitor * visitor)\n"
-		"void FootprintSquare::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FootprintSquare_clone", _wrap_FootprintSquare_clone, METH_O, "\n"
 		"FootprintSquare_clone(FootprintSquare self) -> FootprintSquare\n"
 		"FootprintSquare * FootprintSquare::clone() const override\n"
@@ -48456,11 +48237,6 @@ static PyMethodDef SwigMethods[] = {
 		"ResolutionFunction2DGaussian* ResolutionFunction2DGaussian::clone() const override\n"
 		"\n"
 		""},
-	 { "ResolutionFunction2DGaussian_accept", _wrap_ResolutionFunction2DGaussian_accept, METH_VARARGS, "\n"
-		"ResolutionFunction2DGaussian_accept(ResolutionFunction2DGaussian self, INodeVisitor * visitor)\n"
-		"void ResolutionFunction2DGaussian::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "ResolutionFunction2DGaussian_evaluateCDF", _wrap_ResolutionFunction2DGaussian_evaluateCDF, METH_VARARGS, "\n"
 		"ResolutionFunction2DGaussian_evaluateCDF(ResolutionFunction2DGaussian self, double x, double y) -> double\n"
 		"double ResolutionFunction2DGaussian::evaluateCDF(double x, double y) const override\n"
@@ -48856,11 +48632,6 @@ static PyMethodDef SwigMethods[] = {
 		"RectangularDetector * RectangularDetector::clone() const override\n"
 		"\n"
 		""},
-	 { "RectangularDetector_accept", _wrap_RectangularDetector_accept, METH_VARARGS, "\n"
-		"RectangularDetector_accept(RectangularDetector self, INodeVisitor * visitor)\n"
-		"void RectangularDetector::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_RectangularDetector", _wrap_delete_RectangularDetector, METH_O, "\n"
 		"delete_RectangularDetector(RectangularDetector self)\n"
 		"RectangularDetector::~RectangularDetector() override\n"
@@ -48990,11 +48761,6 @@ static PyMethodDef SwigMethods[] = {
 		"SphericalDetector * SphericalDetector::clone() const override\n"
 		"\n"
 		""},
-	 { "SphericalDetector_accept", _wrap_SphericalDetector_accept, METH_VARARGS, "\n"
-		"SphericalDetector_accept(SphericalDetector self, INodeVisitor * visitor)\n"
-		"void SphericalDetector::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_SphericalDetector", _wrap_delete_SphericalDetector, METH_O, "\n"
 		"delete_SphericalDetector(SphericalDetector self)\n"
 		"SphericalDetector::~SphericalDetector() override=default\n"
@@ -49026,11 +48792,6 @@ static PyMethodDef SwigMethods[] = {
 		"Instrument::~Instrument() override\n"
 		"\n"
 		""},
-	 { "Instrument_accept", _wrap_Instrument_accept, METH_VARARGS, "\n"
-		"Instrument_accept(Instrument self, INodeVisitor * visitor)\n"
-		"void Instrument::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Instrument_beam", _wrap_Instrument_beam, METH_VARARGS, "\n"
 		"Instrument_beam(Instrument self) -> Beam\n"
 		"Instrument_beam(Instrument self) -> Beam\n"
@@ -49852,7 +49613,6 @@ static swig_type_info _swigt__p_IDetectorResolution = {"_p_IDetectorResolution",
 static swig_type_info _swigt__p_IFootprintFactor = {"_p_IFootprintFactor", "IFootprintFactor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IHistogram = {"_p_IHistogram", "IHistogram *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_INode = {"_p_INode", "INode *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_INodeVisitor = {"_p_INodeVisitor", "INodeVisitor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IPixel = {"_p_IPixel", "IPixel *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IResolutionFunction2D = {"_p_IResolutionFunction2D", "IResolutionFunction2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IShape2D = {"_p_IShape2D", "IShape2D *", 0, 0, (void*)0, 0};
@@ -49964,7 +49724,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_IFootprintFactor,
   &_swigt__p_IHistogram,
   &_swigt__p_INode,
-  &_swigt__p_INodeVisitor,
   &_swigt__p_IPixel,
   &_swigt__p_IResolutionFunction2D,
   &_swigt__p_IShape2D,
@@ -50076,7 +49835,6 @@ static swig_cast_info _swigc__p_IDetectorResolution[] = {  {&_swigt__p_IDetector
 static swig_cast_info _swigc__p_IFootprintFactor[] = {  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_IFootprintFactor, 0, 0},  {&_swigt__p_IFootprintFactor, 0, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_IFootprintFactor, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IHistogram[] = {  {&_swigt__p_IHistogram, 0, 0, 0},  {&_swigt__p_Histogram2D, _p_Histogram2DTo_p_IHistogram, 0, 0},  {&_swigt__p_Histogram1D, _p_Histogram1DTo_p_IHistogram, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_INode, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0},  {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0},  {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0},  {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_INode, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INodeVisitor[] = {  {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IPixel[] = {  {&_swigt__p_IPixel, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IResolutionFunction2D[] = {  {&_swigt__p_IResolutionFunction2D, 0, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_IResolutionFunction2D, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IShape2D[] = {  {&_swigt__p_Polygon, _p_PolygonTo_p_IShape2D, 0, 0},  {&_swigt__p_Line, _p_LineTo_p_IShape2D, 0, 0},  {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_IShape2D, 0, 0},  {&_swigt__p_Ellipse, _p_EllipseTo_p_IShape2D, 0, 0},  {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_IShape2D, 0, 0},  {&_swigt__p_Rectangle, _p_RectangleTo_p_IShape2D, 0, 0},  {&_swigt__p_IShape2D, 0, 0, 0},{0, 0, 0, 0}};
@@ -50188,7 +49946,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_IFootprintFactor,
   _swigc__p_IHistogram,
   _swigc__p_INode,
-  _swigc__p_INodeVisitor,
   _swigc__p_IPixel,
   _swigc__p_IResolutionFunction2D,
   _swigc__p_IShape2D,
diff --git a/auto/Wrap/libBornAgainParam.py b/auto/Wrap/libBornAgainParam.py
index 963a32c2982b5a46dff2682e9a15d4dac8bb1710..10486888ad7db5e0759c883922ed61092c7945d2 100644
--- a/auto/Wrap/libBornAgainParam.py
+++ b/auto/Wrap/libBornAgainParam.py
@@ -2336,16 +2336,6 @@ class INode(object):
         _libBornAgainParam.INode_swiginit(self, _libBornAgainParam.new_INode(_self, *args))
     __swig_destroy__ = _libBornAgainParam.delete_INode
 
-    def accept(self, visitor):
-        r"""
-        accept(INode self, INodeVisitor * visitor)
-        virtual void INode::accept(INodeVisitor *visitor) const =0
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.INode_accept(self, visitor)
-
     def getChildren(self):
         r"""
         getChildren(INode self) -> swig_dummy_type_const_inode_vector
@@ -2575,16 +2565,6 @@ class DistributionGate(IDistribution1D):
 
         """
         return _libBornAgainParam.DistributionGate_isDelta(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(DistributionGate self, INodeVisitor * visitor)
-        void DistributionGate::accept(INodeVisitor *visitor) const override
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.DistributionGate_accept(self, visitor)
     __swig_destroy__ = _libBornAgainParam.delete_DistributionGate
 
 # Register DistributionGate in _libBornAgainParam:
@@ -2678,16 +2658,6 @@ class DistributionLorentz(IDistribution1D):
 
         """
         return _libBornAgainParam.DistributionLorentz_isDelta(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(DistributionLorentz self, INodeVisitor * visitor)
-        void DistributionLorentz::accept(INodeVisitor *visitor) const override
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.DistributionLorentz_accept(self, visitor)
     __swig_destroy__ = _libBornAgainParam.delete_DistributionLorentz
 
 # Register DistributionLorentz in _libBornAgainParam:
@@ -2781,16 +2751,6 @@ class DistributionGaussian(IDistribution1D):
 
         """
         return _libBornAgainParam.DistributionGaussian_isDelta(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(DistributionGaussian self, INodeVisitor * visitor)
-        void DistributionGaussian::accept(INodeVisitor *visitor) const override
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.DistributionGaussian_accept(self, visitor)
     __swig_destroy__ = _libBornAgainParam.delete_DistributionGaussian
 
 # Register DistributionGaussian in _libBornAgainParam:
@@ -2892,16 +2852,6 @@ class DistributionLogNormal(IDistribution1D):
         """
         return _libBornAgainParam.DistributionLogNormal_isDelta(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(DistributionLogNormal self, INodeVisitor * visitor)
-        void DistributionLogNormal::accept(INodeVisitor *visitor) const override
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.DistributionLogNormal_accept(self, visitor)
-
     def pythonConstructor(self, units):
         r"""
         pythonConstructor(DistributionLogNormal self, std::string const & units) -> std::string
@@ -3004,16 +2954,6 @@ class DistributionCosine(IDistribution1D):
 
         """
         return _libBornAgainParam.DistributionCosine_isDelta(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(DistributionCosine self, INodeVisitor * visitor)
-        void DistributionCosine::accept(INodeVisitor *visitor) const override
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.DistributionCosine_accept(self, visitor)
     __swig_destroy__ = _libBornAgainParam.delete_DistributionCosine
 
 # Register DistributionCosine in _libBornAgainParam:
@@ -3123,16 +3063,6 @@ class DistributionTrapezoid(IDistribution1D):
 
         """
         return _libBornAgainParam.DistributionTrapezoid_isDelta(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(DistributionTrapezoid self, INodeVisitor * visitor)
-        void DistributionTrapezoid::accept(INodeVisitor *visitor) const override
-
-        Calls the  INodeVisitor's visit method. 
-
-        """
-        return _libBornAgainParam.DistributionTrapezoid_accept(self, visitor)
     __swig_destroy__ = _libBornAgainParam.delete_DistributionTrapezoid
 
 # Register DistributionTrapezoid in _libBornAgainParam:
diff --git a/auto/Wrap/libBornAgainParam_wrap.cpp b/auto/Wrap/libBornAgainParam_wrap.cpp
index 1317dc8d5ff55bb49ebc8de97af8ca1f943f6f04..39211eeaaa3ccd44cb0791b1c802ab911115914c 100644
--- a/auto/Wrap/libBornAgainParam_wrap.cpp
+++ b/auto/Wrap/libBornAgainParam_wrap.cpp
@@ -3106,70 +3106,69 @@ namespace Swig {
 #define SWIGTYPE_p_ICloneable swig_types[6]
 #define SWIGTYPE_p_IDistribution1D swig_types[7]
 #define SWIGTYPE_p_INode swig_types[8]
-#define SWIGTYPE_p_INodeVisitor swig_types[9]
-#define SWIGTYPE_p_IRangedDistribution swig_types[10]
-#define SWIGTYPE_p_NodeMeta swig_types[11]
-#define SWIGTYPE_p_ParaMeta swig_types[12]
-#define SWIGTYPE_p_ParameterDistribution swig_types[13]
-#define SWIGTYPE_p_ParameterSample swig_types[14]
-#define SWIGTYPE_p_RangedDistributionCosine swig_types[15]
-#define SWIGTYPE_p_RangedDistributionGate swig_types[16]
-#define SWIGTYPE_p_RangedDistributionGaussian swig_types[17]
-#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[18]
-#define SWIGTYPE_p_RangedDistributionLorentz swig_types[19]
-#define SWIGTYPE_p_RealLimits swig_types[20]
-#define SWIGTYPE_p_allocator_type swig_types[21]
-#define SWIGTYPE_p_char swig_types[22]
-#define SWIGTYPE_p_difference_type swig_types[23]
-#define SWIGTYPE_p_first_type swig_types[24]
-#define SWIGTYPE_p_int swig_types[25]
-#define SWIGTYPE_p_key_type swig_types[26]
-#define SWIGTYPE_p_long_long swig_types[27]
-#define SWIGTYPE_p_mapped_type swig_types[28]
-#define SWIGTYPE_p_p_PyObject swig_types[29]
-#define SWIGTYPE_p_second_type swig_types[30]
-#define SWIGTYPE_p_short swig_types[31]
-#define SWIGTYPE_p_signed_char swig_types[32]
-#define SWIGTYPE_p_size_type swig_types[33]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[34]
-#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[35]
-#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[36]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[37]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[38]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[39]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[40]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[41]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[42]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[43]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[44]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[45]
-#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[46]
-#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[47]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[48]
-#define SWIGTYPE_p_std__invalid_argument swig_types[49]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[50]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[51]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[52]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[53]
-#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[54]
-#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[55]
-#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[56]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[57]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[58]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[59]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[60]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[61]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[62]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[63]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[64]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[65]
-#define SWIGTYPE_p_unsigned_char swig_types[66]
-#define SWIGTYPE_p_unsigned_int swig_types[67]
-#define SWIGTYPE_p_unsigned_long_long swig_types[68]
-#define SWIGTYPE_p_unsigned_short swig_types[69]
-#define SWIGTYPE_p_value_type swig_types[70]
-static swig_type_info *swig_types[72];
-static swig_module_info swig_module = {swig_types, 71, 0, 0, 0, 0};
+#define SWIGTYPE_p_IRangedDistribution swig_types[9]
+#define SWIGTYPE_p_NodeMeta swig_types[10]
+#define SWIGTYPE_p_ParaMeta swig_types[11]
+#define SWIGTYPE_p_ParameterDistribution swig_types[12]
+#define SWIGTYPE_p_ParameterSample swig_types[13]
+#define SWIGTYPE_p_RangedDistributionCosine swig_types[14]
+#define SWIGTYPE_p_RangedDistributionGate swig_types[15]
+#define SWIGTYPE_p_RangedDistributionGaussian swig_types[16]
+#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[17]
+#define SWIGTYPE_p_RangedDistributionLorentz swig_types[18]
+#define SWIGTYPE_p_RealLimits swig_types[19]
+#define SWIGTYPE_p_allocator_type swig_types[20]
+#define SWIGTYPE_p_char swig_types[21]
+#define SWIGTYPE_p_difference_type swig_types[22]
+#define SWIGTYPE_p_first_type swig_types[23]
+#define SWIGTYPE_p_int swig_types[24]
+#define SWIGTYPE_p_key_type swig_types[25]
+#define SWIGTYPE_p_long_long swig_types[26]
+#define SWIGTYPE_p_mapped_type swig_types[27]
+#define SWIGTYPE_p_p_PyObject swig_types[28]
+#define SWIGTYPE_p_second_type swig_types[29]
+#define SWIGTYPE_p_short swig_types[30]
+#define SWIGTYPE_p_signed_char swig_types[31]
+#define SWIGTYPE_p_size_type swig_types[32]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[33]
+#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[34]
+#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[35]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[36]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[37]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[38]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[39]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[40]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[41]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[42]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[43]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[44]
+#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[45]
+#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[46]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[47]
+#define SWIGTYPE_p_std__invalid_argument swig_types[48]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[49]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[50]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[51]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[52]
+#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[53]
+#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[54]
+#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[55]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[56]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[57]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[58]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[59]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[60]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[61]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[62]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[63]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[64]
+#define SWIGTYPE_p_unsigned_char swig_types[65]
+#define SWIGTYPE_p_unsigned_int swig_types[66]
+#define SWIGTYPE_p_unsigned_long_long swig_types[67]
+#define SWIGTYPE_p_unsigned_short swig_types[68]
+#define SWIGTYPE_p_value_type swig_types[69]
+static swig_type_info *swig_types[71];
+static swig_module_info swig_module = {swig_types, 70, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -7267,37 +7266,13 @@ SwigDirector_INode::SwigDirector_INode(PyObject *self, NodeMeta const &meta, std
 SwigDirector_INode::~SwigDirector_INode() {
 }
 
-void SwigDirector_INode::accept(INodeVisitor *visitor) const {
-  swig::SwigVar_PyObject obj0;
-  obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(visitor), SWIGTYPE_p_INodeVisitor,  0 );
-  if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call INode.__init__.");
-  }
-#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 0;
-  const char *const swig_method_name = "accept";
-  PyObject *method = swig_get_method(swig_method_index, swig_method_name);
-  swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
-#else
-  swig::SwigVar_PyObject swig_method_name = SWIG_Python_str_FromChar("accept");
-  swig::SwigVar_PyObject result = PyObject_CallMethodObjArgs(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0, NULL);
-#endif
-  if (!result) {
-    PyObject *error = PyErr_Occurred();
-    if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'INode.accept'");
-    }
-  }
-}
-
-
 std::vector< INode const *, std::allocator< INode const * > > SwigDirector_INode::getChildren() 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 INode.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 1;
+  const size_t swig_method_index = 0;
   const char *const swig_method_name = "getChildren";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -7329,7 +7304,7 @@ std::string SwigDirector_INode::className() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call INode.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 2;
+  const size_t swig_method_index = 1;
   const char *const swig_method_name = "className";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -30918,47 +30893,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INode_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  INode *arg1 = (INode *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  Swig::Director *director = 0;
-  bool upcall = false;
-  
-  if (!SWIG_Python_UnpackTuple(args, "INode_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_INode, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "INode_accept" "', argument " "1"" of type '" "INode const *""'"); 
-  }
-  arg1 = reinterpret_cast< INode * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "INode_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  director = SWIG_DIRECTOR_CAST(arg1);
-  upcall = (director && (director->swig_get_self()==swig_obj[0]));
-  try {
-    if (upcall) {
-      Swig::DirectorPureVirtualException::raise("INode::accept");
-    } else {
-      ((INode const *)arg1)->accept(arg2);
-    }
-  } catch (Swig::DirectorException&) {
-    SWIG_fail;
-  }
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_INode_getChildren(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   INode *arg1 = (INode *) 0 ;
@@ -32080,35 +32014,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DistributionGate_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DistributionGate *arg1 = (DistributionGate *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DistributionGate_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DistributionGate, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DistributionGate_accept" "', argument " "1"" of type '" "DistributionGate const *""'"); 
-  }
-  arg1 = reinterpret_cast< DistributionGate * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DistributionGate_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DistributionGate const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_DistributionGate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DistributionGate *arg1 = (DistributionGate *) 0 ;
@@ -32547,35 +32452,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DistributionLorentz_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DistributionLorentz *arg1 = (DistributionLorentz *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DistributionLorentz_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DistributionLorentz, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DistributionLorentz_accept" "', argument " "1"" of type '" "DistributionLorentz const *""'"); 
-  }
-  arg1 = reinterpret_cast< DistributionLorentz * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DistributionLorentz_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DistributionLorentz const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_DistributionLorentz(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DistributionLorentz *arg1 = (DistributionLorentz *) 0 ;
@@ -33014,35 +32890,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DistributionGaussian_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DistributionGaussian *arg1 = (DistributionGaussian *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DistributionGaussian_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DistributionGaussian, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DistributionGaussian_accept" "', argument " "1"" of type '" "DistributionGaussian const *""'"); 
-  }
-  arg1 = reinterpret_cast< DistributionGaussian * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DistributionGaussian_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DistributionGaussian const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_DistributionGaussian(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DistributionGaussian *arg1 = (DistributionGaussian *) 0 ;
@@ -33487,35 +33334,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DistributionLogNormal_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DistributionLogNormal *arg1 = (DistributionLogNormal *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DistributionLogNormal_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DistributionLogNormal, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DistributionLogNormal_accept" "', argument " "1"" of type '" "DistributionLogNormal const *""'"); 
-  }
-  arg1 = reinterpret_cast< DistributionLogNormal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DistributionLogNormal_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DistributionLogNormal const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_DistributionLogNormal_pythonConstructor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DistributionLogNormal *arg1 = (DistributionLogNormal *) 0 ;
@@ -33991,35 +33809,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DistributionCosine_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DistributionCosine *arg1 = (DistributionCosine *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DistributionCosine_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DistributionCosine, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DistributionCosine_accept" "', argument " "1"" of type '" "DistributionCosine const *""'"); 
-  }
-  arg1 = reinterpret_cast< DistributionCosine * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DistributionCosine_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DistributionCosine const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_DistributionCosine(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DistributionCosine *arg1 = (DistributionCosine *) 0 ;
@@ -34532,35 +34321,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_DistributionTrapezoid_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  DistributionTrapezoid *arg1 = (DistributionTrapezoid *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "DistributionTrapezoid_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_DistributionTrapezoid, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DistributionTrapezoid_accept" "', argument " "1"" of type '" "DistributionTrapezoid const *""'"); 
-  }
-  arg1 = reinterpret_cast< DistributionTrapezoid * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DistributionTrapezoid_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((DistributionTrapezoid const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_DistributionTrapezoid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   DistributionTrapezoid *arg1 = (DistributionTrapezoid *) 0 ;
@@ -39618,13 +39378,6 @@ static PyMethodDef SwigMethods[] = {
 		"virtual INode::~INode()=default\n"
 		"\n"
 		""},
-	 { "INode_accept", _wrap_INode_accept, METH_VARARGS, "\n"
-		"INode_accept(INode self, INodeVisitor * visitor)\n"
-		"virtual void INode::accept(INodeVisitor *visitor) const =0\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "INode_getChildren", _wrap_INode_getChildren, METH_O, "\n"
 		"INode_getChildren(INode self) -> swig_dummy_type_const_inode_vector\n"
 		"std::vector< const INode * > INode::getChildren() const\n"
@@ -39758,13 +39511,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns true if the distribution is in the limit case of a Dirac delta distribution. \n"
 		"\n"
 		""},
-	 { "DistributionGate_accept", _wrap_DistributionGate_accept, METH_VARARGS, "\n"
-		"DistributionGate_accept(DistributionGate self, INodeVisitor * visitor)\n"
-		"void DistributionGate::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "delete_DistributionGate", _wrap_delete_DistributionGate, METH_O, "delete_DistributionGate(DistributionGate self)"},
 	 { "DistributionGate_swigregister", DistributionGate_swigregister, METH_O, NULL},
 	 { "DistributionGate_swiginit", DistributionGate_swiginit, METH_VARARGS, NULL},
@@ -39818,13 +39564,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns true if the distribution is in the limit case of a Dirac delta distribution. \n"
 		"\n"
 		""},
-	 { "DistributionLorentz_accept", _wrap_DistributionLorentz_accept, METH_VARARGS, "\n"
-		"DistributionLorentz_accept(DistributionLorentz self, INodeVisitor * visitor)\n"
-		"void DistributionLorentz::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "delete_DistributionLorentz", _wrap_delete_DistributionLorentz, METH_O, "delete_DistributionLorentz(DistributionLorentz self)"},
 	 { "DistributionLorentz_swigregister", DistributionLorentz_swigregister, METH_O, NULL},
 	 { "DistributionLorentz_swiginit", DistributionLorentz_swiginit, METH_VARARGS, NULL},
@@ -39878,13 +39617,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns true if the distribution is in the limit case of a Dirac delta distribution. \n"
 		"\n"
 		""},
-	 { "DistributionGaussian_accept", _wrap_DistributionGaussian_accept, METH_VARARGS, "\n"
-		"DistributionGaussian_accept(DistributionGaussian self, INodeVisitor * visitor)\n"
-		"void DistributionGaussian::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "delete_DistributionGaussian", _wrap_delete_DistributionGaussian, METH_O, "delete_DistributionGaussian(DistributionGaussian self)"},
 	 { "DistributionGaussian_swigregister", DistributionGaussian_swigregister, METH_O, NULL},
 	 { "DistributionGaussian_swiginit", DistributionGaussian_swiginit, METH_VARARGS, NULL},
@@ -39942,13 +39674,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns true if the distribution is in the limit case of a Dirac delta distribution. \n"
 		"\n"
 		""},
-	 { "DistributionLogNormal_accept", _wrap_DistributionLogNormal_accept, METH_VARARGS, "\n"
-		"DistributionLogNormal_accept(DistributionLogNormal self, INodeVisitor * visitor)\n"
-		"void DistributionLogNormal::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "DistributionLogNormal_pythonConstructor", _wrap_DistributionLogNormal_pythonConstructor, METH_VARARGS, "\n"
 		"DistributionLogNormal_pythonConstructor(DistributionLogNormal self, std::string const & units) -> std::string\n"
 		"std::string DistributionLogNormal::pythonConstructor(const std::string &units) const override\n"
@@ -40009,13 +39734,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns true if the distribution is in the limit case of a Dirac delta distribution. \n"
 		"\n"
 		""},
-	 { "DistributionCosine_accept", _wrap_DistributionCosine_accept, METH_VARARGS, "\n"
-		"DistributionCosine_accept(DistributionCosine self, INodeVisitor * visitor)\n"
-		"void DistributionCosine::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "delete_DistributionCosine", _wrap_delete_DistributionCosine, METH_O, "delete_DistributionCosine(DistributionCosine self)"},
 	 { "DistributionCosine_swigregister", DistributionCosine_swigregister, METH_O, NULL},
 	 { "DistributionCosine_swiginit", DistributionCosine_swiginit, METH_VARARGS, NULL},
@@ -40079,13 +39797,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns true if the distribution is in the limit case of a Dirac delta distribution. \n"
 		"\n"
 		""},
-	 { "DistributionTrapezoid_accept", _wrap_DistributionTrapezoid_accept, METH_VARARGS, "\n"
-		"DistributionTrapezoid_accept(DistributionTrapezoid self, INodeVisitor * visitor)\n"
-		"void DistributionTrapezoid::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		"Calls the  INodeVisitor's visit method. \n"
-		"\n"
-		""},
 	 { "delete_DistributionTrapezoid", _wrap_delete_DistributionTrapezoid, METH_O, "delete_DistributionTrapezoid(DistributionTrapezoid self)"},
 	 { "DistributionTrapezoid_swigregister", DistributionTrapezoid_swigregister, METH_O, NULL},
 	 { "DistributionTrapezoid_swiginit", DistributionTrapezoid_swiginit, METH_VARARGS, NULL},
@@ -40481,7 +40192,6 @@ static swig_type_info _swigt__p_DistributionTrapezoid = {"_p_DistributionTrapezo
 static swig_type_info _swigt__p_ICloneable = {"_p_ICloneable", "ICloneable *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IDistribution1D = {"_p_IDistribution1D", "IDistribution1D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_INode = {"_p_INode", "INode *|std::vector< INode * >::value_type|std::vector< INode const * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_INodeVisitor = {"_p_INodeVisitor", "INodeVisitor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IRangedDistribution = {"_p_IRangedDistribution", "IRangedDistribution *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_NodeMeta = {"_p_NodeMeta", "NodeMeta *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ParaMeta = {"_p_ParaMeta", "ParaMeta *", 0, 0, (void*)0, 0};
@@ -40554,7 +40264,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_ICloneable,
   &_swigt__p_IDistribution1D,
   &_swigt__p_INode,
-  &_swigt__p_INodeVisitor,
   &_swigt__p_IRangedDistribution,
   &_swigt__p_NodeMeta,
   &_swigt__p_ParaMeta,
@@ -40627,7 +40336,6 @@ static swig_cast_info _swigc__p_DistributionTrapezoid[] = {  {&_swigt__p_Distrib
 static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0},  {&_swigt__p_RangedDistributionGate, _p_RangedDistributionGateTo_p_ICloneable, 0, 0},  {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0},  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_RangedDistributionGaussian, _p_RangedDistributionGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_RangedDistributionCosine, _p_RangedDistributionCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_RangedDistributionLorentz, _p_RangedDistributionLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_RangedDistributionLogNormal, _p_RangedDistributionLogNormalTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0},  {&_swigt__p_IRangedDistribution, _p_IRangedDistributionTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IDistribution1D[] = {  {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_IDistribution1D, 0, 0},  {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_IDistribution1D, 0, 0},  {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_IDistribution1D, 0, 0},  {&_swigt__p_IDistribution1D, 0, 0, 0},  {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_IDistribution1D, 0, 0},  {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_IDistribution1D, 0, 0},  {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_IDistribution1D, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INode, 0, 0},  {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INode, 0, 0},  {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INode, 0, 0},  {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INode, 0, 0},  {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INode, 0, 0},  {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_INode, 0, 0},  {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INode, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INodeVisitor[] = {  {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IRangedDistribution[] = {  {&_swigt__p_RangedDistributionCosine, _p_RangedDistributionCosineTo_p_IRangedDistribution, 0, 0},  {&_swigt__p_IRangedDistribution, 0, 0, 0},  {&_swigt__p_RangedDistributionLorentz, _p_RangedDistributionLorentzTo_p_IRangedDistribution, 0, 0},  {&_swigt__p_RangedDistributionGaussian, _p_RangedDistributionGaussianTo_p_IRangedDistribution, 0, 0},  {&_swigt__p_RangedDistributionGate, _p_RangedDistributionGateTo_p_IRangedDistribution, 0, 0},  {&_swigt__p_RangedDistributionLogNormal, _p_RangedDistributionLogNormalTo_p_IRangedDistribution, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_NodeMeta[] = {  {&_swigt__p_NodeMeta, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ParaMeta[] = {  {&_swigt__p_ParaMeta, 0, 0, 0},{0, 0, 0, 0}};
@@ -40700,7 +40408,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_ICloneable,
   _swigc__p_IDistribution1D,
   _swigc__p_INode,
-  _swigc__p_INodeVisitor,
   _swigc__p_IRangedDistribution,
   _swigc__p_NodeMeta,
   _swigc__p_ParaMeta,
diff --git a/auto/Wrap/libBornAgainParam_wrap.h b/auto/Wrap/libBornAgainParam_wrap.h
index 12e69adb39cf4d4e15f078b4203f4a557c7a9d4a..6cde1c3cea86b3b423b2d7022247aa33a8634834 100644
--- a/auto/Wrap/libBornAgainParam_wrap.h
+++ b/auto/Wrap/libBornAgainParam_wrap.h
@@ -21,7 +21,6 @@ public:
     SwigDirector_INode(PyObject *self);
     SwigDirector_INode(PyObject *self, NodeMeta const &meta, std::vector< double, std::allocator< double > > PValues);
     virtual ~SwigDirector_INode();
-    virtual void accept(INodeVisitor *visitor) const;
     virtual std::vector< INode const *, std::allocator< INode const * > > getChildren() const;
     virtual std::string className() const;
 
@@ -54,7 +53,7 @@ private:
       return method;
     }
 private:
-    mutable swig::SwigVar_PyObject vtable[3];
+    mutable swig::SwigVar_PyObject vtable[2];
 #endif
 
 };
diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py
index fc4e45298d6864aa18d8dd807eb04b2187200a15..b022a8e546cc552d6a0ba3eb33055a7f5f55ac28 100644
--- a/auto/Wrap/libBornAgainSample.py
+++ b/auto/Wrap/libBornAgainSample.py
@@ -3706,14 +3706,6 @@ class IdentityRotation(IRotation):
         """
         return _libBornAgainSample.IdentityRotation_createInverse(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(IdentityRotation self, INodeVisitor * visitor)
-        void IdentityRotation::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.IdentityRotation_accept(self, visitor)
-
     def getTransform3D(self):
         r"""
         getTransform3D(IdentityRotation self) -> Transform3D
@@ -3788,14 +3780,6 @@ class RotationX(IRotation):
         """
         return _libBornAgainSample.RotationX_createInverse(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(RotationX self, INodeVisitor * visitor)
-        void RotationX::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.RotationX_accept(self, visitor)
-
     def getAngle(self):
         r"""
         getAngle(RotationX self) -> double
@@ -3868,14 +3852,6 @@ class RotationY(IRotation):
         """
         return _libBornAgainSample.RotationY_createInverse(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(RotationY self, INodeVisitor * visitor)
-        void RotationY::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.RotationY_accept(self, visitor)
-
     def getAngle(self):
         r"""
         getAngle(RotationY self) -> double
@@ -3948,14 +3924,6 @@ class RotationZ(IRotation):
         """
         return _libBornAgainSample.RotationZ_createInverse(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(RotationZ self, INodeVisitor * visitor)
-        void RotationZ::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.RotationZ_accept(self, visitor)
-
     def getAngle(self):
         r"""
         getAngle(RotationZ self) -> double
@@ -4028,14 +3996,6 @@ class RotationEuler(IRotation):
         """
         return _libBornAgainSample.RotationEuler_createInverse(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(RotationEuler self, INodeVisitor * visitor)
-        void RotationEuler::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.RotationEuler_accept(self, visitor)
-
     def getAlpha(self):
         r"""
         getAlpha(RotationEuler self) -> double
@@ -4116,14 +4076,6 @@ class FormFactorCrystal(IFormFactor):
         """
         return _libBornAgainSample.FormFactorCrystal_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCrystal self, INodeVisitor * visitor)
-        void FormFactorCrystal::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCrystal_accept(self, visitor)
-
     def setAmbientMaterial(self, material):
         r"""
         setAmbientMaterial(FormFactorCrystal self, Material material)
@@ -4231,14 +4183,6 @@ class FormFactorWeighted(IFormFactor):
         """
         return _libBornAgainSample.FormFactorWeighted_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorWeighted self, INodeVisitor * visitor)
-        void FormFactorWeighted::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorWeighted_accept(self, visitor)
-
     def radialExtension(self):
         r"""
         radialExtension(FormFactorWeighted self) -> double
@@ -4348,14 +4292,6 @@ class Crystal(ISampleNode):
         """
         return _libBornAgainSample.Crystal_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Crystal self, INodeVisitor * visitor)
-        void Crystal::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Crystal_accept(self, visitor)
-
     def createTotalFormFactor(self, meso_crystal_form_factor, rotation, translation):
         r"""
         createTotalFormFactor(Crystal self, IFormFactor meso_crystal_form_factor, IRotation rotation, R3 translation) -> IFormFactor
@@ -4616,14 +4552,6 @@ class MesoCrystal(IParticle):
         """
         return _libBornAgainSample.MesoCrystal_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(MesoCrystal self, INodeVisitor * visitor)
-        void MesoCrystal::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.MesoCrystal_accept(self, visitor)
-
     def createSlicedParticle(self, limits):
         r"""
         createSlicedParticle(MesoCrystal self, ZLimits const & limits) -> SlicedParticle
@@ -4702,14 +4630,6 @@ class Particle(IParticle):
         """
         return _libBornAgainSample.Particle_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Particle self, INodeVisitor * visitor)
-        void Particle::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Particle_accept(self, visitor)
-
     def createSlicedParticle(self, limits):
         r"""
         createSlicedParticle(Particle self, ZLimits const & limits) -> SlicedParticle
@@ -4792,14 +4712,6 @@ class ParticleComposition(IParticle):
         """
         return _libBornAgainSample.ParticleComposition_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(ParticleComposition self, INodeVisitor * visitor)
-        void ParticleComposition::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.ParticleComposition_accept(self, visitor)
-
     def createFormFactor(self):
         r"""
         createFormFactor(ParticleComposition self) -> IFormFactor
@@ -4918,14 +4830,6 @@ class ParticleCoreShell(IParticle):
         """
         return _libBornAgainSample.ParticleCoreShell_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(ParticleCoreShell self, INodeVisitor * visitor)
-        void ParticleCoreShell::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.ParticleCoreShell_accept(self, visitor)
-
     def createSlicedParticle(self, limits):
         r"""
         createSlicedParticle(ParticleCoreShell self, ZLimits const & limits) -> SlicedParticle
@@ -5047,14 +4951,6 @@ class FTDecayFunction1DCauchy(IFTDecayFunction1D):
         """
         return _libBornAgainSample.FTDecayFunction1DCauchy_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction1DCauchy self, INodeVisitor * visitor)
-        void FTDecayFunction1DCauchy::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction1DCauchy_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDecayFunction1DCauchy self, double q) -> double
@@ -5107,14 +5003,6 @@ class FTDecayFunction1DGauss(IFTDecayFunction1D):
         """
         return _libBornAgainSample.FTDecayFunction1DGauss_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction1DGauss self, INodeVisitor * visitor)
-        void FTDecayFunction1DGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction1DGauss_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDecayFunction1DGauss self, double q) -> double
@@ -5167,14 +5055,6 @@ class FTDecayFunction1DTriangle(IFTDecayFunction1D):
         """
         return _libBornAgainSample.FTDecayFunction1DTriangle_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction1DTriangle self, INodeVisitor * visitor)
-        void FTDecayFunction1DTriangle::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction1DTriangle_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDecayFunction1DTriangle self, double q) -> double
@@ -5227,14 +5107,6 @@ class FTDecayFunction1DVoigt(IFTDecayFunction1D):
         """
         return _libBornAgainSample.FTDecayFunction1DVoigt_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction1DVoigt self, INodeVisitor * visitor)
-        void FTDecayFunction1DVoigt::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction1DVoigt_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDecayFunction1DVoigt self, double q) -> double
@@ -5375,14 +5247,6 @@ class FTDecayFunction2DCauchy(IFTDecayFunction2D):
         """
         return _libBornAgainSample.FTDecayFunction2DCauchy_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction2DCauchy self, INodeVisitor * visitor)
-        void FTDecayFunction2DCauchy::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction2DCauchy_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDecayFunction2DCauchy self, double qx, double qy) -> double
@@ -5437,14 +5301,6 @@ class FTDecayFunction2DGauss(IFTDecayFunction2D):
         """
         return _libBornAgainSample.FTDecayFunction2DGauss_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction2DGauss self, INodeVisitor * visitor)
-        void FTDecayFunction2DGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction2DGauss_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDecayFunction2DGauss self, double qx, double qy) -> double
@@ -5499,14 +5355,6 @@ class FTDecayFunction2DVoigt(IFTDecayFunction2D):
         """
         return _libBornAgainSample.FTDecayFunction2DVoigt_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDecayFunction2DVoigt self, INodeVisitor * visitor)
-        void FTDecayFunction2DVoigt::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDecayFunction2DVoigt_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDecayFunction2DVoigt self, double qx, double qy) -> double
@@ -5625,14 +5473,6 @@ class FTDistribution1DCauchy(IFTDistribution1D):
         """
         return _libBornAgainSample.FTDistribution1DCauchy_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution1DCauchy self, INodeVisitor * visitor)
-        void FTDistribution1DCauchy::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution1DCauchy_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDistribution1DCauchy self, double q) -> double
@@ -5697,14 +5537,6 @@ class FTDistribution1DGauss(IFTDistribution1D):
         """
         return _libBornAgainSample.FTDistribution1DGauss_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution1DGauss self, INodeVisitor * visitor)
-        void FTDistribution1DGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution1DGauss_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDistribution1DGauss self, double q) -> double
@@ -5769,14 +5601,6 @@ class FTDistribution1DGate(IFTDistribution1D):
         """
         return _libBornAgainSample.FTDistribution1DGate_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution1DGate self, INodeVisitor * visitor)
-        void FTDistribution1DGate::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution1DGate_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDistribution1DGate self, double q) -> double
@@ -5841,14 +5665,6 @@ class FTDistribution1DTriangle(IFTDistribution1D):
         """
         return _libBornAgainSample.FTDistribution1DTriangle_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution1DTriangle self, INodeVisitor * visitor)
-        void FTDistribution1DTriangle::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution1DTriangle_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDistribution1DTriangle self, double q) -> double
@@ -5913,14 +5729,6 @@ class FTDistribution1DCosine(IFTDistribution1D):
         """
         return _libBornAgainSample.FTDistribution1DCosine_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution1DCosine self, INodeVisitor * visitor)
-        void FTDistribution1DCosine::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution1DCosine_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDistribution1DCosine self, double q) -> double
@@ -5985,14 +5793,6 @@ class FTDistribution1DVoigt(IFTDistribution1D):
         """
         return _libBornAgainSample.FTDistribution1DVoigt_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution1DVoigt self, INodeVisitor * visitor)
-        void FTDistribution1DVoigt::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution1DVoigt_accept(self, visitor)
-
     def evaluate(self, q):
         r"""
         evaluate(FTDistribution1DVoigt self, double q) -> double
@@ -6137,14 +5937,6 @@ class FTDistribution2DCauchy(IFTDistribution2D):
         """
         return _libBornAgainSample.FTDistribution2DCauchy_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution2DCauchy self, INodeVisitor * visitor)
-        void FTDistribution2DCauchy::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution2DCauchy_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDistribution2DCauchy self, double qx, double qy) -> double
@@ -6199,14 +5991,6 @@ class FTDistribution2DGauss(IFTDistribution2D):
         """
         return _libBornAgainSample.FTDistribution2DGauss_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution2DGauss self, INodeVisitor * visitor)
-        void FTDistribution2DGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution2DGauss_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDistribution2DGauss self, double qx, double qy) -> double
@@ -6261,14 +6045,6 @@ class FTDistribution2DGate(IFTDistribution2D):
         """
         return _libBornAgainSample.FTDistribution2DGate_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution2DGate self, INodeVisitor * visitor)
-        void FTDistribution2DGate::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution2DGate_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDistribution2DGate self, double qx, double qy) -> double
@@ -6323,14 +6099,6 @@ class FTDistribution2DCone(IFTDistribution2D):
         """
         return _libBornAgainSample.FTDistribution2DCone_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution2DCone self, INodeVisitor * visitor)
-        void FTDistribution2DCone::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution2DCone_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDistribution2DCone self, double qx, double qy) -> double
@@ -6385,14 +6153,6 @@ class FTDistribution2DVoigt(IFTDistribution2D):
         """
         return _libBornAgainSample.FTDistribution2DVoigt_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FTDistribution2DVoigt self, INodeVisitor * visitor)
-        void FTDistribution2DVoigt::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FTDistribution2DVoigt_accept(self, visitor)
-
     def evaluate(self, qx, qy):
         r"""
         evaluate(FTDistribution2DVoigt self, double qx, double qy) -> double
@@ -6507,14 +6267,6 @@ class IsotropicGaussPeakShape(IPeakShape):
         """
         return _libBornAgainSample.IsotropicGaussPeakShape_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(IsotropicGaussPeakShape self, INodeVisitor * visitor)
-        void IsotropicGaussPeakShape::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.IsotropicGaussPeakShape_accept(self, visitor)
-
     def evaluate(self, q, q_lattice_point):
         r"""
         evaluate(IsotropicGaussPeakShape self, R3 q, R3 q_lattice_point) -> double
@@ -6570,14 +6322,6 @@ class IsotropicLorentzPeakShape(IPeakShape):
         """
         return _libBornAgainSample.IsotropicLorentzPeakShape_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(IsotropicLorentzPeakShape self, INodeVisitor * visitor)
-        void IsotropicLorentzPeakShape::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.IsotropicLorentzPeakShape_accept(self, visitor)
-
     def evaluate(self, q, q_lattice_point):
         r"""
         evaluate(IsotropicLorentzPeakShape self, R3 q, R3 q_lattice_point) -> double
@@ -6633,14 +6377,6 @@ class GaussFisherPeakShape(IPeakShape):
         """
         return _libBornAgainSample.GaussFisherPeakShape_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(GaussFisherPeakShape self, INodeVisitor * visitor)
-        void GaussFisherPeakShape::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.GaussFisherPeakShape_accept(self, visitor)
-
     def evaluate(self, q, q_lattice_point):
         r"""
         evaluate(GaussFisherPeakShape self, R3 q, R3 q_lattice_point) -> double
@@ -6706,14 +6442,6 @@ class LorentzFisherPeakShape(IPeakShape):
         """
         return _libBornAgainSample.LorentzFisherPeakShape_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(LorentzFisherPeakShape self, INodeVisitor * visitor)
-        void LorentzFisherPeakShape::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.LorentzFisherPeakShape_accept(self, visitor)
-
     def evaluate(self, q, q_lattice_point):
         r"""
         evaluate(LorentzFisherPeakShape self, R3 q, R3 q_lattice_point) -> double
@@ -6779,14 +6507,6 @@ class MisesFisherGaussPeakShape(IPeakShape):
         """
         return _libBornAgainSample.MisesFisherGaussPeakShape_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(MisesFisherGaussPeakShape self, INodeVisitor * visitor)
-        void MisesFisherGaussPeakShape::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.MisesFisherGaussPeakShape_accept(self, visitor)
-
     def evaluate(self, q, q_lattice_point):
         r"""
         evaluate(MisesFisherGaussPeakShape self, R3 q, R3 q_lattice_point) -> double
@@ -6852,14 +6572,6 @@ class MisesGaussPeakShape(IPeakShape):
         """
         return _libBornAgainSample.MisesGaussPeakShape_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(MisesGaussPeakShape self, INodeVisitor * visitor)
-        void MisesGaussPeakShape::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.MisesGaussPeakShape_accept(self, visitor)
-
     def evaluate(self, q, q_lattice_point):
         r"""
         evaluate(MisesGaussPeakShape self, R3 q, R3 q_lattice_point) -> double
@@ -7026,14 +6738,6 @@ class Interference1DLattice(IInterference):
         """
         return _libBornAgainSample.Interference1DLattice_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Interference1DLattice self, INodeVisitor * visitor)
-        void Interference1DLattice::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Interference1DLattice_accept(self, visitor)
-
     def setDecayFunction(self, decay):
         r"""
         setDecayFunction(Interference1DLattice self, IFTDecayFunction1D decay)
@@ -7119,14 +6823,6 @@ class Interference2DLattice(IInterference):
         """
         return _libBornAgainSample.Interference2DLattice_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Interference2DLattice self, INodeVisitor * visitor)
-        void Interference2DLattice::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Interference2DLattice_accept(self, visitor)
-
     def setDecayFunction(self, decay):
         r"""
         setDecayFunction(Interference2DLattice self, IFTDecayFunction2D decay)
@@ -7230,14 +6926,6 @@ class Interference2DParaCrystal(IInterference):
         """
         return _libBornAgainSample.Interference2DParaCrystal_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Interference2DParaCrystal self, INodeVisitor * visitor)
-        void Interference2DParaCrystal::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Interference2DParaCrystal_accept(self, visitor)
-
     def setDomainSizes(self, size_1, size_2):
         r"""
         setDomainSizes(Interference2DParaCrystal self, double size_1, double size_2)
@@ -7443,14 +7131,6 @@ class Interference2DSuperLattice(IInterference):
         """
         return _libBornAgainSample.Interference2DSuperLattice_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Interference2DSuperLattice self, INodeVisitor * visitor)
-        void Interference2DSuperLattice::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Interference2DSuperLattice_accept(self, visitor)
-
     def setSubstructureIFF(self, sub_iff):
         r"""
         setSubstructureIFF(Interference2DSuperLattice self, IInterference sub_iff)
@@ -7570,14 +7250,6 @@ class Interference3DLattice(IInterference):
         """
         return _libBornAgainSample.Interference3DLattice_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Interference3DLattice self, INodeVisitor * visitor)
-        void Interference3DLattice::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Interference3DLattice_accept(self, visitor)
-
     def setPeakShape(self, peak_shape):
         r"""
         setPeakShape(Interference3DLattice self, IPeakShape peak_shape)
@@ -7671,14 +7343,6 @@ class InterferenceFinite2DLattice(IInterference):
         """
         return _libBornAgainSample.InterferenceFinite2DLattice_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(InterferenceFinite2DLattice self, INodeVisitor * visitor)
-        void InterferenceFinite2DLattice::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.InterferenceFinite2DLattice_accept(self, visitor)
-
     def numberUnitCells1(self):
         r"""
         numberUnitCells1(InterferenceFinite2DLattice self) -> unsigned int
@@ -7782,14 +7446,6 @@ class InterferenceFinite3DLattice(IInterference):
         """
         return _libBornAgainSample.InterferenceFinite3DLattice_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(InterferenceFinite3DLattice self, INodeVisitor * visitor)
-        void InterferenceFinite3DLattice::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.InterferenceFinite3DLattice_accept(self, visitor)
-
     def numberUnitCells1(self):
         r"""
         numberUnitCells1(InterferenceFinite3DLattice self) -> unsigned int
@@ -7887,14 +7543,6 @@ class InterferenceHardDisk(IInterference):
         """
         return _libBornAgainSample.InterferenceHardDisk_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(InterferenceHardDisk self, INodeVisitor * visitor)
-        void InterferenceHardDisk::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.InterferenceHardDisk_accept(self, visitor)
-
     def getParticleDensity(self):
         r"""
         getParticleDensity(InterferenceHardDisk self) -> double
@@ -7964,14 +7612,6 @@ class InterferenceNone(IInterference):
 
         """
         return _libBornAgainSample.InterferenceNone_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(InterferenceNone self, INodeVisitor * visitor)
-        void InterferenceNone::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.InterferenceNone_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_InterferenceNone
 
 # Register InterferenceNone in _libBornAgainSample:
@@ -8029,14 +7669,6 @@ class InterferenceRadialParaCrystal(IInterference):
         """
         return _libBornAgainSample.InterferenceRadialParaCrystal_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(InterferenceRadialParaCrystal self, INodeVisitor * visitor)
-        void InterferenceRadialParaCrystal::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.InterferenceRadialParaCrystal_accept(self, visitor)
-
     def setKappa(self, kappa):
         r"""
         setKappa(InterferenceRadialParaCrystal self, double kappa)
@@ -8180,14 +7812,6 @@ class InterferenceTwin(IInterference):
         """
         return _libBornAgainSample.InterferenceTwin_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(InterferenceTwin self, INodeVisitor * visitor)
-        void InterferenceTwin::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.InterferenceTwin_accept(self, visitor)
-
     def direction(self):
         r"""
         direction(InterferenceTwin self) -> R3
@@ -8259,14 +7883,6 @@ class ParticleLayout(ISampleNode):
         """
         return _libBornAgainSample.ParticleLayout_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(ParticleLayout self, INodeVisitor * visitor)
-        void ParticleLayout::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.ParticleLayout_accept(self, visitor)
-
     def addParticle(self, *args):
         r"""
         addParticle(ParticleLayout self, IParticle particle, double abundance=-1.0, R3 position={}, IRotation rotation=IdentityRotation())
@@ -8435,14 +8051,6 @@ class LayerRoughness(ISampleNode):
         """
         return _libBornAgainSample.LayerRoughness_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(LayerRoughness self, INodeVisitor * visitor)
-        void LayerRoughness::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.LayerRoughness_accept(self, visitor)
-
     def getSpectralFun(self, kvec):
         r"""
         getSpectralFun(LayerRoughness self, R3 kvec) -> double
@@ -8584,14 +8192,6 @@ class Layer(ISampleNode):
         """
         return _libBornAgainSample.Layer_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(Layer self, INodeVisitor * visitor)
-        void Layer::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Layer_accept(self, visitor)
-
     def thickness(self):
         r"""
         thickness(Layer self) -> double
@@ -8705,14 +8305,6 @@ class MultiLayer(ISampleNode):
         """
         return _libBornAgainSample.MultiLayer_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(MultiLayer self, INodeVisitor * visitor)
-        void MultiLayer::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.MultiLayer_accept(self, visitor)
-
     def numberOfLayers(self):
         r"""
         numberOfLayers(MultiLayer self) -> size_t
@@ -9195,14 +8787,6 @@ class FormFactorAnisoPyramid(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorAnisoPyramid_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorAnisoPyramid self, INodeVisitor * visitor)
-        void FormFactorAnisoPyramid::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorAnisoPyramid_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorAnisoPyramid self) -> double
@@ -9281,14 +8865,6 @@ class FormFactorBox(IFormFactorPrism):
         """
         return _libBornAgainSample.FormFactorBox_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorBox self, INodeVisitor * visitor)
-        void FormFactorBox::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorBox_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorBox self) -> double
@@ -9381,14 +8957,6 @@ class FormFactorCantellatedCube(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorCantellatedCube_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCantellatedCube self, INodeVisitor * visitor)
-        void FormFactorCantellatedCube::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCantellatedCube_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorCantellatedCube self) -> double
@@ -9451,14 +9019,6 @@ class FormFactorCone(IBornFF):
         """
         return _libBornAgainSample.FormFactorCone_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCone self, INodeVisitor * visitor)
-        void FormFactorCone::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCone_accept(self, visitor)
-
     def getHeight(self):
         r"""
         getHeight(FormFactorCone self) -> double
@@ -9549,14 +9109,6 @@ class FormFactorCone6(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorCone6_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCone6 self, INodeVisitor * visitor)
-        void FormFactorCone6::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCone6_accept(self, visitor)
-
     def getBaseEdge(self):
         r"""
         getBaseEdge(FormFactorCone6 self) -> double
@@ -9626,14 +9178,6 @@ class FormFactorCosineRippleBox(ICosineRipple):
 
         """
         return _libBornAgainSample.FormFactorCosineRippleBox_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCosineRippleBox self, INodeVisitor * visitor)
-        void FormFactorCosineRippleBox::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCosineRippleBox_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_FormFactorCosineRippleBox
 
 # Register FormFactorCosineRippleBox in _libBornAgainSample:
@@ -9680,14 +9224,6 @@ class FormFactorCosineRippleGauss(ICosineRipple):
 
         """
         return _libBornAgainSample.FormFactorCosineRippleGauss_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCosineRippleGauss self, INodeVisitor * visitor)
-        void FormFactorCosineRippleGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCosineRippleGauss_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_FormFactorCosineRippleGauss
 
 # Register FormFactorCosineRippleGauss in _libBornAgainSample:
@@ -9734,14 +9270,6 @@ class FormFactorCosineRippleLorentz(ICosineRipple):
 
         """
         return _libBornAgainSample.FormFactorCosineRippleLorentz_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCosineRippleLorentz self, INodeVisitor * visitor)
-        void FormFactorCosineRippleLorentz::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCosineRippleLorentz_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_FormFactorCosineRippleLorentz
 
 # Register FormFactorCosineRippleLorentz in _libBornAgainSample:
@@ -9789,14 +9317,6 @@ class FormFactorCuboctahedron(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorCuboctahedron_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCuboctahedron self, INodeVisitor * visitor)
-        void FormFactorCuboctahedron::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCuboctahedron_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorCuboctahedron self) -> double
@@ -9875,14 +9395,6 @@ class FormFactorCylinder(IBornFF):
         """
         return _libBornAgainSample.FormFactorCylinder_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorCylinder self, INodeVisitor * visitor)
-        void FormFactorCylinder::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorCylinder_accept(self, visitor)
-
     def getHeight(self):
         r"""
         getHeight(FormFactorCylinder self) -> double
@@ -9965,14 +9477,6 @@ class FormFactorDodecahedron(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorDodecahedron_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorDodecahedron self, INodeVisitor * visitor)
-        void FormFactorDodecahedron::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorDodecahedron_accept(self, visitor)
-
     def getEdge(self):
         r"""
         getEdge(FormFactorDodecahedron self) -> double
@@ -10027,14 +9531,6 @@ class FormFactorEllipsoidalCylinder(IBornFF):
         """
         return _libBornAgainSample.FormFactorEllipsoidalCylinder_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorEllipsoidalCylinder self, INodeVisitor * visitor)
-        void FormFactorEllipsoidalCylinder::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorEllipsoidalCylinder_accept(self, visitor)
-
     def getRadiusX(self):
         r"""
         getRadiusX(FormFactorEllipsoidalCylinder self) -> double
@@ -10125,14 +9621,6 @@ class FormFactorFullSphere(IBornFF):
         """
         return _libBornAgainSample.FormFactorFullSphere_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorFullSphere self, INodeVisitor * visitor)
-        void FormFactorFullSphere::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorFullSphere_accept(self, visitor)
-
     def getRadius(self):
         r"""
         getRadius(FormFactorFullSphere self) -> double
@@ -10227,14 +9715,6 @@ class FormFactorFullSpheroid(IBornFF):
         """
         return _libBornAgainSample.FormFactorFullSpheroid_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorFullSpheroid self, INodeVisitor * visitor)
-        void FormFactorFullSpheroid::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorFullSpheroid_accept(self, visitor)
-
     def getHeight(self):
         r"""
         getHeight(FormFactorFullSpheroid self) -> double
@@ -10318,14 +9798,6 @@ class FormFactorHemiEllipsoid(IBornFF):
         """
         return _libBornAgainSample.FormFactorHemiEllipsoid_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorHemiEllipsoid self, INodeVisitor * visitor)
-        void FormFactorHemiEllipsoid::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorHemiEllipsoid_accept(self, visitor)
-
     def getHeight(self):
         r"""
         getHeight(FormFactorHemiEllipsoid self) -> double
@@ -10415,14 +9887,6 @@ class FormFactorHollowSphere(IBornFF):
         """
         return _libBornAgainSample.FormFactorHollowSphere_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorHollowSphere self, INodeVisitor * visitor)
-        void FormFactorHollowSphere::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorHollowSphere_accept(self, visitor)
-
     def radialExtension(self):
         r"""
         radialExtension(FormFactorHollowSphere self) -> double
@@ -10489,14 +9953,6 @@ class FormFactorIcosahedron(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorIcosahedron_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorIcosahedron self, INodeVisitor * visitor)
-        void FormFactorIcosahedron::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorIcosahedron_accept(self, visitor)
-
     def getEdge(self):
         r"""
         getEdge(FormFactorIcosahedron self) -> double
@@ -10551,14 +10007,6 @@ class FormFactorLongBoxGauss(IBornFF):
         """
         return _libBornAgainSample.FormFactorLongBoxGauss_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorLongBoxGauss self, INodeVisitor * visitor)
-        void FormFactorLongBoxGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorLongBoxGauss_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorLongBoxGauss self) -> double
@@ -10649,14 +10097,6 @@ class FormFactorLongBoxLorentz(IBornFF):
         """
         return _libBornAgainSample.FormFactorLongBoxLorentz_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorLongBoxLorentz self, INodeVisitor * visitor)
-        void FormFactorLongBoxLorentz::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorLongBoxLorentz_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorLongBoxLorentz self) -> double
@@ -10747,14 +10187,6 @@ class FormFactorPrism3(IFormFactorPrism):
         """
         return _libBornAgainSample.FormFactorPrism3_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorPrism3 self, INodeVisitor * visitor)
-        void FormFactorPrism3::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorPrism3_accept(self, visitor)
-
     def getBaseEdge(self):
         r"""
         getBaseEdge(FormFactorPrism3 self) -> double
@@ -10809,14 +10241,6 @@ class FormFactorPrism6(IFormFactorPrism):
         """
         return _libBornAgainSample.FormFactorPrism6_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorPrism6 self, INodeVisitor * visitor)
-        void FormFactorPrism6::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorPrism6_accept(self, visitor)
-
     def getBaseEdge(self):
         r"""
         getBaseEdge(FormFactorPrism6 self) -> double
@@ -10871,14 +10295,6 @@ class FormFactorPyramid(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorPyramid_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorPyramid self, INodeVisitor * visitor)
-        void FormFactorPyramid::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorPyramid_accept(self, visitor)
-
     def getHeight(self):
         r"""
         getHeight(FormFactorPyramid self) -> double
@@ -10948,14 +10364,6 @@ class FormFactorSawtoothRippleBox(ISawtoothRipple):
 
         """
         return _libBornAgainSample.FormFactorSawtoothRippleBox_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorSawtoothRippleBox self, INodeVisitor * visitor)
-        void FormFactorSawtoothRippleBox::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorSawtoothRippleBox_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_FormFactorSawtoothRippleBox
 
 # Register FormFactorSawtoothRippleBox in _libBornAgainSample:
@@ -11002,14 +10410,6 @@ class FormFactorSawtoothRippleGauss(ISawtoothRipple):
 
         """
         return _libBornAgainSample.FormFactorSawtoothRippleGauss_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorSawtoothRippleGauss self, INodeVisitor * visitor)
-        void FormFactorSawtoothRippleGauss::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorSawtoothRippleGauss_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_FormFactorSawtoothRippleGauss
 
 # Register FormFactorSawtoothRippleGauss in _libBornAgainSample:
@@ -11056,14 +10456,6 @@ class FormFactorSawtoothRippleLorentz(ISawtoothRipple):
 
         """
         return _libBornAgainSample.FormFactorSawtoothRippleLorentz_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorSawtoothRippleLorentz self, INodeVisitor * visitor)
-        void FormFactorSawtoothRippleLorentz::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorSawtoothRippleLorentz_accept(self, visitor)
     __swig_destroy__ = _libBornAgainSample.delete_FormFactorSawtoothRippleLorentz
 
 # Register FormFactorSawtoothRippleLorentz in _libBornAgainSample:
@@ -11111,14 +10503,6 @@ class FormFactorTetrahedron(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorTetrahedron_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorTetrahedron self, INodeVisitor * visitor)
-        void FormFactorTetrahedron::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorTetrahedron_accept(self, visitor)
-
     def getBaseEdge(self):
         r"""
         getBaseEdge(FormFactorTetrahedron self) -> double
@@ -11189,14 +10573,6 @@ class FormFactorTruncatedCube(IFormFactorPolyhedron):
         """
         return _libBornAgainSample.FormFactorTruncatedCube_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorTruncatedCube self, INodeVisitor * visitor)
-        void FormFactorTruncatedCube::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorTruncatedCube_accept(self, visitor)
-
     def getLength(self):
         r"""
         getLength(FormFactorTruncatedCube self) -> double
@@ -11259,14 +10635,6 @@ class FormFactorTruncatedSphere(IBornFF):
         """
         return _libBornAgainSample.FormFactorTruncatedSphere_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorTruncatedSphere self, INodeVisitor * visitor)
-        void FormFactorTruncatedSphere::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorTruncatedSphere_accept(self, visitor)
-
     def getHeight(self):
         r"""
         getHeight(FormFactorTruncatedSphere self) -> double
@@ -11357,14 +10725,6 @@ class FormFactorTruncatedSpheroid(IBornFF):
         """
         return _libBornAgainSample.FormFactorTruncatedSpheroid_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorTruncatedSpheroid self, INodeVisitor * visitor)
-        void FormFactorTruncatedSpheroid::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorTruncatedSpheroid_accept(self, visitor)
-
     def getRadius(self):
         r"""
         getRadius(FormFactorTruncatedSpheroid self) -> double
@@ -11463,14 +10823,6 @@ class FormFactorGaussSphere(IBornFF):
         """
         return _libBornAgainSample.FormFactorGaussSphere_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorGaussSphere self, INodeVisitor * visitor)
-        void FormFactorGaussSphere::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorGaussSphere_accept(self, visitor)
-
     def getMeanRadius(self):
         r"""
         getMeanRadius(FormFactorGaussSphere self) -> double
@@ -11545,14 +10897,6 @@ class FormFactorSphereGaussianRadius(IBornFF):
         """
         return _libBornAgainSample.FormFactorSphereGaussianRadius_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorSphereGaussianRadius self, INodeVisitor * visitor)
-        void FormFactorSphereGaussianRadius::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorSphereGaussianRadius_accept(self, visitor)
-
     def radialExtension(self):
         r"""
         radialExtension(FormFactorSphereGaussianRadius self) -> double
@@ -11619,14 +10963,6 @@ class FormFactorSphereLogNormalRadius(IBornFF):
         """
         return _libBornAgainSample.FormFactorSphereLogNormalRadius_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(FormFactorSphereLogNormalRadius self, INodeVisitor * visitor)
-        void FormFactorSphereLogNormalRadius::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.FormFactorSphereLogNormalRadius_accept(self, visitor)
-
     def radialExtension(self):
         r"""
         radialExtension(FormFactorSphereLogNormalRadius self) -> double
@@ -11761,14 +11097,6 @@ class Lattice3D(libBornAgainParam.INode):
         _libBornAgainSample.Lattice3D_swiginit(self, _libBornAgainSample.new_Lattice3D(*args))
     __swig_destroy__ = _libBornAgainSample.delete_Lattice3D
 
-    def accept(self, visitor):
-        r"""
-        accept(Lattice3D self, INodeVisitor * visitor)
-        void Lattice3D::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.Lattice3D_accept(self, visitor)
-
     def transformed(self, transform):
         r"""
         transformed(Lattice3D self, Transform3D transform) -> Lattice3D
@@ -11999,14 +11327,6 @@ class BasicLattice2D(Lattice2D):
         """
         return _libBornAgainSample.BasicLattice2D_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(BasicLattice2D self, INodeVisitor * visitor)
-        void BasicLattice2D::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.BasicLattice2D_accept(self, visitor)
-
     def length1(self):
         r"""
         length1(BasicLattice2D self) -> double
@@ -12082,14 +11402,6 @@ class SquareLattice2D(Lattice2D):
         """
         return _libBornAgainSample.SquareLattice2D_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(SquareLattice2D self, INodeVisitor * visitor)
-        void SquareLattice2D::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.SquareLattice2D_accept(self, visitor)
-
     def length1(self):
         r"""
         length1(SquareLattice2D self) -> double
@@ -12165,14 +11477,6 @@ class HexagonalLattice2D(Lattice2D):
         """
         return _libBornAgainSample.HexagonalLattice2D_clone(self)
 
-    def accept(self, visitor):
-        r"""
-        accept(HexagonalLattice2D self, INodeVisitor * visitor)
-        void HexagonalLattice2D::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainSample.HexagonalLattice2D_accept(self, visitor)
-
     def length1(self):
         r"""
         length1(HexagonalLattice2D self) -> double
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index 65de6cf146bbcce7028e7077c052f75a7ae4c0b5..f5f8bd6308866fcfc6004686289858b2ddb0f64e 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -3167,121 +3167,120 @@ namespace Swig {
 #define SWIGTYPE_p_IFormFactorPrism swig_types[67]
 #define SWIGTYPE_p_IInterference swig_types[68]
 #define SWIGTYPE_p_INode swig_types[69]
-#define SWIGTYPE_p_INodeVisitor swig_types[70]
-#define SWIGTYPE_p_IParticle swig_types[71]
-#define SWIGTYPE_p_IPeakShape swig_types[72]
-#define SWIGTYPE_p_IProfileRectangularRipple swig_types[73]
-#define SWIGTYPE_p_IProfileRipple swig_types[74]
-#define SWIGTYPE_p_IRotation swig_types[75]
-#define SWIGTYPE_p_ISampleNode swig_types[76]
-#define SWIGTYPE_p_ISawtoothRipple swig_types[77]
-#define SWIGTYPE_p_ISelectionRule swig_types[78]
-#define SWIGTYPE_p_IdentityRotation swig_types[79]
-#define SWIGTYPE_p_Interference1DLattice swig_types[80]
-#define SWIGTYPE_p_Interference2DLattice swig_types[81]
-#define SWIGTYPE_p_Interference2DParaCrystal swig_types[82]
-#define SWIGTYPE_p_Interference2DSuperLattice swig_types[83]
-#define SWIGTYPE_p_Interference3DLattice swig_types[84]
-#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[85]
-#define SWIGTYPE_p_InterferenceFinite3DLattice swig_types[86]
-#define SWIGTYPE_p_InterferenceHardDisk swig_types[87]
-#define SWIGTYPE_p_InterferenceNone swig_types[88]
-#define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[89]
-#define SWIGTYPE_p_InterferenceTwin swig_types[90]
-#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[91]
-#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[92]
-#define SWIGTYPE_p_Lattice2D swig_types[93]
-#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[94]
-#define SWIGTYPE_p_Lattice3D swig_types[95]
-#define SWIGTYPE_p_Layer swig_types[96]
-#define SWIGTYPE_p_LayerInterface swig_types[97]
-#define SWIGTYPE_p_LayerRoughness swig_types[98]
-#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[99]
-#define SWIGTYPE_p_Material swig_types[100]
-#define SWIGTYPE_p_MesoCrystal swig_types[101]
-#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[102]
-#define SWIGTYPE_p_MisesGaussPeakShape swig_types[103]
-#define SWIGTYPE_p_MultiLayer swig_types[104]
-#define SWIGTYPE_p_NodeMeta swig_types[105]
-#define SWIGTYPE_p_Particle swig_types[106]
-#define SWIGTYPE_p_ParticleComposition swig_types[107]
-#define SWIGTYPE_p_ParticleCoreShell swig_types[108]
-#define SWIGTYPE_p_ParticleLayout swig_types[109]
-#define SWIGTYPE_p_RotationEuler swig_types[110]
-#define SWIGTYPE_p_RotationX swig_types[111]
-#define SWIGTYPE_p_RotationY swig_types[112]
-#define SWIGTYPE_p_RotationZ swig_types[113]
-#define SWIGTYPE_p_RoughnessModelWrap swig_types[114]
-#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[115]
-#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[116]
-#define SWIGTYPE_p_SimpleSelectionRule swig_types[117]
-#define SWIGTYPE_p_SlicedParticle swig_types[118]
-#define SWIGTYPE_p_SlicingEffects swig_types[119]
-#define SWIGTYPE_p_SquareLattice2D swig_types[120]
-#define SWIGTYPE_p_Transform3D swig_types[121]
-#define SWIGTYPE_p_Vec3T_double_t swig_types[122]
-#define SWIGTYPE_p_Vec3T_int_t swig_types[123]
-#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[124]
-#define SWIGTYPE_p_WavevectorInfo swig_types[125]
-#define SWIGTYPE_p_ZLimits swig_types[126]
-#define SWIGTYPE_p_allocator_type swig_types[127]
-#define SWIGTYPE_p_char swig_types[128]
-#define SWIGTYPE_p_difference_type swig_types[129]
-#define SWIGTYPE_p_first_type swig_types[130]
-#define SWIGTYPE_p_int swig_types[131]
-#define SWIGTYPE_p_key_type swig_types[132]
-#define SWIGTYPE_p_long_long swig_types[133]
-#define SWIGTYPE_p_mapped_type swig_types[134]
-#define SWIGTYPE_p_p_PyObject swig_types[135]
-#define SWIGTYPE_p_second_type swig_types[136]
-#define SWIGTYPE_p_short swig_types[137]
-#define SWIGTYPE_p_signed_char swig_types[138]
-#define SWIGTYPE_p_size_type swig_types[139]
-#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[140]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[141]
-#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[142]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[143]
-#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[144]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[145]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[146]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[147]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[148]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[149]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[150]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[151]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[152]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[153]
-#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[154]
-#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[155]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[156]
-#define SWIGTYPE_p_std__invalid_argument swig_types[157]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[158]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[159]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[160]
-#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[161]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[162]
-#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[163]
-#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[164]
-#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[165]
-#define SWIGTYPE_p_std__vectorT_ParticleLayout_const_p_std__allocatorT_ParticleLayout_const_p_t_t swig_types[166]
-#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[167]
-#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[168]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[169]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[170]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[171]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[172]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[173]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[174]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[175]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[176]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[177]
-#define SWIGTYPE_p_unsigned_char swig_types[178]
-#define SWIGTYPE_p_unsigned_int swig_types[179]
-#define SWIGTYPE_p_unsigned_long_long swig_types[180]
-#define SWIGTYPE_p_unsigned_short swig_types[181]
-#define SWIGTYPE_p_value_type swig_types[182]
-static swig_type_info *swig_types[184];
-static swig_module_info swig_module = {swig_types, 183, 0, 0, 0, 0};
+#define SWIGTYPE_p_IParticle swig_types[70]
+#define SWIGTYPE_p_IPeakShape swig_types[71]
+#define SWIGTYPE_p_IProfileRectangularRipple swig_types[72]
+#define SWIGTYPE_p_IProfileRipple swig_types[73]
+#define SWIGTYPE_p_IRotation swig_types[74]
+#define SWIGTYPE_p_ISampleNode swig_types[75]
+#define SWIGTYPE_p_ISawtoothRipple swig_types[76]
+#define SWIGTYPE_p_ISelectionRule swig_types[77]
+#define SWIGTYPE_p_IdentityRotation swig_types[78]
+#define SWIGTYPE_p_Interference1DLattice swig_types[79]
+#define SWIGTYPE_p_Interference2DLattice swig_types[80]
+#define SWIGTYPE_p_Interference2DParaCrystal swig_types[81]
+#define SWIGTYPE_p_Interference2DSuperLattice swig_types[82]
+#define SWIGTYPE_p_Interference3DLattice swig_types[83]
+#define SWIGTYPE_p_InterferenceFinite2DLattice swig_types[84]
+#define SWIGTYPE_p_InterferenceFinite3DLattice swig_types[85]
+#define SWIGTYPE_p_InterferenceHardDisk swig_types[86]
+#define SWIGTYPE_p_InterferenceNone swig_types[87]
+#define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[88]
+#define SWIGTYPE_p_InterferenceTwin swig_types[89]
+#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[90]
+#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[91]
+#define SWIGTYPE_p_Lattice2D swig_types[92]
+#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[93]
+#define SWIGTYPE_p_Lattice3D swig_types[94]
+#define SWIGTYPE_p_Layer swig_types[95]
+#define SWIGTYPE_p_LayerInterface swig_types[96]
+#define SWIGTYPE_p_LayerRoughness swig_types[97]
+#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[98]
+#define SWIGTYPE_p_Material swig_types[99]
+#define SWIGTYPE_p_MesoCrystal swig_types[100]
+#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[101]
+#define SWIGTYPE_p_MisesGaussPeakShape swig_types[102]
+#define SWIGTYPE_p_MultiLayer swig_types[103]
+#define SWIGTYPE_p_NodeMeta swig_types[104]
+#define SWIGTYPE_p_Particle swig_types[105]
+#define SWIGTYPE_p_ParticleComposition swig_types[106]
+#define SWIGTYPE_p_ParticleCoreShell swig_types[107]
+#define SWIGTYPE_p_ParticleLayout swig_types[108]
+#define SWIGTYPE_p_RotationEuler swig_types[109]
+#define SWIGTYPE_p_RotationX swig_types[110]
+#define SWIGTYPE_p_RotationY swig_types[111]
+#define SWIGTYPE_p_RotationZ swig_types[112]
+#define SWIGTYPE_p_RoughnessModelWrap swig_types[113]
+#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[114]
+#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[115]
+#define SWIGTYPE_p_SimpleSelectionRule swig_types[116]
+#define SWIGTYPE_p_SlicedParticle swig_types[117]
+#define SWIGTYPE_p_SlicingEffects swig_types[118]
+#define SWIGTYPE_p_SquareLattice2D swig_types[119]
+#define SWIGTYPE_p_Transform3D swig_types[120]
+#define SWIGTYPE_p_Vec3T_double_t swig_types[121]
+#define SWIGTYPE_p_Vec3T_int_t swig_types[122]
+#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[123]
+#define SWIGTYPE_p_WavevectorInfo swig_types[124]
+#define SWIGTYPE_p_ZLimits swig_types[125]
+#define SWIGTYPE_p_allocator_type swig_types[126]
+#define SWIGTYPE_p_char swig_types[127]
+#define SWIGTYPE_p_difference_type swig_types[128]
+#define SWIGTYPE_p_first_type swig_types[129]
+#define SWIGTYPE_p_int swig_types[130]
+#define SWIGTYPE_p_key_type swig_types[131]
+#define SWIGTYPE_p_long_long swig_types[132]
+#define SWIGTYPE_p_mapped_type swig_types[133]
+#define SWIGTYPE_p_p_PyObject swig_types[134]
+#define SWIGTYPE_p_second_type swig_types[135]
+#define SWIGTYPE_p_short swig_types[136]
+#define SWIGTYPE_p_signed_char swig_types[137]
+#define SWIGTYPE_p_size_type swig_types[138]
+#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[139]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[140]
+#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[141]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_double_t_t swig_types[142]
+#define SWIGTYPE_p_std__allocatorT_Vec3T_std__complexT_double_t_t_t swig_types[143]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[144]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[145]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[146]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[147]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[148]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[149]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[150]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[151]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[152]
+#define SWIGTYPE_p_std__arrayT_double_3_t swig_types[153]
+#define SWIGTYPE_p_std__arrayT_std__complexT_double_t_3_t swig_types[154]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[155]
+#define SWIGTYPE_p_std__invalid_argument swig_types[156]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[157]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[158]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[159]
+#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[160]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[161]
+#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[162]
+#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[163]
+#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[164]
+#define SWIGTYPE_p_std__vectorT_ParticleLayout_const_p_std__allocatorT_ParticleLayout_const_p_t_t swig_types[165]
+#define SWIGTYPE_p_std__vectorT_Vec3T_double_t_std__allocatorT_Vec3T_double_t_t_t swig_types[166]
+#define SWIGTYPE_p_std__vectorT_Vec3T_std__complexT_double_t_t_std__allocatorT_Vec3T_std__complexT_double_t_t_t_t swig_types[167]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[168]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[169]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[170]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[171]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[172]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[173]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[174]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[175]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[176]
+#define SWIGTYPE_p_unsigned_char swig_types[177]
+#define SWIGTYPE_p_unsigned_int swig_types[178]
+#define SWIGTYPE_p_unsigned_long_long swig_types[179]
+#define SWIGTYPE_p_unsigned_short swig_types[180]
+#define SWIGTYPE_p_value_type swig_types[181]
+static swig_type_info *swig_types[183];
+static swig_module_info swig_module = {swig_types, 182, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -7757,37 +7756,13 @@ void SwigDirector_ISampleNode::transferToCPP() {
 }
 
 
-void SwigDirector_ISampleNode::accept(INodeVisitor *visitor) const {
-  swig::SwigVar_PyObject obj0;
-  obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(visitor), SWIGTYPE_p_INodeVisitor,  0 );
-  if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ISampleNode.__init__.");
-  }
-#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 2;
-  const char *const swig_method_name = "accept";
-  PyObject *method = swig_get_method(swig_method_index, swig_method_name);
-  swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
-#else
-  swig::SwigVar_PyObject swig_method_name = SWIG_Python_str_FromChar("accept");
-  swig::SwigVar_PyObject result = PyObject_CallMethodObjArgs(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0, NULL);
-#endif
-  if (!result) {
-    PyObject *error = PyErr_Occurred();
-    if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'ISampleNode.accept'");
-    }
-  }
-}
-
-
 std::vector< INode const *, std::allocator< INode const * > > SwigDirector_ISampleNode::getChildren() 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 ISampleNode.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 3;
+  const size_t swig_method_index = 2;
   const char *const swig_method_name = "getChildren";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -7819,7 +7794,7 @@ std::string SwigDirector_ISampleNode::className() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ISampleNode.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 4;
+  const size_t swig_method_index = 3;
   const char *const swig_method_name = "className";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -7855,7 +7830,7 @@ Material const *SwigDirector_ISampleNode::material() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ISampleNode.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 5;
+  const size_t swig_method_index = 4;
   const char *const swig_method_name = "material";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -7955,37 +7930,13 @@ void SwigDirector_IFormFactor::transferToCPP() {
 }
 
 
-void SwigDirector_IFormFactor::accept(INodeVisitor *visitor) const {
-  swig::SwigVar_PyObject obj0;
-  obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(visitor), SWIGTYPE_p_INodeVisitor,  0 );
-  if (!swig_get_self()) {
-    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;
-  const char *const swig_method_name = "accept";
-  PyObject *method = swig_get_method(swig_method_index, swig_method_name);
-  swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
-#else
-  swig::SwigVar_PyObject swig_method_name = SWIG_Python_str_FromChar("accept");
-  swig::SwigVar_PyObject result = PyObject_CallMethodObjArgs(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0, NULL);
-#endif
-  if (!result) {
-    PyObject *error = PyErr_Occurred();
-    if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.accept'");
-    }
-  }
-}
-
-
 std::vector< INode const *, std::allocator< INode const * > > SwigDirector_IFormFactor::getChildren() 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__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 3;
+  const size_t swig_method_index = 2;
   const char *const swig_method_name = "getChildren";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8017,7 +7968,7 @@ std::string SwigDirector_IFormFactor::className() const {
     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;
+  const size_t swig_method_index = 3;
   const char *const swig_method_name = "className";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8053,7 +8004,7 @@ Material const *SwigDirector_IFormFactor::material() const {
     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;
+  const size_t swig_method_index = 4;
   const char *const swig_method_name = "material";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8085,7 +8036,7 @@ void SwigDirector_IFormFactor::setAmbientMaterial(Material const &arg0) {
     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;
+  const size_t swig_method_index = 5;
   const char *const swig_method_name = "setAmbientMaterial";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8110,7 +8061,7 @@ complex_t SwigDirector_IFormFactor::theFF(WavevectorInfo const &wavevectors) con
     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;
+  const size_t swig_method_index = 6;
   const char *const swig_method_name = "theFF";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8141,7 +8092,7 @@ double SwigDirector_IFormFactor::volume() const {
     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;
+  const size_t swig_method_index = 7;
   const char *const swig_method_name = "volume";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8173,7 +8124,7 @@ double SwigDirector_IFormFactor::radialExtension() const {
     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;
+  const size_t swig_method_index = 8;
   const char *const swig_method_name = "radialExtension";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8207,7 +8158,7 @@ double SwigDirector_IFormFactor::bottomZ(IRotation const &rotation) const {
     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;
+  const size_t swig_method_index = 9;
   const char *const swig_method_name = "bottomZ";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8240,7 +8191,7 @@ double SwigDirector_IFormFactor::topZ(IRotation const &rotation) const {
     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;
+  const size_t swig_method_index = 10;
   const char *const swig_method_name = "topZ";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8274,7 +8225,7 @@ bool SwigDirector_IFormFactor::canSliceAnalytically(IRotation const &rot) const
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 12;
+  const size_t swig_method_index = 11;
   const char *const swig_method_name = "canSliceAnalytically";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8316,7 +8267,7 @@ IFormFactor *SwigDirector_IFormFactor::sliceFormFactor(ZLimits limits, IRotation
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IFormFactor.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 13;
+  const size_t swig_method_index = 12;
   const char *const swig_method_name = "sliceFormFactor";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2, NULL);
@@ -8416,37 +8367,13 @@ void SwigDirector_IBornFF::transferToCPP() {
 }
 
 
-void SwigDirector_IBornFF::accept(INodeVisitor *visitor) const {
-  swig::SwigVar_PyObject obj0;
-  obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(visitor), SWIGTYPE_p_INodeVisitor,  0 );
-  if (!swig_get_self()) {
-    Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
-  }
-#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 2;
-  const char *const swig_method_name = "accept";
-  PyObject *method = swig_get_method(swig_method_index, swig_method_name);
-  swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
-#else
-  swig::SwigVar_PyObject swig_method_name = SWIG_Python_str_FromChar("accept");
-  swig::SwigVar_PyObject result = PyObject_CallMethodObjArgs(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0, NULL);
-#endif
-  if (!result) {
-    PyObject *error = PyErr_Occurred();
-    if (error) {
-      Swig::DirectorMethodException::raise("Error detected when calling 'IBornFF.accept'");
-    }
-  }
-}
-
-
 std::vector< INode const *, std::allocator< INode const * > > SwigDirector_IBornFF::getChildren() 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 IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 3;
+  const size_t swig_method_index = 2;
   const char *const swig_method_name = "getChildren";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8478,7 +8405,7 @@ std::string SwigDirector_IBornFF::className() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 4;
+  const size_t swig_method_index = 3;
   const char *const swig_method_name = "className";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8514,7 +8441,7 @@ Material const *SwigDirector_IBornFF::material() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 5;
+  const size_t swig_method_index = 4;
   const char *const swig_method_name = "material";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8546,7 +8473,7 @@ void SwigDirector_IBornFF::setAmbientMaterial(Material const &arg0) {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 6;
+  const size_t swig_method_index = 5;
   const char *const swig_method_name = "setAmbientMaterial";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8571,7 +8498,7 @@ complex_t SwigDirector_IBornFF::theFF(WavevectorInfo const &wavevectors) const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 7;
+  const size_t swig_method_index = 6;
   const char *const swig_method_name = "theFF";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8602,7 +8529,7 @@ double SwigDirector_IBornFF::volume() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 8;
+  const size_t swig_method_index = 7;
   const char *const swig_method_name = "volume";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8634,7 +8561,7 @@ double SwigDirector_IBornFF::radialExtension() const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 9;
+  const size_t swig_method_index = 8;
   const char *const swig_method_name = "radialExtension";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject args = PyTuple_New(0);
@@ -8668,7 +8595,7 @@ double SwigDirector_IBornFF::bottomZ(IRotation const &rotation) const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 10;
+  const size_t swig_method_index = 9;
   const char *const swig_method_name = "bottomZ";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8701,7 +8628,7 @@ double SwigDirector_IBornFF::topZ(IRotation const &rotation) const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 11;
+  const size_t swig_method_index = 10;
   const char *const swig_method_name = "topZ";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8735,7 +8662,7 @@ bool SwigDirector_IBornFF::canSliceAnalytically(IRotation const &rot) const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 12;
+  const size_t swig_method_index = 11;
   const char *const swig_method_name = "canSliceAnalytically";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -8777,7 +8704,7 @@ IFormFactor *SwigDirector_IBornFF::sliceFormFactor(ZLimits limits, IRotation con
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 13;
+  const size_t swig_method_index = 12;
   const char *const swig_method_name = "sliceFormFactor";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0,(PyObject *)obj1,(PyObject *)obj2, NULL);
@@ -8810,7 +8737,7 @@ complex_t SwigDirector_IBornFF::formfactor(C3 q) const {
     Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call IBornFF.__init__.");
   }
 #if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
-  const size_t swig_method_index = 14;
+  const size_t swig_method_index = 13;
   const char *const swig_method_name = "formfactor";
   PyObject *method = swig_get_method(swig_method_index, swig_method_name);
   swig::SwigVar_PyObject result = PyObject_CallFunctionObjArgs(method ,(PyObject *)obj0, NULL);
@@ -41715,35 +41642,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IdentityRotation_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IdentityRotation *arg1 = (IdentityRotation *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "IdentityRotation_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IdentityRotation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IdentityRotation_accept" "', argument " "1"" of type '" "IdentityRotation const *""'"); 
-  }
-  arg1 = reinterpret_cast< IdentityRotation * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IdentityRotation_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((IdentityRotation const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_IdentityRotation_getTransform3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   IdentityRotation *arg1 = (IdentityRotation *) 0 ;
@@ -41972,35 +41870,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_RotationX_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  RotationX *arg1 = (RotationX *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "RotationX_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RotationX, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RotationX_accept" "', argument " "1"" of type '" "RotationX const *""'"); 
-  }
-  arg1 = reinterpret_cast< RotationX * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RotationX_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((RotationX const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_RotationX_getAngle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   RotationX *arg1 = (RotationX *) 0 ;
@@ -42229,35 +42098,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_RotationY_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  RotationY *arg1 = (RotationY *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "RotationY_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RotationY, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RotationY_accept" "', argument " "1"" of type '" "RotationY const *""'"); 
-  }
-  arg1 = reinterpret_cast< RotationY * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RotationY_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((RotationY const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_RotationY_getAngle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   RotationY *arg1 = (RotationY *) 0 ;
@@ -42486,35 +42326,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_RotationZ_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  RotationZ *arg1 = (RotationZ *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "RotationZ_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RotationZ, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RotationZ_accept" "', argument " "1"" of type '" "RotationZ const *""'"); 
-  }
-  arg1 = reinterpret_cast< RotationZ * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RotationZ_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((RotationZ const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_RotationZ_getAngle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   RotationZ *arg1 = (RotationZ *) 0 ;
@@ -42771,35 +42582,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_RotationEuler_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  RotationEuler *arg1 = (RotationEuler *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "RotationEuler_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RotationEuler, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RotationEuler_accept" "', argument " "1"" of type '" "RotationEuler const *""'"); 
-  }
-  arg1 = reinterpret_cast< RotationEuler * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RotationEuler_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((RotationEuler const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_RotationEuler_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   RotationEuler *arg1 = (RotationEuler *) 0 ;
@@ -43149,35 +42931,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCrystal_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCrystal *arg1 = (FormFactorCrystal *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCrystal_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCrystal, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCrystal_accept" "', argument " "1"" of type '" "FormFactorCrystal const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCrystal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCrystal_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCrystal const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorCrystal_setAmbientMaterial(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCrystal *arg1 = (FormFactorCrystal *) 0 ;
@@ -43447,35 +43200,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorWeighted_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorWeighted *arg1 = (FormFactorWeighted *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorWeighted_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorWeighted, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorWeighted_accept" "', argument " "1"" of type '" "FormFactorWeighted const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorWeighted * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorWeighted_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorWeighted const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorWeighted_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorWeighted *arg1 = (FormFactorWeighted *) 0 ;
@@ -43867,35 +43591,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Crystal_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Crystal *arg1 = (Crystal *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Crystal_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Crystal, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Crystal_accept" "', argument " "1"" of type '" "Crystal const *""'"); 
-  }
-  arg1 = reinterpret_cast< Crystal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Crystal_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Crystal const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Crystal_createTotalFormFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Crystal *arg1 = (Crystal *) 0 ;
@@ -44753,35 +44448,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_MesoCrystal_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  MesoCrystal *arg1 = (MesoCrystal *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "MesoCrystal_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MesoCrystal, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MesoCrystal_accept" "', argument " "1"" of type '" "MesoCrystal const *""'"); 
-  }
-  arg1 = reinterpret_cast< MesoCrystal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MesoCrystal_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((MesoCrystal const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_MesoCrystal_createSlicedParticle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   MesoCrystal *arg1 = (MesoCrystal *) 0 ;
@@ -45109,35 +44775,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Particle_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Particle *arg1 = (Particle *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Particle_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Particle, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Particle_accept" "', argument " "1"" of type '" "Particle const *""'"); 
-  }
-  arg1 = reinterpret_cast< Particle * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Particle_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Particle const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Particle_createSlicedParticle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Particle *arg1 = (Particle *) 0 ;
@@ -45408,35 +45045,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_ParticleComposition_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  ParticleComposition *arg1 = (ParticleComposition *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ParticleComposition_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ParticleComposition, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleComposition_accept" "', argument " "1"" of type '" "ParticleComposition const *""'"); 
-  }
-  arg1 = reinterpret_cast< ParticleComposition * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleComposition_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((ParticleComposition const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_ParticleComposition_createFormFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ParticleComposition *arg1 = (ParticleComposition *) 0 ;
@@ -45961,35 +45569,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_ParticleCoreShell_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  ParticleCoreShell *arg1 = (ParticleCoreShell *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ParticleCoreShell_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ParticleCoreShell, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleCoreShell_accept" "', argument " "1"" of type '" "ParticleCoreShell const *""'"); 
-  }
-  arg1 = reinterpret_cast< ParticleCoreShell * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleCoreShell_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((ParticleCoreShell const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_ParticleCoreShell_createSlicedParticle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ParticleCoreShell *arg1 = (ParticleCoreShell *) 0 ;
@@ -46336,35 +45915,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction1DCauchy_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction1DCauchy *arg1 = (FTDecayFunction1DCauchy *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction1DCauchy_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction1DCauchy, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction1DCauchy_accept" "', argument " "1"" of type '" "FTDecayFunction1DCauchy const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction1DCauchy * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction1DCauchy_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction1DCauchy const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction1DCauchy_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction1DCauchy *arg1 = (FTDecayFunction1DCauchy *) 0 ;
@@ -46554,35 +46104,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction1DGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction1DGauss *arg1 = (FTDecayFunction1DGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction1DGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction1DGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction1DGauss_accept" "', argument " "1"" of type '" "FTDecayFunction1DGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction1DGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction1DGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction1DGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction1DGauss_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction1DGauss *arg1 = (FTDecayFunction1DGauss *) 0 ;
@@ -46772,35 +46293,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction1DTriangle_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction1DTriangle *arg1 = (FTDecayFunction1DTriangle *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction1DTriangle_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction1DTriangle, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction1DTriangle_accept" "', argument " "1"" of type '" "FTDecayFunction1DTriangle const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction1DTriangle * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction1DTriangle_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction1DTriangle const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction1DTriangle_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction1DTriangle *arg1 = (FTDecayFunction1DTriangle *) 0 ;
@@ -47004,35 +46496,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction1DVoigt_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction1DVoigt *arg1 = (FTDecayFunction1DVoigt *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction1DVoigt_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction1DVoigt, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction1DVoigt_accept" "', argument " "1"" of type '" "FTDecayFunction1DVoigt const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction1DVoigt * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction1DVoigt_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction1DVoigt const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction1DVoigt_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction1DVoigt *arg1 = (FTDecayFunction1DVoigt *) 0 ;
@@ -47494,35 +46957,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction2DCauchy_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction2DCauchy *arg1 = (FTDecayFunction2DCauchy *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction2DCauchy_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction2DCauchy, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction2DCauchy_accept" "', argument " "1"" of type '" "FTDecayFunction2DCauchy const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction2DCauchy * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction2DCauchy_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction2DCauchy const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction2DCauchy_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction2DCauchy *arg1 = (FTDecayFunction2DCauchy *) 0 ;
@@ -47748,35 +47182,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction2DGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction2DGauss *arg1 = (FTDecayFunction2DGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction2DGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction2DGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction2DGauss_accept" "', argument " "1"" of type '" "FTDecayFunction2DGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction2DGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction2DGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction2DGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction2DGauss_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction2DGauss *arg1 = (FTDecayFunction2DGauss *) 0 ;
@@ -48016,35 +47421,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDecayFunction2DVoigt_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDecayFunction2DVoigt *arg1 = (FTDecayFunction2DVoigt *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDecayFunction2DVoigt_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDecayFunction2DVoigt, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDecayFunction2DVoigt_accept" "', argument " "1"" of type '" "FTDecayFunction2DVoigt const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDecayFunction2DVoigt * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDecayFunction2DVoigt_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDecayFunction2DVoigt const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDecayFunction2DVoigt_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDecayFunction2DVoigt *arg1 = (FTDecayFunction2DVoigt *) 0 ;
@@ -48393,35 +47769,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution1DCauchy_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution1DCauchy *arg1 = (FTDistribution1DCauchy *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution1DCauchy_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution1DCauchy, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution1DCauchy_accept" "', argument " "1"" of type '" "FTDistribution1DCauchy const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution1DCauchy * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution1DCauchy_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution1DCauchy const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution1DCauchy_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution1DCauchy *arg1 = (FTDistribution1DCauchy *) 0 ;
@@ -48634,35 +47981,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution1DGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution1DGauss *arg1 = (FTDistribution1DGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution1DGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution1DGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution1DGauss_accept" "', argument " "1"" of type '" "FTDistribution1DGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution1DGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution1DGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution1DGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution1DGauss_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution1DGauss *arg1 = (FTDistribution1DGauss *) 0 ;
@@ -48875,35 +48193,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution1DGate_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution1DGate *arg1 = (FTDistribution1DGate *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution1DGate_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution1DGate, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution1DGate_accept" "', argument " "1"" of type '" "FTDistribution1DGate const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution1DGate * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution1DGate_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution1DGate const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution1DGate_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution1DGate *arg1 = (FTDistribution1DGate *) 0 ;
@@ -49116,35 +48405,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution1DTriangle_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution1DTriangle *arg1 = (FTDistribution1DTriangle *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution1DTriangle_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution1DTriangle, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution1DTriangle_accept" "', argument " "1"" of type '" "FTDistribution1DTriangle const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution1DTriangle * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution1DTriangle_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution1DTriangle const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution1DTriangle_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution1DTriangle *arg1 = (FTDistribution1DTriangle *) 0 ;
@@ -49357,35 +48617,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution1DCosine_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution1DCosine *arg1 = (FTDistribution1DCosine *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution1DCosine_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution1DCosine, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution1DCosine_accept" "', argument " "1"" of type '" "FTDistribution1DCosine const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution1DCosine * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution1DCosine_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution1DCosine const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution1DCosine_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution1DCosine *arg1 = (FTDistribution1DCosine *) 0 ;
@@ -49612,35 +48843,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution1DVoigt_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution1DVoigt *arg1 = (FTDistribution1DVoigt *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution1DVoigt_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution1DVoigt, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution1DVoigt_accept" "', argument " "1"" of type '" "FTDistribution1DVoigt const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution1DVoigt * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution1DVoigt_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution1DVoigt const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution1DVoigt_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution1DVoigt *arg1 = (FTDistribution1DVoigt *) 0 ;
@@ -50086,35 +49288,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution2DCauchy_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution2DCauchy *arg1 = (FTDistribution2DCauchy *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution2DCauchy_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution2DCauchy, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution2DCauchy_accept" "', argument " "1"" of type '" "FTDistribution2DCauchy const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution2DCauchy * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution2DCauchy_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution2DCauchy const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution2DCauchy_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution2DCauchy *arg1 = (FTDistribution2DCauchy *) 0 ;
@@ -50340,35 +49513,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution2DGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution2DGauss *arg1 = (FTDistribution2DGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution2DGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution2DGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution2DGauss_accept" "', argument " "1"" of type '" "FTDistribution2DGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution2DGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution2DGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution2DGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution2DGauss_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution2DGauss *arg1 = (FTDistribution2DGauss *) 0 ;
@@ -50594,35 +49738,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution2DGate_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution2DGate *arg1 = (FTDistribution2DGate *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution2DGate_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution2DGate, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution2DGate_accept" "', argument " "1"" of type '" "FTDistribution2DGate const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution2DGate * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution2DGate_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution2DGate const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution2DGate_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution2DGate *arg1 = (FTDistribution2DGate *) 0 ;
@@ -50848,35 +49963,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution2DCone_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution2DCone *arg1 = (FTDistribution2DCone *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution2DCone_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution2DCone, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution2DCone_accept" "', argument " "1"" of type '" "FTDistribution2DCone const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution2DCone * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution2DCone_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution2DCone const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution2DCone_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution2DCone *arg1 = (FTDistribution2DCone *) 0 ;
@@ -51116,35 +50202,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FTDistribution2DVoigt_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FTDistribution2DVoigt *arg1 = (FTDistribution2DVoigt *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FTDistribution2DVoigt_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FTDistribution2DVoigt, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FTDistribution2DVoigt_accept" "', argument " "1"" of type '" "FTDistribution2DVoigt const *""'"); 
-  }
-  arg1 = reinterpret_cast< FTDistribution2DVoigt * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FTDistribution2DVoigt_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FTDistribution2DVoigt const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FTDistribution2DVoigt_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FTDistribution2DVoigt *arg1 = (FTDistribution2DVoigt *) 0 ;
@@ -51466,35 +50523,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IsotropicGaussPeakShape_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IsotropicGaussPeakShape *arg1 = (IsotropicGaussPeakShape *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "IsotropicGaussPeakShape_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IsotropicGaussPeakShape, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IsotropicGaussPeakShape_accept" "', argument " "1"" of type '" "IsotropicGaussPeakShape const *""'"); 
-  }
-  arg1 = reinterpret_cast< IsotropicGaussPeakShape * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IsotropicGaussPeakShape_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((IsotropicGaussPeakShape const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_IsotropicGaussPeakShape_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   IsotropicGaussPeakShape *arg1 = (IsotropicGaussPeakShape *) 0 ;
@@ -51658,35 +50686,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_IsotropicLorentzPeakShape_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IsotropicLorentzPeakShape *arg1 = (IsotropicLorentzPeakShape *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "IsotropicLorentzPeakShape_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IsotropicLorentzPeakShape, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IsotropicLorentzPeakShape_accept" "', argument " "1"" of type '" "IsotropicLorentzPeakShape const *""'"); 
-  }
-  arg1 = reinterpret_cast< IsotropicLorentzPeakShape * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IsotropicLorentzPeakShape_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((IsotropicLorentzPeakShape const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_IsotropicLorentzPeakShape_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   IsotropicLorentzPeakShape *arg1 = (IsotropicLorentzPeakShape *) 0 ;
@@ -51858,35 +50857,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GaussFisherPeakShape_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  GaussFisherPeakShape *arg1 = (GaussFisherPeakShape *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "GaussFisherPeakShape_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_GaussFisherPeakShape, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GaussFisherPeakShape_accept" "', argument " "1"" of type '" "GaussFisherPeakShape const *""'"); 
-  }
-  arg1 = reinterpret_cast< GaussFisherPeakShape * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GaussFisherPeakShape_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((GaussFisherPeakShape const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_GaussFisherPeakShape_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   GaussFisherPeakShape *arg1 = (GaussFisherPeakShape *) 0 ;
@@ -52081,35 +51051,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_LorentzFisherPeakShape_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  LorentzFisherPeakShape *arg1 = (LorentzFisherPeakShape *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "LorentzFisherPeakShape_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_LorentzFisherPeakShape, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LorentzFisherPeakShape_accept" "', argument " "1"" of type '" "LorentzFisherPeakShape const *""'"); 
-  }
-  arg1 = reinterpret_cast< LorentzFisherPeakShape * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LorentzFisherPeakShape_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((LorentzFisherPeakShape const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_LorentzFisherPeakShape_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   LorentzFisherPeakShape *arg1 = (LorentzFisherPeakShape *) 0 ;
@@ -52328,35 +51269,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_MisesFisherGaussPeakShape_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  MisesFisherGaussPeakShape *arg1 = (MisesFisherGaussPeakShape *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "MisesFisherGaussPeakShape_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MisesFisherGaussPeakShape, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MisesFisherGaussPeakShape_accept" "', argument " "1"" of type '" "MisesFisherGaussPeakShape const *""'"); 
-  }
-  arg1 = reinterpret_cast< MisesFisherGaussPeakShape * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MisesFisherGaussPeakShape_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((MisesFisherGaussPeakShape const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_MisesFisherGaussPeakShape_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   MisesFisherGaussPeakShape *arg1 = (MisesFisherGaussPeakShape *) 0 ;
@@ -52567,35 +51479,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_MisesGaussPeakShape_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  MisesGaussPeakShape *arg1 = (MisesGaussPeakShape *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "MisesGaussPeakShape_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MisesGaussPeakShape, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MisesGaussPeakShape_accept" "', argument " "1"" of type '" "MisesGaussPeakShape const *""'"); 
-  }
-  arg1 = reinterpret_cast< MisesGaussPeakShape * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MisesGaussPeakShape_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((MisesGaussPeakShape const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_MisesGaussPeakShape_evaluate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   MisesGaussPeakShape *arg1 = (MisesGaussPeakShape *) 0 ;
@@ -53102,35 +51985,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Interference1DLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Interference1DLattice *arg1 = (Interference1DLattice *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Interference1DLattice_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Interference1DLattice, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interference1DLattice_accept" "', argument " "1"" of type '" "Interference1DLattice const *""'"); 
-  }
-  arg1 = reinterpret_cast< Interference1DLattice * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interference1DLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Interference1DLattice const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Interference1DLattice_setDecayFunction(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Interference1DLattice *arg1 = (Interference1DLattice *) 0 ;
@@ -53337,35 +52191,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Interference2DLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Interference2DLattice *arg1 = (Interference2DLattice *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Interference2DLattice_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Interference2DLattice, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interference2DLattice_accept" "', argument " "1"" of type '" "Interference2DLattice const *""'"); 
-  }
-  arg1 = reinterpret_cast< Interference2DLattice * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interference2DLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Interference2DLattice const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Interference2DLattice_setDecayFunction(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Interference2DLattice *arg1 = (Interference2DLattice *) 0 ;
@@ -53647,35 +52472,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Interference2DParaCrystal_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Interference2DParaCrystal *arg1 = (Interference2DParaCrystal *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Interference2DParaCrystal_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Interference2DParaCrystal, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interference2DParaCrystal_accept" "', argument " "1"" of type '" "Interference2DParaCrystal const *""'"); 
-  }
-  arg1 = reinterpret_cast< Interference2DParaCrystal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interference2DParaCrystal_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Interference2DParaCrystal const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Interference2DParaCrystal_setDomainSizes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Interference2DParaCrystal *arg1 = (Interference2DParaCrystal *) 0 ;
@@ -54256,35 +53052,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Interference2DSuperLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Interference2DSuperLattice *arg1 = (Interference2DSuperLattice *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Interference2DSuperLattice_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Interference2DSuperLattice, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interference2DSuperLattice_accept" "', argument " "1"" of type '" "Interference2DSuperLattice const *""'"); 
-  }
-  arg1 = reinterpret_cast< Interference2DSuperLattice * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interference2DSuperLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Interference2DSuperLattice const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Interference2DSuperLattice_setSubstructureIFF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Interference2DSuperLattice *arg1 = (Interference2DSuperLattice *) 0 ;
@@ -54721,35 +53488,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Interference3DLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Interference3DLattice *arg1 = (Interference3DLattice *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Interference3DLattice_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Interference3DLattice, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interference3DLattice_accept" "', argument " "1"" of type '" "Interference3DLattice const *""'"); 
-  }
-  arg1 = reinterpret_cast< Interference3DLattice * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interference3DLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Interference3DLattice const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Interference3DLattice_setPeakShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Interference3DLattice *arg1 = (Interference3DLattice *) 0 ;
@@ -54971,35 +53709,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_InterferenceFinite2DLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  InterferenceFinite2DLattice *arg1 = (InterferenceFinite2DLattice *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "InterferenceFinite2DLattice_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterferenceFinite2DLattice, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFinite2DLattice_accept" "', argument " "1"" of type '" "InterferenceFinite2DLattice const *""'"); 
-  }
-  arg1 = reinterpret_cast< InterferenceFinite2DLattice * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceFinite2DLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((InterferenceFinite2DLattice const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_InterferenceFinite2DLattice_numberUnitCells1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   InterferenceFinite2DLattice *arg1 = (InterferenceFinite2DLattice *) 0 ;
@@ -55295,35 +54004,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_InterferenceFinite3DLattice_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  InterferenceFinite3DLattice *arg1 = (InterferenceFinite3DLattice *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "InterferenceFinite3DLattice_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterferenceFinite3DLattice, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceFinite3DLattice_accept" "', argument " "1"" of type '" "InterferenceFinite3DLattice const *""'"); 
-  }
-  arg1 = reinterpret_cast< InterferenceFinite3DLattice * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceFinite3DLattice_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((InterferenceFinite3DLattice const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_InterferenceFinite3DLattice_numberUnitCells1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   InterferenceFinite3DLattice *arg1 = (InterferenceFinite3DLattice *) 0 ;
@@ -55663,35 +54343,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_InterferenceHardDisk_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  InterferenceHardDisk *arg1 = (InterferenceHardDisk *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "InterferenceHardDisk_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterferenceHardDisk, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceHardDisk_accept" "', argument " "1"" of type '" "InterferenceHardDisk const *""'"); 
-  }
-  arg1 = reinterpret_cast< InterferenceHardDisk * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceHardDisk_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((InterferenceHardDisk const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_InterferenceHardDisk_getParticleDensity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   InterferenceHardDisk *arg1 = (InterferenceHardDisk *) 0 ;
@@ -55831,35 +54482,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_InterferenceNone_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  InterferenceNone *arg1 = (InterferenceNone *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "InterferenceNone_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterferenceNone, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceNone_accept" "', argument " "1"" of type '" "InterferenceNone const *""'"); 
-  }
-  arg1 = reinterpret_cast< InterferenceNone * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceNone_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((InterferenceNone const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_InterferenceNone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   InterferenceNone *arg1 = (InterferenceNone *) 0 ;
@@ -55969,35 +54591,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_InterferenceRadialParaCrystal_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  InterferenceRadialParaCrystal *arg1 = (InterferenceRadialParaCrystal *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "InterferenceRadialParaCrystal_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterferenceRadialParaCrystal, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceRadialParaCrystal_accept" "', argument " "1"" of type '" "InterferenceRadialParaCrystal const *""'"); 
-  }
-  arg1 = reinterpret_cast< InterferenceRadialParaCrystal * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceRadialParaCrystal_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((InterferenceRadialParaCrystal const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_InterferenceRadialParaCrystal_setKappa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   InterferenceRadialParaCrystal *arg1 = (InterferenceRadialParaCrystal *) 0 ;
@@ -56376,35 +54969,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_InterferenceTwin_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  InterferenceTwin *arg1 = (InterferenceTwin *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "InterferenceTwin_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterferenceTwin, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterferenceTwin_accept" "', argument " "1"" of type '" "InterferenceTwin const *""'"); 
-  }
-  arg1 = reinterpret_cast< InterferenceTwin * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InterferenceTwin_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((InterferenceTwin const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_InterferenceTwin_direction(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   InterferenceTwin *arg1 = (InterferenceTwin *) 0 ;
@@ -56688,35 +55252,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_ParticleLayout_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  ParticleLayout *arg1 = (ParticleLayout *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ParticleLayout_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ParticleLayout, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParticleLayout_accept" "', argument " "1"" of type '" "ParticleLayout const *""'"); 
-  }
-  arg1 = reinterpret_cast< ParticleLayout * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ParticleLayout_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((ParticleLayout const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   ParticleLayout *arg1 = (ParticleLayout *) 0 ;
@@ -57489,35 +56024,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_LayerRoughness_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  LayerRoughness *arg1 = (LayerRoughness *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "LayerRoughness_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_LayerRoughness, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_accept" "', argument " "1"" of type '" "LayerRoughness const *""'"); 
-  }
-  arg1 = reinterpret_cast< LayerRoughness * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((LayerRoughness const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_LayerRoughness_getSpectralFun(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   LayerRoughness *arg1 = (LayerRoughness *) 0 ;
@@ -57957,35 +56463,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Layer_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Layer *arg1 = (Layer *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Layer_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Layer, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Layer_accept" "', argument " "1"" of type '" "Layer const *""'"); 
-  }
-  arg1 = reinterpret_cast< Layer * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Layer_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Layer const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Layer_thickness(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Layer *arg1 = (Layer *) 0 ;
@@ -58329,35 +56806,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_MultiLayer_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  MultiLayer *arg1 = (MultiLayer *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "MultiLayer_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_MultiLayer, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MultiLayer_accept" "', argument " "1"" of type '" "MultiLayer const *""'"); 
-  }
-  arg1 = reinterpret_cast< MultiLayer * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MultiLayer_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((MultiLayer const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_MultiLayer_numberOfLayers(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   MultiLayer *arg1 = (MultiLayer *) 0 ;
@@ -59642,35 +58090,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorAnisoPyramid_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorAnisoPyramid *arg1 = (FormFactorAnisoPyramid *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorAnisoPyramid_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorAnisoPyramid, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorAnisoPyramid_accept" "', argument " "1"" of type '" "FormFactorAnisoPyramid const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorAnisoPyramid * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorAnisoPyramid_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorAnisoPyramid const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorAnisoPyramid_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorAnisoPyramid *arg1 = (FormFactorAnisoPyramid *) 0 ;
@@ -59950,35 +58369,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorBox_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorBox *arg1 = (FormFactorBox *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorBox_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorBox, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorBox_accept" "', argument " "1"" of type '" "FormFactorBox const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorBox * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorBox_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorBox const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorBox_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorBox *arg1 = (FormFactorBox *) 0 ;
@@ -60282,35 +58672,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCantellatedCube_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCantellatedCube *arg1 = (FormFactorCantellatedCube *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCantellatedCube_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCantellatedCube, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCantellatedCube_accept" "', argument " "1"" of type '" "FormFactorCantellatedCube const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCantellatedCube * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCantellatedCube_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCantellatedCube const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorCantellatedCube_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCantellatedCube *arg1 = (FormFactorCantellatedCube *) 0 ;
@@ -60544,35 +58905,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCone_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCone *arg1 = (FormFactorCone *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCone_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCone, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCone_accept" "', argument " "1"" of type '" "FormFactorCone const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCone * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCone_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCone const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorCone_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCone *arg1 = (FormFactorCone *) 0 ;
@@ -60890,35 +59222,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCone6_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCone6 *arg1 = (FormFactorCone6 *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCone6_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCone6, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCone6_accept" "', argument " "1"" of type '" "FormFactorCone6 const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCone6 * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCone6_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCone6 const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorCone6_getBaseEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCone6 *arg1 = (FormFactorCone6 *) 0 ;
@@ -61175,35 +59478,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCosineRippleBox_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCosineRippleBox *arg1 = (FormFactorCosineRippleBox *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCosineRippleBox_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCosineRippleBox, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCosineRippleBox_accept" "', argument " "1"" of type '" "FormFactorCosineRippleBox const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCosineRippleBox * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCosineRippleBox_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCosineRippleBox const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_FormFactorCosineRippleBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCosineRippleBox *arg1 = (FormFactorCosineRippleBox *) 0 ;
@@ -61391,35 +59665,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCosineRippleGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCosineRippleGauss *arg1 = (FormFactorCosineRippleGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCosineRippleGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCosineRippleGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCosineRippleGauss_accept" "', argument " "1"" of type '" "FormFactorCosineRippleGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCosineRippleGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCosineRippleGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCosineRippleGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_FormFactorCosineRippleGauss(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCosineRippleGauss *arg1 = (FormFactorCosineRippleGauss *) 0 ;
@@ -61607,35 +59852,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCosineRippleLorentz_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCosineRippleLorentz *arg1 = (FormFactorCosineRippleLorentz *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCosineRippleLorentz_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCosineRippleLorentz, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCosineRippleLorentz_accept" "', argument " "1"" of type '" "FormFactorCosineRippleLorentz const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCosineRippleLorentz * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCosineRippleLorentz_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCosineRippleLorentz const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_FormFactorCosineRippleLorentz(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCosineRippleLorentz *arg1 = (FormFactorCosineRippleLorentz *) 0 ;
@@ -61837,35 +60053,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCuboctahedron_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCuboctahedron, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCuboctahedron_accept" "', argument " "1"" of type '" "FormFactorCuboctahedron const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCuboctahedron * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCuboctahedron_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCuboctahedron const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorCuboctahedron_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCuboctahedron *arg1 = (FormFactorCuboctahedron *) 0 ;
@@ -62131,35 +60318,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorCylinder_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorCylinder *arg1 = (FormFactorCylinder *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorCylinder_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorCylinder, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorCylinder_accept" "', argument " "1"" of type '" "FormFactorCylinder const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorCylinder * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorCylinder_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorCylinder const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorCylinder_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorCylinder *arg1 = (FormFactorCylinder *) 0 ;
@@ -62426,35 +60584,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorDodecahedron_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorDodecahedron *arg1 = (FormFactorDodecahedron *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorDodecahedron_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorDodecahedron, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorDodecahedron_accept" "', argument " "1"" of type '" "FormFactorDodecahedron const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorDodecahedron * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorDodecahedron_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorDodecahedron const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorDodecahedron_getEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorDodecahedron *arg1 = (FormFactorDodecahedron *) 0 ;
@@ -62665,35 +60794,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorEllipsoidalCylinder_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorEllipsoidalCylinder *arg1 = (FormFactorEllipsoidalCylinder *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorEllipsoidalCylinder_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorEllipsoidalCylinder, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorEllipsoidalCylinder_accept" "', argument " "1"" of type '" "FormFactorEllipsoidalCylinder const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorEllipsoidalCylinder * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorEllipsoidalCylinder_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorEllipsoidalCylinder const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorEllipsoidalCylinder_getRadiusX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorEllipsoidalCylinder *arg1 = (FormFactorEllipsoidalCylinder *) 0 ;
@@ -63075,35 +61175,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorFullSphere_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorFullSphere *arg1 = (FormFactorFullSphere *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorFullSphere_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorFullSphere, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorFullSphere_accept" "', argument " "1"" of type '" "FormFactorFullSphere const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorFullSphere * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorFullSphere_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorFullSphere const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorFullSphere_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorFullSphere *arg1 = (FormFactorFullSphere *) 0 ;
@@ -63427,35 +61498,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorFullSpheroid_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorFullSpheroid *arg1 = (FormFactorFullSpheroid *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorFullSpheroid_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorFullSpheroid, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorFullSpheroid_accept" "', argument " "1"" of type '" "FormFactorFullSpheroid const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorFullSpheroid * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorFullSpheroid_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorFullSpheroid const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorFullSpheroid_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorFullSpheroid *arg1 = (FormFactorFullSpheroid *) 0 ;
@@ -63772,35 +61814,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorHemiEllipsoid_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorHemiEllipsoid *arg1 = (FormFactorHemiEllipsoid *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorHemiEllipsoid_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorHemiEllipsoid, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorHemiEllipsoid_accept" "', argument " "1"" of type '" "FormFactorHemiEllipsoid const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorHemiEllipsoid * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorHemiEllipsoid_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorHemiEllipsoid const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorHemiEllipsoid_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorHemiEllipsoid *arg1 = (FormFactorHemiEllipsoid *) 0 ;
@@ -64082,35 +62095,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorHollowSphere_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorHollowSphere *arg1 = (FormFactorHollowSphere *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorHollowSphere_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorHollowSphere, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorHollowSphere_accept" "', argument " "1"" of type '" "FormFactorHollowSphere const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorHollowSphere * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorHollowSphere_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorHollowSphere const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorHollowSphere_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorHollowSphere *arg1 = (FormFactorHollowSphere *) 0 ;
@@ -64331,35 +62315,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorIcosahedron_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorIcosahedron *arg1 = (FormFactorIcosahedron *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorIcosahedron_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorIcosahedron, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorIcosahedron_accept" "', argument " "1"" of type '" "FormFactorIcosahedron const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorIcosahedron * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorIcosahedron_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorIcosahedron const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorIcosahedron_getEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorIcosahedron *arg1 = (FormFactorIcosahedron *) 0 ;
@@ -64570,35 +62525,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorLongBoxGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorLongBoxGauss *arg1 = (FormFactorLongBoxGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorLongBoxGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorLongBoxGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorLongBoxGauss_accept" "', argument " "1"" of type '" "FormFactorLongBoxGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorLongBoxGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorLongBoxGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorLongBoxGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorLongBoxGauss_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorLongBoxGauss *arg1 = (FormFactorLongBoxGauss *) 0 ;
@@ -64916,35 +62842,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorLongBoxLorentz_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorLongBoxLorentz *arg1 = (FormFactorLongBoxLorentz *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorLongBoxLorentz_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorLongBoxLorentz, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorLongBoxLorentz_accept" "', argument " "1"" of type '" "FormFactorLongBoxLorentz const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorLongBoxLorentz * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorLongBoxLorentz_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorLongBoxLorentz const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorLongBoxLorentz_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorLongBoxLorentz *arg1 = (FormFactorLongBoxLorentz *) 0 ;
@@ -65248,35 +63145,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorPrism3_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorPrism3 *arg1 = (FormFactorPrism3 *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorPrism3_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPrism3, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPrism3_accept" "', argument " "1"" of type '" "FormFactorPrism3 const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorPrism3 * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPrism3_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorPrism3 const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorPrism3_getBaseEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorPrism3 *arg1 = (FormFactorPrism3 *) 0 ;
@@ -65473,35 +63341,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorPrism6_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorPrism6 *arg1 = (FormFactorPrism6 *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorPrism6_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPrism6, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPrism6_accept" "', argument " "1"" of type '" "FormFactorPrism6 const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorPrism6 * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPrism6_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorPrism6 const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorPrism6_getBaseEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorPrism6 *arg1 = (FormFactorPrism6 *) 0 ;
@@ -65712,35 +63551,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorPyramid_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorPyramid *arg1 = (FormFactorPyramid *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorPyramid_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorPyramid, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorPyramid_accept" "', argument " "1"" of type '" "FormFactorPyramid const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorPyramid * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorPyramid_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorPyramid const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorPyramid_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorPyramid *arg1 = (FormFactorPyramid *) 0 ;
@@ -66011,35 +63821,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorSawtoothRippleBox_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorSawtoothRippleBox *arg1 = (FormFactorSawtoothRippleBox *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorSawtoothRippleBox_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorSawtoothRippleBox, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorSawtoothRippleBox_accept" "', argument " "1"" of type '" "FormFactorSawtoothRippleBox const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorSawtoothRippleBox * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorSawtoothRippleBox_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorSawtoothRippleBox const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_FormFactorSawtoothRippleBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorSawtoothRippleBox *arg1 = (FormFactorSawtoothRippleBox *) 0 ;
@@ -66241,35 +64022,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorSawtoothRippleGauss_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorSawtoothRippleGauss *arg1 = (FormFactorSawtoothRippleGauss *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorSawtoothRippleGauss_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorSawtoothRippleGauss, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorSawtoothRippleGauss_accept" "', argument " "1"" of type '" "FormFactorSawtoothRippleGauss const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorSawtoothRippleGauss * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorSawtoothRippleGauss_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorSawtoothRippleGauss const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_FormFactorSawtoothRippleGauss(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorSawtoothRippleGauss *arg1 = (FormFactorSawtoothRippleGauss *) 0 ;
@@ -66471,35 +64223,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorSawtoothRippleLorentz_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorSawtoothRippleLorentz *arg1 = (FormFactorSawtoothRippleLorentz *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorSawtoothRippleLorentz_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorSawtoothRippleLorentz, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorSawtoothRippleLorentz_accept" "', argument " "1"" of type '" "FormFactorSawtoothRippleLorentz const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorSawtoothRippleLorentz * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorSawtoothRippleLorentz_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorSawtoothRippleLorentz const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_delete_FormFactorSawtoothRippleLorentz(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorSawtoothRippleLorentz *arg1 = (FormFactorSawtoothRippleLorentz *) 0 ;
@@ -66687,35 +64410,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorTetrahedron_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorTetrahedron, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTetrahedron_accept" "', argument " "1"" of type '" "FormFactorTetrahedron const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorTetrahedron * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorTetrahedron_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorTetrahedron const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorTetrahedron_getBaseEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorTetrahedron *arg1 = (FormFactorTetrahedron *) 0 ;
@@ -66958,35 +64652,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorTruncatedCube_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorTruncatedCube *arg1 = (FormFactorTruncatedCube *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorTruncatedCube_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorTruncatedCube, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTruncatedCube_accept" "', argument " "1"" of type '" "FormFactorTruncatedCube const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorTruncatedCube * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorTruncatedCube_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorTruncatedCube const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorTruncatedCube_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorTruncatedCube *arg1 = (FormFactorTruncatedCube *) 0 ;
@@ -67220,35 +64885,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorTruncatedSphere_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorTruncatedSphere *arg1 = (FormFactorTruncatedSphere *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorTruncatedSphere_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorTruncatedSphere, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTruncatedSphere_accept" "', argument " "1"" of type '" "FormFactorTruncatedSphere const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorTruncatedSphere * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorTruncatedSphere_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorTruncatedSphere const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorTruncatedSphere_getHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorTruncatedSphere *arg1 = (FormFactorTruncatedSphere *) 0 ;
@@ -67580,35 +65216,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorTruncatedSpheroid_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorTruncatedSpheroid *arg1 = (FormFactorTruncatedSpheroid *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorTruncatedSpheroid_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorTruncatedSpheroid, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorTruncatedSpheroid_accept" "', argument " "1"" of type '" "FormFactorTruncatedSpheroid const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorTruncatedSpheroid * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorTruncatedSpheroid_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorTruncatedSpheroid const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorTruncatedSpheroid_getRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorTruncatedSpheroid *arg1 = (FormFactorTruncatedSpheroid *) 0 ;
@@ -67921,35 +65528,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorGaussSphere_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorGaussSphere *arg1 = (FormFactorGaussSphere *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorGaussSphere_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorGaussSphere, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorGaussSphere_accept" "', argument " "1"" of type '" "FormFactorGaussSphere const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorGaussSphere * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorGaussSphere_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorGaussSphere const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorGaussSphere_getMeanRadius(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorGaussSphere *arg1 = (FormFactorGaussSphere *) 0 ;
@@ -68207,35 +65785,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorSphereGaussianRadius_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorSphereGaussianRadius *arg1 = (FormFactorSphereGaussianRadius *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorSphereGaussianRadius_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorSphereGaussianRadius, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorSphereGaussianRadius_accept" "', argument " "1"" of type '" "FormFactorSphereGaussianRadius const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorSphereGaussianRadius * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorSphereGaussianRadius_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorSphereGaussianRadius const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorSphereGaussianRadius_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorSphereGaussianRadius *arg1 = (FormFactorSphereGaussianRadius *) 0 ;
@@ -68530,35 +66079,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_FormFactorSphereLogNormalRadius_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  FormFactorSphereLogNormalRadius *arg1 = (FormFactorSphereLogNormalRadius *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "FormFactorSphereLogNormalRadius_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_FormFactorSphereLogNormalRadius, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FormFactorSphereLogNormalRadius_accept" "', argument " "1"" of type '" "FormFactorSphereLogNormalRadius const *""'"); 
-  }
-  arg1 = reinterpret_cast< FormFactorSphereLogNormalRadius * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FormFactorSphereLogNormalRadius_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((FormFactorSphereLogNormalRadius const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_FormFactorSphereLogNormalRadius_radialExtension(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorSphereLogNormalRadius *arg1 = (FormFactorSphereLogNormalRadius *) 0 ;
@@ -69045,35 +66565,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Lattice3D_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  Lattice3D *arg1 = (Lattice3D *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "Lattice3D_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Lattice3D, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Lattice3D_accept" "', argument " "1"" of type '" "Lattice3D const *""'"); 
-  }
-  arg1 = reinterpret_cast< Lattice3D * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Lattice3D_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((Lattice3D const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_Lattice3D_transformed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Lattice3D *arg1 = (Lattice3D *) 0 ;
@@ -69737,35 +67228,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_BasicLattice2D_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  BasicLattice2D *arg1 = (BasicLattice2D *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "BasicLattice2D_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_BasicLattice2D, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BasicLattice2D_accept" "', argument " "1"" of type '" "BasicLattice2D const *""'"); 
-  }
-  arg1 = reinterpret_cast< BasicLattice2D * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "BasicLattice2D_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((BasicLattice2D const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_BasicLattice2D_length1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   BasicLattice2D *arg1 = (BasicLattice2D *) 0 ;
@@ -70031,35 +67493,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SquareLattice2D_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SquareLattice2D *arg1 = (SquareLattice2D *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "SquareLattice2D_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SquareLattice2D, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SquareLattice2D_accept" "', argument " "1"" of type '" "SquareLattice2D const *""'"); 
-  }
-  arg1 = reinterpret_cast< SquareLattice2D * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SquareLattice2D_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((SquareLattice2D const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_SquareLattice2D_length1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SquareLattice2D *arg1 = (SquareLattice2D *) 0 ;
@@ -70261,35 +67694,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_HexagonalLattice2D_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  HexagonalLattice2D *arg1 = (HexagonalLattice2D *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "HexagonalLattice2D_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_HexagonalLattice2D, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "HexagonalLattice2D_accept" "', argument " "1"" of type '" "HexagonalLattice2D const *""'"); 
-  }
-  arg1 = reinterpret_cast< HexagonalLattice2D * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "HexagonalLattice2D_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((HexagonalLattice2D const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_HexagonalLattice2D_length1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   HexagonalLattice2D *arg1 = (HexagonalLattice2D *) 0 ;
@@ -72037,11 +69441,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a new  IRotation object that is the current object's inverse. \n"
 		"\n"
 		""},
-	 { "IdentityRotation_accept", _wrap_IdentityRotation_accept, METH_VARARGS, "\n"
-		"IdentityRotation_accept(IdentityRotation self, INodeVisitor * visitor)\n"
-		"void IdentityRotation::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "IdentityRotation_getTransform3D", _wrap_IdentityRotation_getTransform3D, METH_O, "\n"
 		"IdentityRotation_getTransform3D(IdentityRotation self) -> Transform3D\n"
 		"Transform3D IdentityRotation::getTransform3D() const override\n"
@@ -72082,11 +69481,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a new  IRotation object that is the current object's inverse. \n"
 		"\n"
 		""},
-	 { "RotationX_accept", _wrap_RotationX_accept, METH_VARARGS, "\n"
-		"RotationX_accept(RotationX self, INodeVisitor * visitor)\n"
-		"void RotationX::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "RotationX_getAngle", _wrap_RotationX_getAngle, METH_O, "\n"
 		"RotationX_getAngle(RotationX self) -> double\n"
 		"double RotationX::getAngle() const\n"
@@ -72125,11 +69519,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a new  IRotation object that is the current object's inverse. \n"
 		"\n"
 		""},
-	 { "RotationY_accept", _wrap_RotationY_accept, METH_VARARGS, "\n"
-		"RotationY_accept(RotationY self, INodeVisitor * visitor)\n"
-		"void RotationY::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "RotationY_getAngle", _wrap_RotationY_getAngle, METH_O, "\n"
 		"RotationY_getAngle(RotationY self) -> double\n"
 		"double RotationY::getAngle() const\n"
@@ -72168,11 +69557,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a new  IRotation object that is the current object's inverse. \n"
 		"\n"
 		""},
-	 { "RotationZ_accept", _wrap_RotationZ_accept, METH_VARARGS, "\n"
-		"RotationZ_accept(RotationZ self, INodeVisitor * visitor)\n"
-		"void RotationZ::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "RotationZ_getAngle", _wrap_RotationZ_getAngle, METH_O, "\n"
 		"RotationZ_getAngle(RotationZ self) -> double\n"
 		"double RotationZ::getAngle() const\n"
@@ -72211,11 +69595,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a new  IRotation object that is the current object's inverse. \n"
 		"\n"
 		""},
-	 { "RotationEuler_accept", _wrap_RotationEuler_accept, METH_VARARGS, "\n"
-		"RotationEuler_accept(RotationEuler self, INodeVisitor * visitor)\n"
-		"void RotationEuler::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "RotationEuler_getAlpha", _wrap_RotationEuler_getAlpha, METH_O, "\n"
 		"RotationEuler_getAlpha(RotationEuler self) -> double\n"
 		"double RotationEuler::getAlpha() const\n"
@@ -72263,11 +69642,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCrystal_accept", _wrap_FormFactorCrystal_accept, METH_VARARGS, "\n"
-		"FormFactorCrystal_accept(FormFactorCrystal self, INodeVisitor * visitor)\n"
-		"void FormFactorCrystal::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorCrystal_setAmbientMaterial", _wrap_FormFactorCrystal_setAmbientMaterial, METH_VARARGS, "\n"
 		"FormFactorCrystal_setAmbientMaterial(FormFactorCrystal self, Material material)\n"
 		"void FormFactorCrystal::setAmbientMaterial(const Material &material) override\n"
@@ -72334,11 +69708,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorWeighted_accept", _wrap_FormFactorWeighted_accept, METH_VARARGS, "\n"
-		"FormFactorWeighted_accept(FormFactorWeighted self, INodeVisitor * visitor)\n"
-		"void FormFactorWeighted::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorWeighted_radialExtension", _wrap_FormFactorWeighted_radialExtension, METH_O, "\n"
 		"FormFactorWeighted_radialExtension(FormFactorWeighted self) -> double\n"
 		"double FormFactorWeighted::radialExtension() const override\n"
@@ -72403,11 +69772,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Crystal_accept", _wrap_Crystal_accept, METH_VARARGS, "\n"
-		"Crystal_accept(Crystal self, INodeVisitor * visitor)\n"
-		"void Crystal::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Crystal_createTotalFormFactor", _wrap_Crystal_createTotalFormFactor, METH_VARARGS, "\n"
 		"Crystal_createTotalFormFactor(Crystal self, IFormFactor meso_crystal_form_factor, IRotation rotation, R3 translation) -> IFormFactor\n"
 		"IFormFactor * Crystal::createTotalFormFactor(const IFormFactor &meso_crystal_form_factor, const IRotation *rotation, const R3 &translation) const\n"
@@ -72576,11 +69940,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "MesoCrystal_accept", _wrap_MesoCrystal_accept, METH_VARARGS, "\n"
-		"MesoCrystal_accept(MesoCrystal self, INodeVisitor * visitor)\n"
-		"void MesoCrystal::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "MesoCrystal_createSlicedParticle", _wrap_MesoCrystal_createSlicedParticle, METH_VARARGS, "\n"
 		"MesoCrystal_createSlicedParticle(MesoCrystal self, ZLimits const & limits) -> SlicedParticle\n"
 		"SlicedParticle MesoCrystal::createSlicedParticle(const ZLimits &limits) const override\n"
@@ -72628,11 +69987,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Particle_accept", _wrap_Particle_accept, METH_VARARGS, "\n"
-		"Particle_accept(Particle self, INodeVisitor * visitor)\n"
-		"void Particle::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Particle_createSlicedParticle", _wrap_Particle_createSlicedParticle, METH_VARARGS, "\n"
 		"Particle_createSlicedParticle(Particle self, ZLimits const & limits) -> SlicedParticle\n"
 		"SlicedParticle Particle::createSlicedParticle(const ZLimits &limits) const override\n"
@@ -72682,11 +70036,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "ParticleComposition_accept", _wrap_ParticleComposition_accept, METH_VARARGS, "\n"
-		"ParticleComposition_accept(ParticleComposition self, INodeVisitor * visitor)\n"
-		"void ParticleComposition::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "ParticleComposition_createFormFactor", _wrap_ParticleComposition_createFormFactor, METH_O, "\n"
 		"ParticleComposition_createFormFactor(ParticleComposition self) -> IFormFactor\n"
 		"IFormFactor * ParticleComposition::createFormFactor() const override\n"
@@ -72760,11 +70109,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "ParticleCoreShell_accept", _wrap_ParticleCoreShell_accept, METH_VARARGS, "\n"
-		"ParticleCoreShell_accept(ParticleCoreShell self, INodeVisitor * visitor)\n"
-		"void ParticleCoreShell::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "ParticleCoreShell_createSlicedParticle", _wrap_ParticleCoreShell_createSlicedParticle, METH_VARARGS, "\n"
 		"ParticleCoreShell_createSlicedParticle(ParticleCoreShell self, ZLimits const & limits) -> SlicedParticle\n"
 		"SlicedParticle ParticleCoreShell::createSlicedParticle(const ZLimits &limits) const override\n"
@@ -72822,11 +70166,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction1DCauchy * FTDecayFunction1DCauchy::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction1DCauchy_accept", _wrap_FTDecayFunction1DCauchy_accept, METH_VARARGS, "\n"
-		"FTDecayFunction1DCauchy_accept(FTDecayFunction1DCauchy self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction1DCauchy::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction1DCauchy_evaluate", _wrap_FTDecayFunction1DCauchy_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction1DCauchy_evaluate(FTDecayFunction1DCauchy self, double q) -> double\n"
 		"double FTDecayFunction1DCauchy::evaluate(double q) const override\n"
@@ -72851,11 +70190,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction1DGauss * FTDecayFunction1DGauss::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction1DGauss_accept", _wrap_FTDecayFunction1DGauss_accept, METH_VARARGS, "\n"
-		"FTDecayFunction1DGauss_accept(FTDecayFunction1DGauss self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction1DGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction1DGauss_evaluate", _wrap_FTDecayFunction1DGauss_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction1DGauss_evaluate(FTDecayFunction1DGauss self, double q) -> double\n"
 		"double FTDecayFunction1DGauss::evaluate(double q) const override\n"
@@ -72880,11 +70214,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction1DTriangle * FTDecayFunction1DTriangle::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction1DTriangle_accept", _wrap_FTDecayFunction1DTriangle_accept, METH_VARARGS, "\n"
-		"FTDecayFunction1DTriangle_accept(FTDecayFunction1DTriangle self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction1DTriangle::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction1DTriangle_evaluate", _wrap_FTDecayFunction1DTriangle_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction1DTriangle_evaluate(FTDecayFunction1DTriangle self, double q) -> double\n"
 		"double FTDecayFunction1DTriangle::evaluate(double q) const override\n"
@@ -72909,11 +70238,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction1DVoigt * FTDecayFunction1DVoigt::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction1DVoigt_accept", _wrap_FTDecayFunction1DVoigt_accept, METH_VARARGS, "\n"
-		"FTDecayFunction1DVoigt_accept(FTDecayFunction1DVoigt self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction1DVoigt::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction1DVoigt_evaluate", _wrap_FTDecayFunction1DVoigt_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction1DVoigt_evaluate(FTDecayFunction1DVoigt self, double q) -> double\n"
 		"double FTDecayFunction1DVoigt::evaluate(double q) const override\n"
@@ -72987,11 +70311,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction2DCauchy * FTDecayFunction2DCauchy::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction2DCauchy_accept", _wrap_FTDecayFunction2DCauchy_accept, METH_VARARGS, "\n"
-		"FTDecayFunction2DCauchy_accept(FTDecayFunction2DCauchy self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction2DCauchy::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction2DCauchy_evaluate", _wrap_FTDecayFunction2DCauchy_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction2DCauchy_evaluate(FTDecayFunction2DCauchy self, double qx, double qy) -> double\n"
 		"double FTDecayFunction2DCauchy::evaluate(double qx, double qy) const override\n"
@@ -73018,11 +70337,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction2DGauss * FTDecayFunction2DGauss::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction2DGauss_accept", _wrap_FTDecayFunction2DGauss_accept, METH_VARARGS, "\n"
-		"FTDecayFunction2DGauss_accept(FTDecayFunction2DGauss self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction2DGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction2DGauss_evaluate", _wrap_FTDecayFunction2DGauss_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction2DGauss_evaluate(FTDecayFunction2DGauss self, double qx, double qy) -> double\n"
 		"double FTDecayFunction2DGauss::evaluate(double qx, double qy) const override\n"
@@ -73049,11 +70363,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDecayFunction2DVoigt * FTDecayFunction2DVoigt::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDecayFunction2DVoigt_accept", _wrap_FTDecayFunction2DVoigt_accept, METH_VARARGS, "\n"
-		"FTDecayFunction2DVoigt_accept(FTDecayFunction2DVoigt self, INodeVisitor * visitor)\n"
-		"void FTDecayFunction2DVoigt::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDecayFunction2DVoigt_evaluate", _wrap_FTDecayFunction2DVoigt_evaluate, METH_VARARGS, "\n"
 		"FTDecayFunction2DVoigt_evaluate(FTDecayFunction2DVoigt self, double qx, double qy) -> double\n"
 		"double FTDecayFunction2DVoigt::evaluate(double qx, double qy) const override\n"
@@ -73111,11 +70420,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution1DCauchy * FTDistribution1DCauchy::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution1DCauchy_accept", _wrap_FTDistribution1DCauchy_accept, METH_VARARGS, "\n"
-		"FTDistribution1DCauchy_accept(FTDistribution1DCauchy self, INodeVisitor * visitor)\n"
-		"void FTDistribution1DCauchy::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution1DCauchy_evaluate", _wrap_FTDistribution1DCauchy_evaluate, METH_VARARGS, "\n"
 		"FTDistribution1DCauchy_evaluate(FTDistribution1DCauchy self, double q) -> double\n"
 		"double FTDistribution1DCauchy::evaluate(double q) const override\n"
@@ -73149,11 +70453,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution1DGauss * FTDistribution1DGauss::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution1DGauss_accept", _wrap_FTDistribution1DGauss_accept, METH_VARARGS, "\n"
-		"FTDistribution1DGauss_accept(FTDistribution1DGauss self, INodeVisitor * visitor)\n"
-		"void FTDistribution1DGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution1DGauss_evaluate", _wrap_FTDistribution1DGauss_evaluate, METH_VARARGS, "\n"
 		"FTDistribution1DGauss_evaluate(FTDistribution1DGauss self, double q) -> double\n"
 		"double FTDistribution1DGauss::evaluate(double q) const override\n"
@@ -73187,11 +70486,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution1DGate * FTDistribution1DGate::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution1DGate_accept", _wrap_FTDistribution1DGate_accept, METH_VARARGS, "\n"
-		"FTDistribution1DGate_accept(FTDistribution1DGate self, INodeVisitor * visitor)\n"
-		"void FTDistribution1DGate::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution1DGate_evaluate", _wrap_FTDistribution1DGate_evaluate, METH_VARARGS, "\n"
 		"FTDistribution1DGate_evaluate(FTDistribution1DGate self, double q) -> double\n"
 		"double FTDistribution1DGate::evaluate(double q) const override\n"
@@ -73225,11 +70519,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution1DTriangle * FTDistribution1DTriangle::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution1DTriangle_accept", _wrap_FTDistribution1DTriangle_accept, METH_VARARGS, "\n"
-		"FTDistribution1DTriangle_accept(FTDistribution1DTriangle self, INodeVisitor * visitor)\n"
-		"void FTDistribution1DTriangle::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution1DTriangle_evaluate", _wrap_FTDistribution1DTriangle_evaluate, METH_VARARGS, "\n"
 		"FTDistribution1DTriangle_evaluate(FTDistribution1DTriangle self, double q) -> double\n"
 		"double FTDistribution1DTriangle::evaluate(double q) const override\n"
@@ -73263,11 +70552,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution1DCosine * FTDistribution1DCosine::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution1DCosine_accept", _wrap_FTDistribution1DCosine_accept, METH_VARARGS, "\n"
-		"FTDistribution1DCosine_accept(FTDistribution1DCosine self, INodeVisitor * visitor)\n"
-		"void FTDistribution1DCosine::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution1DCosine_evaluate", _wrap_FTDistribution1DCosine_evaluate, METH_VARARGS, "\n"
 		"FTDistribution1DCosine_evaluate(FTDistribution1DCosine self, double q) -> double\n"
 		"double FTDistribution1DCosine::evaluate(double q) const override\n"
@@ -73301,11 +70585,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution1DVoigt * FTDistribution1DVoigt::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution1DVoigt_accept", _wrap_FTDistribution1DVoigt_accept, METH_VARARGS, "\n"
-		"FTDistribution1DVoigt_accept(FTDistribution1DVoigt self, INodeVisitor * visitor)\n"
-		"void FTDistribution1DVoigt::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution1DVoigt_evaluate", _wrap_FTDistribution1DVoigt_evaluate, METH_VARARGS, "\n"
 		"FTDistribution1DVoigt_evaluate(FTDistribution1DVoigt self, double q) -> double\n"
 		"double FTDistribution1DVoigt::evaluate(double q) const override\n"
@@ -73380,11 +70659,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution2DCauchy * FTDistribution2DCauchy::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution2DCauchy_accept", _wrap_FTDistribution2DCauchy_accept, METH_VARARGS, "\n"
-		"FTDistribution2DCauchy_accept(FTDistribution2DCauchy self, INodeVisitor * visitor)\n"
-		"void FTDistribution2DCauchy::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution2DCauchy_evaluate", _wrap_FTDistribution2DCauchy_evaluate, METH_VARARGS, "\n"
 		"FTDistribution2DCauchy_evaluate(FTDistribution2DCauchy self, double qx, double qy) -> double\n"
 		"double FTDistribution2DCauchy::evaluate(double qx, double qy) const override\n"
@@ -73411,11 +70685,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution2DGauss * FTDistribution2DGauss::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution2DGauss_accept", _wrap_FTDistribution2DGauss_accept, METH_VARARGS, "\n"
-		"FTDistribution2DGauss_accept(FTDistribution2DGauss self, INodeVisitor * visitor)\n"
-		"void FTDistribution2DGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution2DGauss_evaluate", _wrap_FTDistribution2DGauss_evaluate, METH_VARARGS, "\n"
 		"FTDistribution2DGauss_evaluate(FTDistribution2DGauss self, double qx, double qy) -> double\n"
 		"double FTDistribution2DGauss::evaluate(double qx, double qy) const override\n"
@@ -73442,11 +70711,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution2DGate * FTDistribution2DGate::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution2DGate_accept", _wrap_FTDistribution2DGate_accept, METH_VARARGS, "\n"
-		"FTDistribution2DGate_accept(FTDistribution2DGate self, INodeVisitor * visitor)\n"
-		"void FTDistribution2DGate::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution2DGate_evaluate", _wrap_FTDistribution2DGate_evaluate, METH_VARARGS, "\n"
 		"FTDistribution2DGate_evaluate(FTDistribution2DGate self, double qx, double qy) -> double\n"
 		"double FTDistribution2DGate::evaluate(double qx, double qy) const override\n"
@@ -73473,11 +70737,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution2DCone * FTDistribution2DCone::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution2DCone_accept", _wrap_FTDistribution2DCone_accept, METH_VARARGS, "\n"
-		"FTDistribution2DCone_accept(FTDistribution2DCone self, INodeVisitor * visitor)\n"
-		"void FTDistribution2DCone::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution2DCone_evaluate", _wrap_FTDistribution2DCone_evaluate, METH_VARARGS, "\n"
 		"FTDistribution2DCone_evaluate(FTDistribution2DCone self, double qx, double qy) -> double\n"
 		"double FTDistribution2DCone::evaluate(double qx, double qy) const override\n"
@@ -73504,11 +70763,6 @@ static PyMethodDef SwigMethods[] = {
 		"FTDistribution2DVoigt * FTDistribution2DVoigt::clone() const override\n"
 		"\n"
 		""},
-	 { "FTDistribution2DVoigt_accept", _wrap_FTDistribution2DVoigt_accept, METH_VARARGS, "\n"
-		"FTDistribution2DVoigt_accept(FTDistribution2DVoigt self, INodeVisitor * visitor)\n"
-		"void FTDistribution2DVoigt::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FTDistribution2DVoigt_evaluate", _wrap_FTDistribution2DVoigt_evaluate, METH_VARARGS, "\n"
 		"FTDistribution2DVoigt_evaluate(FTDistribution2DVoigt self, double qx, double qy) -> double\n"
 		"double FTDistribution2DVoigt::evaluate(double qx, double qy) const override\n"
@@ -73573,11 +70827,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "IsotropicGaussPeakShape_accept", _wrap_IsotropicGaussPeakShape_accept, METH_VARARGS, "\n"
-		"IsotropicGaussPeakShape_accept(IsotropicGaussPeakShape self, INodeVisitor * visitor)\n"
-		"void IsotropicGaussPeakShape::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "IsotropicGaussPeakShape_evaluate", _wrap_IsotropicGaussPeakShape_evaluate, METH_VARARGS, "\n"
 		"IsotropicGaussPeakShape_evaluate(IsotropicGaussPeakShape self, R3 q, R3 q_lattice_point) -> double\n"
 		"double IsotropicGaussPeakShape::evaluate(R3 q, R3 q_lattice_point) const override\n"
@@ -73609,11 +70858,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "IsotropicLorentzPeakShape_accept", _wrap_IsotropicLorentzPeakShape_accept, METH_VARARGS, "\n"
-		"IsotropicLorentzPeakShape_accept(IsotropicLorentzPeakShape self, INodeVisitor * visitor)\n"
-		"void IsotropicLorentzPeakShape::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "IsotropicLorentzPeakShape_evaluate", _wrap_IsotropicLorentzPeakShape_evaluate, METH_VARARGS, "\n"
 		"IsotropicLorentzPeakShape_evaluate(IsotropicLorentzPeakShape self, R3 q, R3 q_lattice_point) -> double\n"
 		"double IsotropicLorentzPeakShape::evaluate(R3 q, R3 q_lattice_point) const override\n"
@@ -73645,11 +70889,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "GaussFisherPeakShape_accept", _wrap_GaussFisherPeakShape_accept, METH_VARARGS, "\n"
-		"GaussFisherPeakShape_accept(GaussFisherPeakShape self, INodeVisitor * visitor)\n"
-		"void GaussFisherPeakShape::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "GaussFisherPeakShape_evaluate", _wrap_GaussFisherPeakShape_evaluate, METH_VARARGS, "\n"
 		"GaussFisherPeakShape_evaluate(GaussFisherPeakShape self, R3 q, R3 q_lattice_point) -> double\n"
 		"double GaussFisherPeakShape::evaluate(R3 q, R3 q_lattice_point) const override\n"
@@ -73688,11 +70927,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "LorentzFisherPeakShape_accept", _wrap_LorentzFisherPeakShape_accept, METH_VARARGS, "\n"
-		"LorentzFisherPeakShape_accept(LorentzFisherPeakShape self, INodeVisitor * visitor)\n"
-		"void LorentzFisherPeakShape::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "LorentzFisherPeakShape_evaluate", _wrap_LorentzFisherPeakShape_evaluate, METH_VARARGS, "\n"
 		"LorentzFisherPeakShape_evaluate(LorentzFisherPeakShape self, R3 q, R3 q_lattice_point) -> double\n"
 		"double LorentzFisherPeakShape::evaluate(R3 q, R3 q_lattice_point) const override\n"
@@ -73731,11 +70965,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "MisesFisherGaussPeakShape_accept", _wrap_MisesFisherGaussPeakShape_accept, METH_VARARGS, "\n"
-		"MisesFisherGaussPeakShape_accept(MisesFisherGaussPeakShape self, INodeVisitor * visitor)\n"
-		"void MisesFisherGaussPeakShape::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "MisesFisherGaussPeakShape_evaluate", _wrap_MisesFisherGaussPeakShape_evaluate, METH_VARARGS, "\n"
 		"MisesFisherGaussPeakShape_evaluate(MisesFisherGaussPeakShape self, R3 q, R3 q_lattice_point) -> double\n"
 		"double MisesFisherGaussPeakShape::evaluate(R3 q, R3 q_lattice_point) const override\n"
@@ -73774,11 +71003,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "MisesGaussPeakShape_accept", _wrap_MisesGaussPeakShape_accept, METH_VARARGS, "\n"
-		"MisesGaussPeakShape_accept(MisesGaussPeakShape self, INodeVisitor * visitor)\n"
-		"void MisesGaussPeakShape::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "MisesGaussPeakShape_evaluate", _wrap_MisesGaussPeakShape_evaluate, METH_VARARGS, "\n"
 		"MisesGaussPeakShape_evaluate(MisesGaussPeakShape self, R3 q, R3 q_lattice_point) -> double\n"
 		"double MisesGaussPeakShape::evaluate(R3 q, R3 q_lattice_point) const override\n"
@@ -73879,11 +71103,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Interference1DLattice_accept", _wrap_Interference1DLattice_accept, METH_VARARGS, "\n"
-		"Interference1DLattice_accept(Interference1DLattice self, INodeVisitor * visitor)\n"
-		"void Interference1DLattice::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Interference1DLattice_setDecayFunction", _wrap_Interference1DLattice_setDecayFunction, METH_VARARGS, "\n"
 		"Interference1DLattice_setDecayFunction(Interference1DLattice self, IFTDecayFunction1D decay)\n"
 		"void Interference1DLattice::setDecayFunction(const IFTDecayFunction1D &decay)\n"
@@ -73936,11 +71155,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Interference2DLattice_accept", _wrap_Interference2DLattice_accept, METH_VARARGS, "\n"
-		"Interference2DLattice_accept(Interference2DLattice self, INodeVisitor * visitor)\n"
-		"void Interference2DLattice::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Interference2DLattice_setDecayFunction", _wrap_Interference2DLattice_setDecayFunction, METH_VARARGS, "\n"
 		"Interference2DLattice_setDecayFunction(Interference2DLattice self, IFTDecayFunction2D decay)\n"
 		"void Interference2DLattice::setDecayFunction(const IFTDecayFunction2D &decay)\n"
@@ -74005,11 +71219,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Interference2DParaCrystal_accept", _wrap_Interference2DParaCrystal_accept, METH_VARARGS, "\n"
-		"Interference2DParaCrystal_accept(Interference2DParaCrystal self, INodeVisitor * visitor)\n"
-		"void Interference2DParaCrystal::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Interference2DParaCrystal_setDomainSizes", _wrap_Interference2DParaCrystal_setDomainSizes, METH_VARARGS, "\n"
 		"Interference2DParaCrystal_setDomainSizes(Interference2DParaCrystal self, double size_1, double size_2)\n"
 		"void Interference2DParaCrystal::setDomainSizes(double size_1, double size_2)\n"
@@ -74158,11 +71367,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Interference2DSuperLattice_accept", _wrap_Interference2DSuperLattice_accept, METH_VARARGS, "\n"
-		"Interference2DSuperLattice_accept(Interference2DSuperLattice self, INodeVisitor * visitor)\n"
-		"void Interference2DSuperLattice::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Interference2DSuperLattice_setSubstructureIFF", _wrap_Interference2DSuperLattice_setSubstructureIFF, METH_VARARGS, "\n"
 		"Interference2DSuperLattice_setSubstructureIFF(Interference2DSuperLattice self, IInterference sub_iff)\n"
 		"void Interference2DSuperLattice::setSubstructureIFF(const IInterference &sub_iff)\n"
@@ -74234,11 +71438,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Interference3DLattice_accept", _wrap_Interference3DLattice_accept, METH_VARARGS, "\n"
-		"Interference3DLattice_accept(Interference3DLattice self, INodeVisitor * visitor)\n"
-		"void Interference3DLattice::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Interference3DLattice_setPeakShape", _wrap_Interference3DLattice_setPeakShape, METH_VARARGS, "\n"
 		"Interference3DLattice_setPeakShape(Interference3DLattice self, IPeakShape peak_shape)\n"
 		"void Interference3DLattice::setPeakShape(const IPeakShape &peak_shape)\n"
@@ -74299,11 +71498,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "InterferenceFinite2DLattice_accept", _wrap_InterferenceFinite2DLattice_accept, METH_VARARGS, "\n"
-		"InterferenceFinite2DLattice_accept(InterferenceFinite2DLattice self, INodeVisitor * visitor)\n"
-		"void InterferenceFinite2DLattice::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "InterferenceFinite2DLattice_numberUnitCells1", _wrap_InterferenceFinite2DLattice_numberUnitCells1, METH_O, "\n"
 		"InterferenceFinite2DLattice_numberUnitCells1(InterferenceFinite2DLattice self) -> unsigned int\n"
 		"unsigned InterferenceFinite2DLattice::numberUnitCells1() const\n"
@@ -74365,11 +71559,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "InterferenceFinite3DLattice_accept", _wrap_InterferenceFinite3DLattice_accept, METH_VARARGS, "\n"
-		"InterferenceFinite3DLattice_accept(InterferenceFinite3DLattice self, INodeVisitor * visitor)\n"
-		"void InterferenceFinite3DLattice::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "InterferenceFinite3DLattice_numberUnitCells1", _wrap_InterferenceFinite3DLattice_numberUnitCells1, METH_O, "\n"
 		"InterferenceFinite3DLattice_numberUnitCells1(InterferenceFinite3DLattice self) -> unsigned int\n"
 		"unsigned InterferenceFinite3DLattice::numberUnitCells1() const\n"
@@ -74426,11 +71615,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "InterferenceHardDisk_accept", _wrap_InterferenceHardDisk_accept, METH_VARARGS, "\n"
-		"InterferenceHardDisk_accept(InterferenceHardDisk self, INodeVisitor * visitor)\n"
-		"void InterferenceHardDisk::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "InterferenceHardDisk_getParticleDensity", _wrap_InterferenceHardDisk_getParticleDensity, METH_O, "\n"
 		"InterferenceHardDisk_getParticleDensity(InterferenceHardDisk self) -> double\n"
 		"double InterferenceHardDisk::getParticleDensity() const override\n"
@@ -74467,11 +71651,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "InterferenceNone_accept", _wrap_InterferenceNone_accept, METH_VARARGS, "\n"
-		"InterferenceNone_accept(InterferenceNone self, INodeVisitor * visitor)\n"
-		"void InterferenceNone::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_InterferenceNone", _wrap_delete_InterferenceNone, METH_O, "delete_InterferenceNone(InterferenceNone self)"},
 	 { "InterferenceNone_swigregister", InterferenceNone_swigregister, METH_O, NULL},
 	 { "InterferenceNone_swiginit", InterferenceNone_swiginit, METH_VARARGS, NULL},
@@ -74503,11 +71682,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "InterferenceRadialParaCrystal_accept", _wrap_InterferenceRadialParaCrystal_accept, METH_VARARGS, "\n"
-		"InterferenceRadialParaCrystal_accept(InterferenceRadialParaCrystal self, INodeVisitor * visitor)\n"
-		"void InterferenceRadialParaCrystal::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "InterferenceRadialParaCrystal_setKappa", _wrap_InterferenceRadialParaCrystal_setKappa, METH_VARARGS, "\n"
 		"InterferenceRadialParaCrystal_setKappa(InterferenceRadialParaCrystal self, double kappa)\n"
 		"void InterferenceRadialParaCrystal::setKappa(double kappa)\n"
@@ -74596,11 +71770,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "InterferenceTwin_accept", _wrap_InterferenceTwin_accept, METH_VARARGS, "\n"
-		"InterferenceTwin_accept(InterferenceTwin self, INodeVisitor * visitor)\n"
-		"void InterferenceTwin::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "InterferenceTwin_direction", _wrap_InterferenceTwin_direction, METH_O, "\n"
 		"InterferenceTwin_direction(InterferenceTwin self) -> R3\n"
 		"R3 InterferenceTwin::direction() const\n"
@@ -74642,11 +71811,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "ParticleLayout_accept", _wrap_ParticleLayout_accept, METH_VARARGS, "\n"
-		"ParticleLayout_accept(ParticleLayout self, INodeVisitor * visitor)\n"
-		"void ParticleLayout::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "ParticleLayout_addParticle", _wrap_ParticleLayout_addParticle, METH_VARARGS, "\n"
 		"ParticleLayout_addParticle(ParticleLayout self, IParticle particle, double abundance=-1.0, R3 position={}, IRotation rotation=IdentityRotation())\n"
 		"void ParticleLayout::addParticle(const IParticle &particle, double abundance=-1.0, R3 position={}, const IRotation &rotation=IdentityRotation())\n"
@@ -74755,11 +71919,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "LayerRoughness_accept", _wrap_LayerRoughness_accept, METH_VARARGS, "\n"
-		"LayerRoughness_accept(LayerRoughness self, INodeVisitor * visitor)\n"
-		"void LayerRoughness::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "LayerRoughness_getSpectralFun", _wrap_LayerRoughness_getSpectralFun, METH_VARARGS, "\n"
 		"LayerRoughness_getSpectralFun(LayerRoughness self, R3 kvec) -> double\n"
 		"double LayerRoughness::getSpectralFun(R3 kvec) const\n"
@@ -74856,11 +72015,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "Layer_accept", _wrap_Layer_accept, METH_VARARGS, "\n"
-		"Layer_accept(Layer self, INodeVisitor * visitor)\n"
-		"void Layer::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Layer_thickness", _wrap_Layer_thickness, METH_O, "\n"
 		"Layer_thickness(Layer self) -> double\n"
 		"double Layer::thickness() const\n"
@@ -74927,11 +72081,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "MultiLayer_accept", _wrap_MultiLayer_accept, METH_VARARGS, "\n"
-		"MultiLayer_accept(MultiLayer self, INodeVisitor * visitor)\n"
-		"void MultiLayer::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "MultiLayer_numberOfLayers", _wrap_MultiLayer_numberOfLayers, METH_O, "\n"
 		"MultiLayer_numberOfLayers(MultiLayer self) -> size_t\n"
 		"size_t MultiLayer::numberOfLayers() const\n"
@@ -75176,11 +72325,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorAnisoPyramid_accept", _wrap_FormFactorAnisoPyramid_accept, METH_VARARGS, "\n"
-		"FormFactorAnisoPyramid_accept(FormFactorAnisoPyramid self, INodeVisitor * visitor)\n"
-		"void FormFactorAnisoPyramid::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorAnisoPyramid_getLength", _wrap_FormFactorAnisoPyramid_getLength, METH_O, "\n"
 		"FormFactorAnisoPyramid_getLength(FormFactorAnisoPyramid self) -> double\n"
 		"double FormFactorAnisoPyramid::getLength() const\n"
@@ -75222,11 +72366,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorBox_accept", _wrap_FormFactorBox_accept, METH_VARARGS, "\n"
-		"FormFactorBox_accept(FormFactorBox self, INodeVisitor * visitor)\n"
-		"void FormFactorBox::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorBox_getLength", _wrap_FormFactorBox_getLength, METH_O, "\n"
 		"FormFactorBox_getLength(FormFactorBox self) -> double\n"
 		"double FormFactorBox::getLength() const\n"
@@ -75279,11 +72418,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCantellatedCube_accept", _wrap_FormFactorCantellatedCube_accept, METH_VARARGS, "\n"
-		"FormFactorCantellatedCube_accept(FormFactorCantellatedCube self, INodeVisitor * visitor)\n"
-		"void FormFactorCantellatedCube::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorCantellatedCube_getLength", _wrap_FormFactorCantellatedCube_getLength, METH_O, "\n"
 		"FormFactorCantellatedCube_getLength(FormFactorCantellatedCube self) -> double\n"
 		"double FormFactorCantellatedCube::getLength() const\n"
@@ -75315,11 +72449,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCone_accept", _wrap_FormFactorCone_accept, METH_VARARGS, "\n"
-		"FormFactorCone_accept(FormFactorCone self, INodeVisitor * visitor)\n"
-		"void FormFactorCone::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorCone_getHeight", _wrap_FormFactorCone_getHeight, METH_O, "\n"
 		"FormFactorCone_getHeight(FormFactorCone self) -> double\n"
 		"double FormFactorCone::getHeight() const\n"
@@ -75370,11 +72499,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCone6_accept", _wrap_FormFactorCone6_accept, METH_VARARGS, "\n"
-		"FormFactorCone6_accept(FormFactorCone6 self, INodeVisitor * visitor)\n"
-		"void FormFactorCone6::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorCone6_getBaseEdge", _wrap_FormFactorCone6_getBaseEdge, METH_O, "\n"
 		"FormFactorCone6_getBaseEdge(FormFactorCone6 self) -> double\n"
 		"double FormFactorCone6::getBaseEdge() const\n"
@@ -75411,11 +72535,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCosineRippleBox_accept", _wrap_FormFactorCosineRippleBox_accept, METH_VARARGS, "\n"
-		"FormFactorCosineRippleBox_accept(FormFactorCosineRippleBox self, INodeVisitor * visitor)\n"
-		"void FormFactorCosineRippleBox::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_FormFactorCosineRippleBox", _wrap_delete_FormFactorCosineRippleBox, METH_O, "delete_FormFactorCosineRippleBox(FormFactorCosineRippleBox self)"},
 	 { "FormFactorCosineRippleBox_swigregister", FormFactorCosineRippleBox_swigregister, METH_O, NULL},
 	 { "FormFactorCosineRippleBox_swiginit", FormFactorCosineRippleBox_swiginit, METH_VARARGS, NULL},
@@ -75437,11 +72556,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCosineRippleGauss_accept", _wrap_FormFactorCosineRippleGauss_accept, METH_VARARGS, "\n"
-		"FormFactorCosineRippleGauss_accept(FormFactorCosineRippleGauss self, INodeVisitor * visitor)\n"
-		"void FormFactorCosineRippleGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_FormFactorCosineRippleGauss", _wrap_delete_FormFactorCosineRippleGauss, METH_O, "delete_FormFactorCosineRippleGauss(FormFactorCosineRippleGauss self)"},
 	 { "FormFactorCosineRippleGauss_swigregister", FormFactorCosineRippleGauss_swigregister, METH_O, NULL},
 	 { "FormFactorCosineRippleGauss_swiginit", FormFactorCosineRippleGauss_swiginit, METH_VARARGS, NULL},
@@ -75463,11 +72577,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCosineRippleLorentz_accept", _wrap_FormFactorCosineRippleLorentz_accept, METH_VARARGS, "\n"
-		"FormFactorCosineRippleLorentz_accept(FormFactorCosineRippleLorentz self, INodeVisitor * visitor)\n"
-		"void FormFactorCosineRippleLorentz::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_FormFactorCosineRippleLorentz", _wrap_delete_FormFactorCosineRippleLorentz, METH_O, "delete_FormFactorCosineRippleLorentz(FormFactorCosineRippleLorentz self)"},
 	 { "FormFactorCosineRippleLorentz_swigregister", FormFactorCosineRippleLorentz_swigregister, METH_O, NULL},
 	 { "FormFactorCosineRippleLorentz_swiginit", FormFactorCosineRippleLorentz_swiginit, METH_VARARGS, NULL},
@@ -75489,11 +72598,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCuboctahedron_accept", _wrap_FormFactorCuboctahedron_accept, METH_VARARGS, "\n"
-		"FormFactorCuboctahedron_accept(FormFactorCuboctahedron self, INodeVisitor * visitor)\n"
-		"void FormFactorCuboctahedron::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorCuboctahedron_getLength", _wrap_FormFactorCuboctahedron_getLength, METH_O, "\n"
 		"FormFactorCuboctahedron_getLength(FormFactorCuboctahedron self) -> double\n"
 		"double FormFactorCuboctahedron::getLength() const\n"
@@ -75535,11 +72639,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorCylinder_accept", _wrap_FormFactorCylinder_accept, METH_VARARGS, "\n"
-		"FormFactorCylinder_accept(FormFactorCylinder self, INodeVisitor * visitor)\n"
-		"void FormFactorCylinder::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorCylinder_getHeight", _wrap_FormFactorCylinder_getHeight, METH_O, "\n"
 		"FormFactorCylinder_getHeight(FormFactorCylinder self) -> double\n"
 		"double FormFactorCylinder::getHeight() const\n"
@@ -75585,11 +72684,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorDodecahedron_accept", _wrap_FormFactorDodecahedron_accept, METH_VARARGS, "\n"
-		"FormFactorDodecahedron_accept(FormFactorDodecahedron self, INodeVisitor * visitor)\n"
-		"void FormFactorDodecahedron::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorDodecahedron_getEdge", _wrap_FormFactorDodecahedron_getEdge, METH_O, "\n"
 		"FormFactorDodecahedron_getEdge(FormFactorDodecahedron self) -> double\n"
 		"double FormFactorDodecahedron::getEdge() const\n"
@@ -75616,11 +72710,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorEllipsoidalCylinder_accept", _wrap_FormFactorEllipsoidalCylinder_accept, METH_VARARGS, "\n"
-		"FormFactorEllipsoidalCylinder_accept(FormFactorEllipsoidalCylinder self, INodeVisitor * visitor)\n"
-		"void FormFactorEllipsoidalCylinder::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorEllipsoidalCylinder_getRadiusX", _wrap_FormFactorEllipsoidalCylinder_getRadiusX, METH_O, "\n"
 		"FormFactorEllipsoidalCylinder_getRadiusX(FormFactorEllipsoidalCylinder self) -> double\n"
 		"double FormFactorEllipsoidalCylinder::getRadiusX() const\n"
@@ -75671,11 +72760,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorFullSphere_accept", _wrap_FormFactorFullSphere_accept, METH_VARARGS, "\n"
-		"FormFactorFullSphere_accept(FormFactorFullSphere self, INodeVisitor * visitor)\n"
-		"void FormFactorFullSphere::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorFullSphere_getRadius", _wrap_FormFactorFullSphere_getRadius, METH_O, "\n"
 		"FormFactorFullSphere_getRadius(FormFactorFullSphere self) -> double\n"
 		"double FormFactorFullSphere::getRadius() const\n"
@@ -75730,11 +72814,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorFullSpheroid_accept", _wrap_FormFactorFullSpheroid_accept, METH_VARARGS, "\n"
-		"FormFactorFullSpheroid_accept(FormFactorFullSpheroid self, INodeVisitor * visitor)\n"
-		"void FormFactorFullSpheroid::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorFullSpheroid_getHeight", _wrap_FormFactorFullSpheroid_getHeight, METH_O, "\n"
 		"FormFactorFullSpheroid_getHeight(FormFactorFullSpheroid self) -> double\n"
 		"double FormFactorFullSpheroid::getHeight() const\n"
@@ -75785,11 +72864,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorHemiEllipsoid_accept", _wrap_FormFactorHemiEllipsoid_accept, METH_VARARGS, "\n"
-		"FormFactorHemiEllipsoid_accept(FormFactorHemiEllipsoid self, INodeVisitor * visitor)\n"
-		"void FormFactorHemiEllipsoid::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorHemiEllipsoid_getHeight", _wrap_FormFactorHemiEllipsoid_getHeight, METH_O, "\n"
 		"FormFactorHemiEllipsoid_getHeight(FormFactorHemiEllipsoid self) -> double\n"
 		"double FormFactorHemiEllipsoid::getHeight() const\n"
@@ -75839,11 +72913,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorHollowSphere_accept", _wrap_FormFactorHollowSphere_accept, METH_VARARGS, "\n"
-		"FormFactorHollowSphere_accept(FormFactorHollowSphere self, INodeVisitor * visitor)\n"
-		"void FormFactorHollowSphere::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorHollowSphere_radialExtension", _wrap_FormFactorHollowSphere_radialExtension, METH_O, "\n"
 		"FormFactorHollowSphere_radialExtension(FormFactorHollowSphere self) -> double\n"
 		"double FormFactorHollowSphere::radialExtension() const override\n"
@@ -75879,11 +72948,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorIcosahedron_accept", _wrap_FormFactorIcosahedron_accept, METH_VARARGS, "\n"
-		"FormFactorIcosahedron_accept(FormFactorIcosahedron self, INodeVisitor * visitor)\n"
-		"void FormFactorIcosahedron::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorIcosahedron_getEdge", _wrap_FormFactorIcosahedron_getEdge, METH_O, "\n"
 		"FormFactorIcosahedron_getEdge(FormFactorIcosahedron self) -> double\n"
 		"double FormFactorIcosahedron::getEdge() const\n"
@@ -75910,11 +72974,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorLongBoxGauss_accept", _wrap_FormFactorLongBoxGauss_accept, METH_VARARGS, "\n"
-		"FormFactorLongBoxGauss_accept(FormFactorLongBoxGauss self, INodeVisitor * visitor)\n"
-		"void FormFactorLongBoxGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorLongBoxGauss_getLength", _wrap_FormFactorLongBoxGauss_getLength, METH_O, "\n"
 		"FormFactorLongBoxGauss_getLength(FormFactorLongBoxGauss self) -> double\n"
 		"double FormFactorLongBoxGauss::getLength() const\n"
@@ -75965,11 +73024,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorLongBoxLorentz_accept", _wrap_FormFactorLongBoxLorentz_accept, METH_VARARGS, "\n"
-		"FormFactorLongBoxLorentz_accept(FormFactorLongBoxLorentz self, INodeVisitor * visitor)\n"
-		"void FormFactorLongBoxLorentz::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorLongBoxLorentz_getLength", _wrap_FormFactorLongBoxLorentz_getLength, METH_O, "\n"
 		"FormFactorLongBoxLorentz_getLength(FormFactorLongBoxLorentz self) -> double\n"
 		"double FormFactorLongBoxLorentz::getLength() const\n"
@@ -76020,11 +73074,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorPrism3_accept", _wrap_FormFactorPrism3_accept, METH_VARARGS, "\n"
-		"FormFactorPrism3_accept(FormFactorPrism3 self, INodeVisitor * visitor)\n"
-		"void FormFactorPrism3::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorPrism3_getBaseEdge", _wrap_FormFactorPrism3_getBaseEdge, METH_O, "\n"
 		"FormFactorPrism3_getBaseEdge(FormFactorPrism3 self) -> double\n"
 		"double FormFactorPrism3::getBaseEdge() const\n"
@@ -76051,11 +73100,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorPrism6_accept", _wrap_FormFactorPrism6_accept, METH_VARARGS, "\n"
-		"FormFactorPrism6_accept(FormFactorPrism6 self, INodeVisitor * visitor)\n"
-		"void FormFactorPrism6::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorPrism6_getBaseEdge", _wrap_FormFactorPrism6_getBaseEdge, METH_O, "\n"
 		"FormFactorPrism6_getBaseEdge(FormFactorPrism6 self) -> double\n"
 		"double FormFactorPrism6::getBaseEdge() const\n"
@@ -76082,11 +73126,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorPyramid_accept", _wrap_FormFactorPyramid_accept, METH_VARARGS, "\n"
-		"FormFactorPyramid_accept(FormFactorPyramid self, INodeVisitor * visitor)\n"
-		"void FormFactorPyramid::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorPyramid_getHeight", _wrap_FormFactorPyramid_getHeight, METH_O, "\n"
 		"FormFactorPyramid_getHeight(FormFactorPyramid self) -> double\n"
 		"double FormFactorPyramid::getHeight() const\n"
@@ -76123,11 +73162,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorSawtoothRippleBox_accept", _wrap_FormFactorSawtoothRippleBox_accept, METH_VARARGS, "\n"
-		"FormFactorSawtoothRippleBox_accept(FormFactorSawtoothRippleBox self, INodeVisitor * visitor)\n"
-		"void FormFactorSawtoothRippleBox::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_FormFactorSawtoothRippleBox", _wrap_delete_FormFactorSawtoothRippleBox, METH_O, "delete_FormFactorSawtoothRippleBox(FormFactorSawtoothRippleBox self)"},
 	 { "FormFactorSawtoothRippleBox_swigregister", FormFactorSawtoothRippleBox_swigregister, METH_O, NULL},
 	 { "FormFactorSawtoothRippleBox_swiginit", FormFactorSawtoothRippleBox_swiginit, METH_VARARGS, NULL},
@@ -76149,11 +73183,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorSawtoothRippleGauss_accept", _wrap_FormFactorSawtoothRippleGauss_accept, METH_VARARGS, "\n"
-		"FormFactorSawtoothRippleGauss_accept(FormFactorSawtoothRippleGauss self, INodeVisitor * visitor)\n"
-		"void FormFactorSawtoothRippleGauss::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_FormFactorSawtoothRippleGauss", _wrap_delete_FormFactorSawtoothRippleGauss, METH_O, "delete_FormFactorSawtoothRippleGauss(FormFactorSawtoothRippleGauss self)"},
 	 { "FormFactorSawtoothRippleGauss_swigregister", FormFactorSawtoothRippleGauss_swigregister, METH_O, NULL},
 	 { "FormFactorSawtoothRippleGauss_swiginit", FormFactorSawtoothRippleGauss_swiginit, METH_VARARGS, NULL},
@@ -76175,11 +73204,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorSawtoothRippleLorentz_accept", _wrap_FormFactorSawtoothRippleLorentz_accept, METH_VARARGS, "\n"
-		"FormFactorSawtoothRippleLorentz_accept(FormFactorSawtoothRippleLorentz self, INodeVisitor * visitor)\n"
-		"void FormFactorSawtoothRippleLorentz::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "delete_FormFactorSawtoothRippleLorentz", _wrap_delete_FormFactorSawtoothRippleLorentz, METH_O, "delete_FormFactorSawtoothRippleLorentz(FormFactorSawtoothRippleLorentz self)"},
 	 { "FormFactorSawtoothRippleLorentz_swigregister", FormFactorSawtoothRippleLorentz_swigregister, METH_O, NULL},
 	 { "FormFactorSawtoothRippleLorentz_swiginit", FormFactorSawtoothRippleLorentz_swiginit, METH_VARARGS, NULL},
@@ -76201,11 +73225,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorTetrahedron_accept", _wrap_FormFactorTetrahedron_accept, METH_VARARGS, "\n"
-		"FormFactorTetrahedron_accept(FormFactorTetrahedron self, INodeVisitor * visitor)\n"
-		"void FormFactorTetrahedron::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorTetrahedron_getBaseEdge", _wrap_FormFactorTetrahedron_getBaseEdge, METH_O, "\n"
 		"FormFactorTetrahedron_getBaseEdge(FormFactorTetrahedron self) -> double\n"
 		"double FormFactorTetrahedron::getBaseEdge() const\n"
@@ -76242,11 +73261,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorTruncatedCube_accept", _wrap_FormFactorTruncatedCube_accept, METH_VARARGS, "\n"
-		"FormFactorTruncatedCube_accept(FormFactorTruncatedCube self, INodeVisitor * visitor)\n"
-		"void FormFactorTruncatedCube::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorTruncatedCube_getLength", _wrap_FormFactorTruncatedCube_getLength, METH_O, "\n"
 		"FormFactorTruncatedCube_getLength(FormFactorTruncatedCube self) -> double\n"
 		"double FormFactorTruncatedCube::getLength() const\n"
@@ -76278,11 +73292,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorTruncatedSphere_accept", _wrap_FormFactorTruncatedSphere_accept, METH_VARARGS, "\n"
-		"FormFactorTruncatedSphere_accept(FormFactorTruncatedSphere self, INodeVisitor * visitor)\n"
-		"void FormFactorTruncatedSphere::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorTruncatedSphere_getHeight", _wrap_FormFactorTruncatedSphere_getHeight, METH_O, "\n"
 		"FormFactorTruncatedSphere_getHeight(FormFactorTruncatedSphere self) -> double\n"
 		"double FormFactorTruncatedSphere::getHeight() const\n"
@@ -76333,11 +73342,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorTruncatedSpheroid_accept", _wrap_FormFactorTruncatedSpheroid_accept, METH_VARARGS, "\n"
-		"FormFactorTruncatedSpheroid_accept(FormFactorTruncatedSpheroid self, INodeVisitor * visitor)\n"
-		"void FormFactorTruncatedSpheroid::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorTruncatedSpheroid_getRadius", _wrap_FormFactorTruncatedSpheroid_getRadius, METH_O, "\n"
 		"FormFactorTruncatedSpheroid_getRadius(FormFactorTruncatedSpheroid self) -> double\n"
 		"double FormFactorTruncatedSpheroid::getRadius() const\n"
@@ -76393,11 +73397,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorGaussSphere_accept", _wrap_FormFactorGaussSphere_accept, METH_VARARGS, "\n"
-		"FormFactorGaussSphere_accept(FormFactorGaussSphere self, INodeVisitor * visitor)\n"
-		"void FormFactorGaussSphere::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorGaussSphere_getMeanRadius", _wrap_FormFactorGaussSphere_getMeanRadius, METH_O, "\n"
 		"FormFactorGaussSphere_getMeanRadius(FormFactorGaussSphere self) -> double\n"
 		"double FormFactorGaussSphere::getMeanRadius() const\n"
@@ -76438,11 +73437,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorSphereGaussianRadius_accept", _wrap_FormFactorSphereGaussianRadius_accept, METH_VARARGS, "\n"
-		"FormFactorSphereGaussianRadius_accept(FormFactorSphereGaussianRadius self, INodeVisitor * visitor)\n"
-		"void FormFactorSphereGaussianRadius::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorSphereGaussianRadius_radialExtension", _wrap_FormFactorSphereGaussianRadius_radialExtension, METH_O, "\n"
 		"FormFactorSphereGaussianRadius_radialExtension(FormFactorSphereGaussianRadius self) -> double\n"
 		"double FormFactorSphereGaussianRadius::radialExtension() const override\n"
@@ -76478,11 +73472,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a clone of this  ISampleNode object. \n"
 		"\n"
 		""},
-	 { "FormFactorSphereLogNormalRadius_accept", _wrap_FormFactorSphereLogNormalRadius_accept, METH_VARARGS, "\n"
-		"FormFactorSphereLogNormalRadius_accept(FormFactorSphereLogNormalRadius self, INodeVisitor * visitor)\n"
-		"void FormFactorSphereLogNormalRadius::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "FormFactorSphereLogNormalRadius_radialExtension", _wrap_FormFactorSphereLogNormalRadius_radialExtension, METH_O, "\n"
 		"FormFactorSphereLogNormalRadius_radialExtension(FormFactorSphereLogNormalRadius self) -> double\n"
 		"double FormFactorSphereLogNormalRadius::radialExtension() const override\n"
@@ -76554,11 +73543,6 @@ static PyMethodDef SwigMethods[] = {
 		"Lattice3D::~Lattice3D() override\n"
 		"\n"
 		""},
-	 { "Lattice3D_accept", _wrap_Lattice3D_accept, METH_VARARGS, "\n"
-		"Lattice3D_accept(Lattice3D self, INodeVisitor * visitor)\n"
-		"void Lattice3D::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "Lattice3D_transformed", _wrap_Lattice3D_transformed, METH_VARARGS, "\n"
 		"Lattice3D_transformed(Lattice3D self, Transform3D transform) -> Lattice3D\n"
 		"Lattice3D Lattice3D::transformed(const Transform3D &transform) const\n"
@@ -76692,11 +73676,6 @@ static PyMethodDef SwigMethods[] = {
 		"BasicLattice2D * BasicLattice2D::clone() const override\n"
 		"\n"
 		""},
-	 { "BasicLattice2D_accept", _wrap_BasicLattice2D_accept, METH_VARARGS, "\n"
-		"BasicLattice2D_accept(BasicLattice2D self, INodeVisitor * visitor)\n"
-		"void BasicLattice2D::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "BasicLattice2D_length1", _wrap_BasicLattice2D_length1, METH_O, "\n"
 		"BasicLattice2D_length1(BasicLattice2D self) -> double\n"
 		"double BasicLattice2D::length1() const override\n"
@@ -76735,11 +73714,6 @@ static PyMethodDef SwigMethods[] = {
 		"SquareLattice2D * SquareLattice2D::clone() const override\n"
 		"\n"
 		""},
-	 { "SquareLattice2D_accept", _wrap_SquareLattice2D_accept, METH_VARARGS, "\n"
-		"SquareLattice2D_accept(SquareLattice2D self, INodeVisitor * visitor)\n"
-		"void SquareLattice2D::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "SquareLattice2D_length1", _wrap_SquareLattice2D_length1, METH_O, "\n"
 		"SquareLattice2D_length1(SquareLattice2D self) -> double\n"
 		"double SquareLattice2D::length1() const override\n"
@@ -76778,11 +73752,6 @@ static PyMethodDef SwigMethods[] = {
 		"HexagonalLattice2D * HexagonalLattice2D::clone() const override\n"
 		"\n"
 		""},
-	 { "HexagonalLattice2D_accept", _wrap_HexagonalLattice2D_accept, METH_VARARGS, "\n"
-		"HexagonalLattice2D_accept(HexagonalLattice2D self, INodeVisitor * visitor)\n"
-		"void HexagonalLattice2D::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
 	 { "HexagonalLattice2D_length1", _wrap_HexagonalLattice2D_length1, METH_O, "\n"
 		"HexagonalLattice2D_length1(HexagonalLattice2D self) -> double\n"
 		"double HexagonalLattice2D::length1() const override\n"
@@ -78242,7 +75211,6 @@ static swig_type_info _swigt__p_IFormFactorPolyhedron = {"_p_IFormFactorPolyhedr
 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};
 static swig_type_info _swigt__p_INode = {"_p_INode", "INode *|std::vector< INode * >::value_type|std::vector< INode const * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_INodeVisitor = {"_p_INodeVisitor", "INodeVisitor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IParticle = {"_p_IParticle", "IParticle *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IPeakShape = {"_p_IPeakShape", "IPeakShape *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IProfileRectangularRipple = {"_p_IProfileRectangularRipple", "IProfileRectangularRipple *", 0, 0, (void*)0, 0};
@@ -78427,7 +75395,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_IFormFactorPrism,
   &_swigt__p_IInterference,
   &_swigt__p_INode,
-  &_swigt__p_INodeVisitor,
   &_swigt__p_IParticle,
   &_swigt__p_IPeakShape,
   &_swigt__p_IProfileRectangularRipple,
@@ -78612,7 +75579,6 @@ static swig_cast_info _swigc__p_IFormFactorPolyhedron[] = {  {&_swigt__p_IFormFa
 static swig_cast_info _swigc__p_IFormFactorPrism[] = {  {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactorPrism, 0, 0},  {&_swigt__p_IFormFactorPrism, 0, 0, 0},  {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactorPrism, 0, 0},  {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactorPrism, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IInterference[] = {  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_IInterference, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_IInterference, 0, 0},  {&_swigt__p_IInterference, 0, 0, 0},  {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_IInterference, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INode, 0, 0},  {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INode, 0, 0},  {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0},  {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INode, 0, 0},  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_IBornFF, _p_IBornFFTo_p_INode, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INode, 0, 0},  {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INode, 0, 0},  {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INode, 0, 0},  {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INode, 0, 0},  {&_swigt__p_IFormFactorPolyhedron, _p_IFormFactorPolyhedronTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INode, 0, 0},  {&_swigt__p_IFormFactorPrism, _p_IFormFactorPrismTo_p_INode, 0, 0},  {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INode, 0, 0},  {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INode, 0, 0},  {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0},  {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INode, 0, 0},  {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INode, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INode, 0, 0},  {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INode, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INode, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INode, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0},  {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INode, 0, 0},  {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INode, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0},  {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCantellatedCube, _p_FormFactorCantellatedCubeTo_p_INode, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INode, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0},  {&_swigt__p_InterferenceTwin, _p_InterferenceTwinTo_p_INode, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0},  {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INode, 0, 0},  {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INode, 0, 0},  {&_swigt__p_FormFactorSawtoothRippleBox, _p_FormFactorSawtoothRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCosineRippleBox, _p_FormFactorCosineRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0},  {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INode, 0, 0},  {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INode, 0, 0},  {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INode, 0, 0},  {&_swigt__p_FormFactorSawtoothRippleGauss, _p_FormFactorSawtoothRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCosineRippleGauss, _p_FormFactorCosineRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INode, 0, 0},  {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0},  {&_swigt__p_InterferenceRadialParaCrystal, _p_InterferenceRadialParaCrystalTo_p_INode, 0, 0},  {&_swigt__p_Interference2DParaCrystal, _p_Interference2DParaCrystalTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0},  {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0},  {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0},  {&_swigt__p_FormFactorHollowSphere, _p_FormFactorHollowSphereTo_p_INode, 0, 0},  {&_swigt__p_FormFactorGaussSphere, _p_FormFactorGaussSphereTo_p_INode, 0, 0},  {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INode, 0, 0},  {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INode, 0, 0},  {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INode, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0},  {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INode, 0, 0},  {&_swigt__p_FormFactorCosineRippleLorentz, _p_FormFactorCosineRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_FormFactorSawtoothRippleLorentz, _p_FormFactorSawtoothRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_InterferenceFinite3DLattice, _p_InterferenceFinite3DLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference3DLattice, _p_Interference3DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0},  {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INode, 0, 0},  {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INode, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INodeVisitor[] = {  {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IParticle[] = {  {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IParticle, 0, 0},  {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IParticle, 0, 0},  {&_swigt__p_IParticle, 0, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0},  {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IParticle, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IPeakShape[] = {  {&_swigt__p_IPeakShape, 0, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_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_IProfileRectangularRipple[] = {  {&_swigt__p_IProfileRectangularRipple, 0, 0, 0},{0, 0, 0, 0}};
@@ -78797,7 +75763,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_IFormFactorPrism,
   _swigc__p_IInterference,
   _swigc__p_INode,
-  _swigc__p_INodeVisitor,
   _swigc__p_IParticle,
   _swigc__p_IPeakShape,
   _swigc__p_IProfileRectangularRipple,
diff --git a/auto/Wrap/libBornAgainSample_wrap.h b/auto/Wrap/libBornAgainSample_wrap.h
index cd52dc25340dd1111d56dc7cf062cc97f7e1bf5a..b86f618c46e63f9f59cdc051af15b1fd183b8c29 100644
--- a/auto/Wrap/libBornAgainSample_wrap.h
+++ b/auto/Wrap/libBornAgainSample_wrap.h
@@ -23,7 +23,6 @@ public:
     virtual ~SwigDirector_ISampleNode();
     virtual ISampleNode *clone() const;
     virtual void transferToCPP();
-    virtual void accept(INodeVisitor *visitor) const;
     virtual std::vector< INode const *, std::allocator< INode const * > > getChildren() const;
     virtual std::string className() const;
     virtual Material const *material() const;
@@ -57,7 +56,7 @@ private:
       return method;
     }
 private:
-    mutable swig::SwigVar_PyObject vtable[6];
+    mutable swig::SwigVar_PyObject vtable[5];
 #endif
 
 };
@@ -71,7 +70,6 @@ public:
     virtual ~SwigDirector_IFormFactor();
     virtual IFormFactor *clone() const;
     virtual void transferToCPP();
-    virtual void accept(INodeVisitor *visitor) const;
     virtual std::vector< INode const *, std::allocator< INode const * > > getChildren() const;
     virtual std::string className() const;
     virtual Material const *material() const;
@@ -119,7 +117,7 @@ private:
       return method;
     }
 private:
-    mutable swig::SwigVar_PyObject vtable[14];
+    mutable swig::SwigVar_PyObject vtable[13];
 #endif
 
 };
@@ -133,7 +131,6 @@ public:
     virtual ~SwigDirector_IBornFF();
     virtual IBornFF *clone() const;
     virtual void transferToCPP();
-    virtual void accept(INodeVisitor *visitor) const;
     virtual std::vector< INode const *, std::allocator< INode const * > > getChildren() const;
     virtual std::string className() const;
     virtual Material const *material() const;
@@ -182,7 +179,7 @@ private:
       return method;
     }
 private:
-    mutable swig::SwigVar_PyObject vtable[15];
+    mutable swig::SwigVar_PyObject vtable[14];
 #endif
 
 };