From 7b5011b7b529abfe177417fdafa5e918567ef14e Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Tue, 19 Jul 2016 15:35:25 +0200
Subject: [PATCH] forward class definitions for visitor classes in separate
 statements

---
 Core/Export/PyGenVisitor.cpp          |   7 +-
 Core/Export/PyGenVisitor.h            |  87 ++---
 Core/Visitors/ISampleVisitor.h        | 264 +++++++++-----
 Core/Visitors/SampleMaterialVisitor.h | 174 +++++----
 Core/Visitors/SamplePrintVisitor.h    | 170 ++++-----
 auto/Wrap/doxygen_core.i              | 496 +++++++++++++-------------
 auto/Wrap/libBornAgainCore.py         |  10 +-
 auto/Wrap/libBornAgainCore_wrap.cpp   |  10 +-
 8 files changed, 654 insertions(+), 564 deletions(-)

diff --git a/Core/Export/PyGenVisitor.cpp b/Core/Export/PyGenVisitor.cpp
index d5365560d8e..cbdfc489ff8 100644
--- a/Core/Export/PyGenVisitor.cpp
+++ b/Core/Export/PyGenVisitor.cpp
@@ -203,6 +203,10 @@ void PyGenVisitor::visit(const Layer* sample)
     m_label->setLabel(sample);
 }
 
+void PyGenVisitor::visit(const LayerInterface*)
+{
+}
+
 void PyGenVisitor::visit(const LayerRoughness* sample)
 {
     m_label->setLabel(sample);
@@ -218,9 +222,8 @@ void PyGenVisitor::visit(const ParticleComposition* sample)
     m_label->setLabel(sample);
 }
 
-void PyGenVisitor::visit(const MesoCrystal* sample)
+void PyGenVisitor::visit(const MesoCrystal*)
 {
-    (void)sample;
     throw Exceptions::NotImplementedException("PyGenVisitor::visit(const MesoCrystal* sample): "
                                               "not implemented!");
 }
diff --git a/Core/Export/PyGenVisitor.h b/Core/Export/PyGenVisitor.h
index 108dfe43d4d..bd95ac5711c 100644
--- a/Core/Export/PyGenVisitor.h
+++ b/Core/Export/PyGenVisitor.h
@@ -19,6 +19,7 @@
 #include "ISampleVisitor.h"
 #include <string>
 
+class GISASSimulation;
 class SampleLabelHandler;
 
 class BA_CORE_API_ PyGenVisitor : public ISampleVisitor
@@ -30,50 +31,50 @@ public:
     using ISampleVisitor::visit;
 
     std::string writePyScript(
-        const class GISASSimulation* simulation, const std::string& output_filename);
-    virtual void visit(const FormFactorAnisoPyramid* sample);
-    virtual void visit(const FormFactorBox* sample);
-    virtual void visit(const FormFactorCone* sample);
-    virtual void visit(const FormFactorCone6* sample);
-    virtual void visit(const FormFactorCuboctahedron* sample);
-    virtual void visit(const FormFactorCylinder* sample);
-    virtual void visit(const FormFactorDodecahedron* sample);
-    virtual void visit(const FormFactorEllipsoidalCylinder* sample);
-    virtual void visit(const FormFactorFullSphere* sample);
-    virtual void visit(const FormFactorFullSpheroid* sample);
-    virtual void visit(const FormFactorGauss* sample);
-    virtual void visit(const FormFactorHemiEllipsoid* sample);
-    virtual void visit(const FormFactorIcosahedron* sample);
-    virtual void visit(const FormFactorLorentz* sample);
-    virtual void visit(const FormFactorPrism3* sample);
-    virtual void visit(const FormFactorPrism6* sample);
-    virtual void visit(const FormFactorPyramid* sample);
-    virtual void visit(const FormFactorRipple1* sample);
-    virtual void visit(const FormFactorRipple2* sample);
-    virtual void visit(const FormFactorTetrahedron* sample);
-    virtual void visit(const FormFactorTruncatedCube* sample);
-    virtual void visit(const FormFactorTruncatedSphere* sample);
-    virtual void visit(const FormFactorTruncatedSpheroid* sample);
-    virtual void visit(const InterferenceFunctionNone* sample);
-    virtual void visit(const InterferenceFunction1DLattice* sample);
-    virtual void visit(const InterferenceFunctionRadialParaCrystal* sample);
-    virtual void visit(const InterferenceFunction2DLattice* sample);
-    virtual void visit(const InterferenceFunction2DParaCrystal* sample);
-    virtual void visit(const Layer* sample);
-    virtual void visit(const LayerInterface* sample){ (void)sample; }
-    virtual void visit(const LayerRoughness* sample);
-    virtual void visit(const MultiLayer* sample);
-    virtual void visit(const ParticleComposition* sample);
-    virtual void visit(const MesoCrystal* sample);
-    virtual void visit(const Particle* sample);
-    virtual void visit(const ParticleDistribution* sample);
-    virtual void visit(const ParticleCoreShell* sample);
-    virtual void visit(const ParticleLayout* sample);
+        const GISASSimulation* simulation, const std::string& output_filename);
+    virtual void visit(const FormFactorAnisoPyramid*);
+    virtual void visit(const FormFactorBox*);
+    virtual void visit(const FormFactorCone*);
+    virtual void visit(const FormFactorCone6*);
+    virtual void visit(const FormFactorCuboctahedron*);
+    virtual void visit(const FormFactorCylinder*);
+    virtual void visit(const FormFactorDodecahedron*);
+    virtual void visit(const FormFactorEllipsoidalCylinder*);
+    virtual void visit(const FormFactorFullSphere*);
+    virtual void visit(const FormFactorFullSpheroid*);
+    virtual void visit(const FormFactorGauss*);
+    virtual void visit(const FormFactorHemiEllipsoid*);
+    virtual void visit(const FormFactorIcosahedron*);
+    virtual void visit(const FormFactorLorentz*);
+    virtual void visit(const FormFactorPrism3*);
+    virtual void visit(const FormFactorPrism6*);
+    virtual void visit(const FormFactorPyramid*);
+    virtual void visit(const FormFactorRipple1*);
+    virtual void visit(const FormFactorRipple2*);
+    virtual void visit(const FormFactorTetrahedron*);
+    virtual void visit(const FormFactorTruncatedCube*);
+    virtual void visit(const FormFactorTruncatedSphere*);
+    virtual void visit(const FormFactorTruncatedSpheroid*);
+    virtual void visit(const InterferenceFunctionNone*);
+    virtual void visit(const InterferenceFunction1DLattice*);
+    virtual void visit(const InterferenceFunctionRadialParaCrystal*);
+    virtual void visit(const InterferenceFunction2DLattice*);
+    virtual void visit(const InterferenceFunction2DParaCrystal*);
+    virtual void visit(const Layer*);
+    virtual void visit(const LayerInterface*);
+    virtual void visit(const LayerRoughness*);
+    virtual void visit(const MultiLayer*);
+    virtual void visit(const ParticleComposition*);
+    virtual void visit(const MesoCrystal*);
+    virtual void visit(const Particle*);
+    virtual void visit(const ParticleDistribution*);
+    virtual void visit(const ParticleCoreShell*);
+    virtual void visit(const ParticleLayout*);
 
-    virtual void visit(const RotationX* sample);
-    virtual void visit(const RotationY* sample);
-    virtual void visit(const RotationZ* sample);
-    virtual void visit(const RotationEuler* sample);
+    virtual void visit(const RotationX*);
+    virtual void visit(const RotationY*);
+    virtual void visit(const RotationZ*);
+    virtual void visit(const RotationEuler*);
 
     std::string definePreamble() const;
     std::string defineGetSimulation(const GISASSimulation* simulation) const;
diff --git a/Core/Visitors/ISampleVisitor.h b/Core/Visitors/ISampleVisitor.h
index 06f1e69a8c7..13c21a53c85 100644
--- a/Core/Visitors/ISampleVisitor.h
+++ b/Core/Visitors/ISampleVisitor.h
@@ -16,7 +16,95 @@
 #ifndef ISAMPLEVISITOR_H
 #define ISAMPLEVISITOR_H
 
-//! @class ISampleVisitor
+class ISample;
+// - the order according to the hierarchy as reported by IDE
+class ICompositeSample;
+// -
+class IClusteredParticles;
+class Crystal;
+// -
+class ILayout;
+class ParticleLayout;
+// -
+class Layer;
+// -
+class LayerInterface;
+// -
+class MultiLayer;
+// -
+class IAbstractParticle;
+class IParticle;
+class Particle;
+class ParticleDistribution;
+class ParticleComposition;
+class MesoCrystal;
+class ParticleCoreShell;
+// -
+class IFormFactor;
+// -
+class FormFactorDWBAPol;
+// -
+class FormFactorWeighted;
+// -
+class IFormFactorBorn;
+// -
+class FormFactorAnisoPyramid;
+class FormFactorBox;
+class FormFactorCone;
+class FormFactorCone6;
+class FormFactorCuboctahedron;
+class FormFactorCrystal;
+class FormFactorCylinder;
+class FormFactorDodecahedron;
+class FormFactorEllipsoidalCylinder;
+class FormFactorFullSphere;
+class FormFactorFullSpheroid;
+class FormFactorGauss;
+class FormFactorHemiEllipsoid;
+class FormFactorIcosahedron;
+class FormFactorLongBoxGauss;
+class FormFactorLongBoxLorentz;
+class FormFactorLorentz;
+class FormFactorPrism3;
+class FormFactorPrism6;
+class FormFactorPyramid;
+class FormFactorRipple1;
+class FormFactorRipple2;
+class FormFactorSphereGaussianRadius;
+class FormFactorSphereLogNormalRadius;
+class FormFactorTetrahedron;
+class FormFactorTrivial;
+class FormFactorTruncatedCube;
+class FormFactorTruncatedSphere;
+class FormFactorTruncatedSpheroid;
+// -
+class IFormFactorDecorator;
+// -
+class FormFactorDWBA;
+class FormFactorDecoratorDebyeWaller;
+class FormFactorDecoratorFactor;
+class FormFactorDecoratorMaterial;
+class FormFactorDecoratorMultiPositionFactor;
+class FormFactorDecoratorPositionFactor;
+class FormFactorDecoratorRotation;
+// -
+class IInterferenceFunction;
+class InterferenceFunction1DLattice;
+class InterferenceFunctionRadialParaCrystal;
+class InterferenceFunction2DLattice;
+class InterferenceFunction2DParaCrystal;
+class InterferenceFunctionNone;
+// -
+class IRoughness;
+class LayerRoughness;
+// -
+class IRotation;
+class RotationX;
+class RotationY;
+class RotationZ;
+class RotationEuler;
+
+//! @ISampleVisitor
 //! @ingroup samples_internal
 //! @brief Visitor interface to visit ISample objects
 //!
@@ -30,93 +118,93 @@ public:
 
     // visiting methods (the order according to the hierarchy as reported by IDE)
 
-    virtual void visit(const class ISample*);
-
-    virtual void visit(const class ICompositeSample*);
-
-    virtual void visit(const class IClusteredParticles*);
-    virtual void visit(const class Crystal*);
-
-    virtual void visit(const class ILayout*);
-    virtual void visit(const class ParticleLayout*);
-
-    virtual void visit(const class Layer*);
-
-    virtual void visit(const class LayerInterface*);
-
-    virtual void visit(const class MultiLayer*);
-
-    virtual void visit(const class IAbstractParticle*);
-    virtual void visit(const class IParticle*);
-    virtual void visit(const class Particle*);
-    virtual void visit(const class ParticleDistribution*);
-    virtual void visit(const class ParticleComposition*);
-    virtual void visit(const class MesoCrystal*);
-    virtual void visit(const class ParticleCoreShell*);
-
-    virtual void visit(const class IFormFactor*);
-    virtual void visit(const class IFormFactorBorn*);
-    virtual void visit(const class IFormFactorDecorator*);
-
-    virtual void visit(const class FormFactorAnisoPyramid*);
-    virtual void visit(const class FormFactorBox*);
-    virtual void visit(const class FormFactorCone*);
-    virtual void visit(const class FormFactorCone6*);
-    virtual void visit(const class FormFactorCuboctahedron*);
-    virtual void visit(const class FormFactorCrystal*);
-    virtual void visit(const class FormFactorCylinder*);
-    virtual void visit(const class FormFactorDodecahedron*);
-    virtual void visit(const class FormFactorEllipsoidalCylinder*);
-    virtual void visit(const class FormFactorFullSphere*);
-    virtual void visit(const class FormFactorFullSpheroid*);
-    virtual void visit(const class FormFactorGauss*);
-    virtual void visit(const class FormFactorHemiEllipsoid*);
-    virtual void visit(const class FormFactorIcosahedron*);
-    virtual void visit(const class FormFactorLongBoxGauss*);
-    virtual void visit(const class FormFactorLongBoxLorentz*);
-    virtual void visit(const class FormFactorLorentz*);
-    virtual void visit(const class FormFactorPrism3*);
-    virtual void visit(const class FormFactorPrism6*);
-    virtual void visit(const class FormFactorPyramid*);
-    virtual void visit(const class FormFactorRipple1*);
-    virtual void visit(const class FormFactorRipple2*);
-    virtual void visit(const class FormFactorSphereGaussianRadius*);
-    virtual void visit(const class FormFactorSphereLogNormalRadius*);
-    virtual void visit(const class FormFactorTetrahedron*);
-    virtual void visit(const class FormFactorTrivial*);
-    virtual void visit(const class FormFactorTruncatedCube*);
-    virtual void visit(const class FormFactorTruncatedSphere*);
-    virtual void visit(const class FormFactorTruncatedSpheroid*);
-
-    virtual void visit(const class FormFactorDWBA*);
-    virtual void visit(const class FormFactorDWBAPol*);
-    virtual void visit(const class FormFactorWeighted*);
-    virtual void visit(const class FormFactorDecoratorDebyeWaller*);
-    virtual void visit(const class FormFactorDecoratorFactor*);
-    virtual void visit(const class FormFactorDecoratorMaterial*);
-    virtual void visit(const class FormFactorDecoratorMultiPositionFactor*);
-    virtual void visit(const class FormFactorDecoratorPositionFactor*);
-    virtual void visit(const class FormFactorDecoratorRotation*);
-
-    virtual void visit(const class IInterferenceFunction*);
-    virtual void visit(const class InterferenceFunction1DLattice*);
-    virtual void visit(const class InterferenceFunctionRadialParaCrystal*);
-    virtual void visit(const class InterferenceFunction2DLattice*);
-    virtual void visit(const class InterferenceFunction2DParaCrystal*);
-    virtual void visit(const class InterferenceFunctionNone*);
-
-    virtual void visit(const class IRoughness*);
-    virtual void visit(const class LayerRoughness*);
-
-    virtual void visit(const class IRotation*);
-    virtual void visit(const class RotationX*);
-    virtual void visit(const class RotationY*);
-    virtual void visit(const class RotationZ*);
-    virtual void visit(const class RotationEuler*);
+    virtual void visit(const ISample*);
+
+    virtual void visit(const ICompositeSample*);
+
+    virtual void visit(const IClusteredParticles*);
+    virtual void visit(const Crystal*);
+
+    virtual void visit(const ILayout*);
+    virtual void visit(const ParticleLayout*);
+
+    virtual void visit(const Layer*);
+
+    virtual void visit(const LayerInterface*);
+
+    virtual void visit(const MultiLayer*);
+
+    virtual void visit(const IAbstractParticle*);
+    virtual void visit(const IParticle*);
+    virtual void visit(const Particle*);
+    virtual void visit(const ParticleDistribution*);
+    virtual void visit(const ParticleComposition*);
+    virtual void visit(const MesoCrystal*);
+    virtual void visit(const ParticleCoreShell*);
+
+    virtual void visit(const IFormFactor*);
+    virtual void visit(const IFormFactorBorn*);
+    virtual void visit(const IFormFactorDecorator*);
+
+    virtual void visit(const FormFactorAnisoPyramid*);
+    virtual void visit(const FormFactorBox*);
+    virtual void visit(const FormFactorCone*);
+    virtual void visit(const FormFactorCone6*);
+    virtual void visit(const FormFactorCuboctahedron*);
+    virtual void visit(const FormFactorCrystal*);
+    virtual void visit(const FormFactorCylinder*);
+    virtual void visit(const FormFactorDodecahedron*);
+    virtual void visit(const FormFactorEllipsoidalCylinder*);
+    virtual void visit(const FormFactorFullSphere*);
+    virtual void visit(const FormFactorFullSpheroid*);
+    virtual void visit(const FormFactorGauss*);
+    virtual void visit(const FormFactorHemiEllipsoid*);
+    virtual void visit(const FormFactorIcosahedron*);
+    virtual void visit(const FormFactorLongBoxGauss*);
+    virtual void visit(const FormFactorLongBoxLorentz*);
+    virtual void visit(const FormFactorLorentz*);
+    virtual void visit(const FormFactorPrism3*);
+    virtual void visit(const FormFactorPrism6*);
+    virtual void visit(const FormFactorPyramid*);
+    virtual void visit(const FormFactorRipple1*);
+    virtual void visit(const FormFactorRipple2*);
+    virtual void visit(const FormFactorSphereGaussianRadius*);
+    virtual void visit(const FormFactorSphereLogNormalRadius*);
+    virtual void visit(const FormFactorTetrahedron*);
+    virtual void visit(const FormFactorTrivial*);
+    virtual void visit(const FormFactorTruncatedCube*);
+    virtual void visit(const FormFactorTruncatedSphere*);
+    virtual void visit(const FormFactorTruncatedSpheroid*);
+
+    virtual void visit(const FormFactorDWBA*);
+    virtual void visit(const FormFactorDWBAPol*);
+    virtual void visit(const FormFactorWeighted*);
+    virtual void visit(const FormFactorDecoratorDebyeWaller*);
+    virtual void visit(const FormFactorDecoratorFactor*);
+    virtual void visit(const FormFactorDecoratorMaterial*);
+    virtual void visit(const FormFactorDecoratorMultiPositionFactor*);
+    virtual void visit(const FormFactorDecoratorPositionFactor*);
+    virtual void visit(const FormFactorDecoratorRotation*);
+
+    virtual void visit(const IInterferenceFunction*);
+    virtual void visit(const InterferenceFunction1DLattice*);
+    virtual void visit(const InterferenceFunctionRadialParaCrystal*);
+    virtual void visit(const InterferenceFunction2DLattice*);
+    virtual void visit(const InterferenceFunction2DParaCrystal*);
+    virtual void visit(const InterferenceFunctionNone*);
+
+    virtual void visit(const IRoughness*);
+    virtual void visit(const LayerRoughness*);
+
+    virtual void visit(const IRotation*);
+    virtual void visit(const RotationX*);
+    virtual void visit(const RotationY*);
+    virtual void visit(const RotationZ*);
+    virtual void visit(const RotationEuler*);
 
     // enter and leave methods
-    bool visitEnter(const class ICompositeSample*);
-    bool visitLeave(const class ICompositeSample*);
+    bool visitEnter(const ICompositeSample*);
+    bool visitLeave(const ICompositeSample*);
 
     //! return current level of the visitor in the composite hierarchy
     int getLevel() const { return m_level; }
@@ -128,7 +216,7 @@ private:
     int m_level;
 };
 
-BA_CORE_API_ void VisitSampleTreePreorder(const class ISample& sample, ISampleVisitor& visitor);
-BA_CORE_API_ void VisitSampleTreePostorder(const class ISample& sample, ISampleVisitor& visitor);
+BA_CORE_API_ void VisitSampleTreePreorder(const ISample& sample, ISampleVisitor& visitor);
+BA_CORE_API_ void VisitSampleTreePostorder(const ISample& sample, ISampleVisitor& visitor);
 
 #endif // ISAMPLEVISITOR_H
diff --git a/Core/Visitors/SampleMaterialVisitor.h b/Core/Visitors/SampleMaterialVisitor.h
index 645bfbd2d02..1cfd93a86c6 100644
--- a/Core/Visitors/SampleMaterialVisitor.h
+++ b/Core/Visitors/SampleMaterialVisitor.h
@@ -33,93 +33,93 @@ public:
 
     using ISampleVisitor::visit;
 
-    void visit(const ISample *sample);
-
-    void visit(const ICompositeSample *sample);
-
-    void visit(const IClusteredParticles *sample);
-    void visit(const Crystal *sample);
-
-    void visit(const ILayout *sample);
-    void visit(const ParticleLayout *sample);
-
-    void visit(const Layer *sample);
-
-    void visit(const LayerInterface *sample);
-
-    void visit(const MultiLayer *sample);
-
-    void visit(const Particle *sample);
-    void visit(const ParticleDistribution *sample);
-    void visit(const ParticleComposition *sample);
-    void visit(const MesoCrystal *sample);
-    void visit(const ParticleCoreShell *sample);
-
-    void visit(const IFormFactor *sample);
-
-    void visit(const FormFactorDWBAPol *sample);
-
-    void visit(const FormFactorWeighted *sample);
-
-    void visit(const IFormFactorBorn *sample);
-
-    void visit(const FormFactorAnisoPyramid *sample);
-    void visit(const FormFactorBox *sample);
-    void visit(const FormFactorCone *sample);
-    void visit(const FormFactorCone6 *sample);
-    void visit(const FormFactorCrystal *sample);
-    void visit(const FormFactorCuboctahedron *sample);
-    void visit(const FormFactorCylinder *sample);
-    void visit(const FormFactorDodecahedron *sample);
-    void visit(const FormFactorEllipsoidalCylinder *sample);
-    void visit(const FormFactorFullSphere *sample);
-    void visit(const FormFactorFullSpheroid *sample);
-    void visit(const FormFactorGauss *sample);
-    void visit(const FormFactorHemiEllipsoid *sample);
-    void visit(const FormFactorIcosahedron *sample);
-    void visit(const FormFactorLongBoxGauss *sample);
-    void visit(const FormFactorLongBoxLorentz *sample);
-    void visit(const FormFactorLorentz *sample);
-    void visit(const FormFactorPrism3 *sample);
-    void visit(const FormFactorPrism6 *sample);
-    void visit(const FormFactorPyramid *sample);
-    void visit(const FormFactorRipple1 *sample);
-    void visit(const FormFactorRipple2 *sample);
-    void visit(const FormFactorSphereGaussianRadius *sample);
-    void visit(const FormFactorSphereLogNormalRadius *sample);
-    void visit(const FormFactorTetrahedron *sample);
-    void visit(const FormFactorTrivial *sample);
-    void visit(const FormFactorTruncatedCube *sample);
-    void visit(const FormFactorTruncatedSphere *sample);
-    void visit(const FormFactorTruncatedSpheroid *sample);
-
-    void visit(const IFormFactorDecorator *sample);
-
-    void visit(const FormFactorDWBA *sample);
-    void visit(const FormFactorDecoratorDebyeWaller *sample);
-    void visit(const FormFactorDecoratorFactor *sample);
-    void visit(const FormFactorDecoratorMaterial *sample);
-    void visit(const FormFactorDecoratorMultiPositionFactor *sample);
-    void visit(const FormFactorDecoratorPositionFactor *sample);
-    void visit(const FormFactorDecoratorRotation *sample);
-
-    void visit(const IInterferenceFunction *sample);
-    void visit(const InterferenceFunction1DLattice *sample);
-    void visit(const InterferenceFunctionRadialParaCrystal *sample);
-    void visit(const InterferenceFunction2DLattice *sample);
-    void visit(const InterferenceFunction2DParaCrystal *sample);
-    void visit(const InterferenceFunctionNone *sample);
-
-    void visit(const IRoughness *sample);
-    void visit(const LayerRoughness *sample);
-
-    void visit(const RotationX *);
-    void visit(const RotationY *);
-    void visit(const RotationZ *);
-    void visit(const RotationEuler *);
+    void visit(const ISample*);
+
+    void visit(const ICompositeSample*);
+
+    void visit(const IClusteredParticles*);
+    void visit(const Crystal*);
+
+    void visit(const ILayout*);
+    void visit(const ParticleLayout*);
+
+    void visit(const Layer*);
+
+    void visit(const LayerInterface*);
+
+    void visit(const MultiLayer*);
+
+    void visit(const Particle*);
+    void visit(const ParticleDistribution*);
+    void visit(const ParticleComposition*);
+    void visit(const MesoCrystal*);
+    void visit(const ParticleCoreShell*);
+
+    void visit(const IFormFactor*);
+
+    void visit(const FormFactorDWBAPol*);
+
+    void visit(const FormFactorWeighted*);
+
+    void visit(const IFormFactorBorn*);
+
+    void visit(const FormFactorAnisoPyramid*);
+    void visit(const FormFactorBox*);
+    void visit(const FormFactorCone*);
+    void visit(const FormFactorCone6*);
+    void visit(const FormFactorCrystal*);
+    void visit(const FormFactorCuboctahedron*);
+    void visit(const FormFactorCylinder*);
+    void visit(const FormFactorDodecahedron*);
+    void visit(const FormFactorEllipsoidalCylinder*);
+    void visit(const FormFactorFullSphere*);
+    void visit(const FormFactorFullSpheroid*);
+    void visit(const FormFactorGauss*);
+    void visit(const FormFactorHemiEllipsoid*);
+    void visit(const FormFactorIcosahedron*);
+    void visit(const FormFactorLongBoxGauss*);
+    void visit(const FormFactorLongBoxLorentz*);
+    void visit(const FormFactorLorentz*);
+    void visit(const FormFactorPrism3*);
+    void visit(const FormFactorPrism6*);
+    void visit(const FormFactorPyramid*);
+    void visit(const FormFactorRipple1*);
+    void visit(const FormFactorRipple2*);
+    void visit(const FormFactorSphereGaussianRadius*);
+    void visit(const FormFactorSphereLogNormalRadius*);
+    void visit(const FormFactorTetrahedron*);
+    void visit(const FormFactorTrivial*);
+    void visit(const FormFactorTruncatedCube*);
+    void visit(const FormFactorTruncatedSphere*);
+    void visit(const FormFactorTruncatedSpheroid*);
+
+    void visit(const IFormFactorDecorator*);
+
+    void visit(const FormFactorDWBA*);
+    void visit(const FormFactorDecoratorDebyeWaller*);
+    void visit(const FormFactorDecoratorFactor*);
+    void visit(const FormFactorDecoratorMaterial*);
+    void visit(const FormFactorDecoratorMultiPositionFactor*);
+    void visit(const FormFactorDecoratorPositionFactor*);
+    void visit(const FormFactorDecoratorRotation*);
+
+    void visit(const IInterferenceFunction*);
+    void visit(const InterferenceFunction1DLattice*);
+    void visit(const InterferenceFunctionRadialParaCrystal*);
+    void visit(const InterferenceFunction2DLattice*);
+    void visit(const InterferenceFunction2DParaCrystal*);
+    void visit(const InterferenceFunctionNone*);
+
+    void visit(const IRoughness*);
+    void visit(const LayerRoughness*);
+
+    void visit(const RotationX*);
+    void visit(const RotationY*);
+    void visit(const RotationZ*);
+    void visit(const RotationEuler*);
 
     //! return vector of material presented in the sample
-    std::vector<const IMaterial *> getMaterials() const {
+    std::vector<const IMaterial*> getMaterials() const {
         return m_materials;
     }
 
@@ -131,9 +131,7 @@ public:
 
 protected:
     void addMaterial(const IMaterial *p_material);
-    std::vector<const IMaterial *> m_materials;
+    std::vector<const IMaterial*> m_materials;
 };
 
-
-
 #endif // SAMPLEMATERIALVISITOR_H
diff --git a/Core/Visitors/SamplePrintVisitor.h b/Core/Visitors/SamplePrintVisitor.h
index f00190426fa..dbaba0c5eab 100644
--- a/Core/Visitors/SamplePrintVisitor.h
+++ b/Core/Visitors/SamplePrintVisitor.h
@@ -30,94 +30,94 @@ public:
 
     using ISampleVisitor::visit;
 
-    void visit(const ISample *sample);
-
-    void visit(const ICompositeSample *sample);
-
-    void visit(const IClusteredParticles *sample);
-    void visit(const Crystal *sample);
-
-    void visit(const ILayout *sample);
-    void visit(const ParticleLayout *sample);
-
-    void visit(const Layer *sample);
-
-    void visit(const LayerInterface *sample);
-
-    void visit(const MultiLayer *sample);
-
-    void visit(const Particle *sample);
-    void visit(const ParticleDistribution *sample);
-    void visit(const ParticleComposition *sample);
-    void visit(const MesoCrystal *sample);
-    void visit(const ParticleCoreShell *sample);
-
-    void visit(const IFormFactor *sample);
-
-    void visit(const FormFactorDWBAPol *sample);
-
-    void visit(const FormFactorWeighted *sample);
-
-    void visit(const IFormFactorBorn *sample);
-
-    void visit(const FormFactorAnisoPyramid *sample);
-    void visit(const FormFactorBox *sample);
-    void visit(const FormFactorCone *sample);
-    void visit(const FormFactorCone6 *sample);
-    void visit(const FormFactorCrystal *sample);
-    void visit(const FormFactorCuboctahedron *sample);
-    void visit(const FormFactorCylinder *sample);
-    void visit(const FormFactorDodecahedron *sample);
-    void visit(const FormFactorEllipsoidalCylinder *sample);
-    void visit(const FormFactorFullSphere *sample);
-    void visit(const FormFactorFullSpheroid *sample);
-    void visit(const FormFactorGauss *sample);
-    void visit(const FormFactorHemiEllipsoid *sample);
-    void visit(const FormFactorIcosahedron *sample);
-    void visit(const FormFactorLongBoxGauss *sample);
-    void visit(const FormFactorLongBoxLorentz *sample);
-    void visit(const FormFactorLorentz *sample);
-    void visit(const FormFactorPrism3 *sample);
-    void visit(const FormFactorPrism6 *sample);
-    void visit(const FormFactorPyramid *sample);
-    void visit(const FormFactorRipple1 *sample);
-    void visit(const FormFactorRipple2 *sample);
-    void visit(const FormFactorSphereGaussianRadius *sample);
-    void visit(const FormFactorSphereLogNormalRadius *sample);
-    void visit(const FormFactorTetrahedron *sample);
-    void visit(const FormFactorTrivial *sample);
-    void visit(const FormFactorTruncatedCube *sample);
-    void visit(const FormFactorTruncatedSphere *sample);
-    void visit(const FormFactorTruncatedSpheroid *sample);
-
-    void visit(const IFormFactorDecorator *sample);
-
-    void visit(const FormFactorDWBA *sample);
-    void visit(const FormFactorDecoratorDebyeWaller *sample);
-    void visit(const FormFactorDecoratorFactor *sample);
-    void visit(const FormFactorDecoratorMaterial *sample);
-    void visit(const FormFactorDecoratorMultiPositionFactor *sample);
-    void visit(const FormFactorDecoratorPositionFactor *sample);
-    void visit(const FormFactorDecoratorRotation *sample);
-
-    void visit(const IInterferenceFunction *sample);
-    void visit(const InterferenceFunction1DLattice *sample);
-    void visit(const InterferenceFunctionRadialParaCrystal *sample);
-    void visit(const InterferenceFunction2DLattice *sample);
-    void visit(const InterferenceFunction2DParaCrystal *sample);
-    void visit(const InterferenceFunctionNone *sample);
-
-    void visit(const IRoughness *sample);
-    void visit(const LayerRoughness *sample);
-
-    void visit(const RotationX *sample);
-    void visit(const RotationY *sample);
-    void visit(const RotationZ *sample);
-    void visit(const RotationEuler *sample);
+    void visit(const ISample*);
+
+    void visit(const ICompositeSample*);
+
+    void visit(const IClusteredParticles*);
+    void visit(const Crystal*);
+
+    void visit(const ILayout*);
+    void visit(const ParticleLayout*);
+
+    void visit(const Layer*);
+
+    void visit(const LayerInterface*);
+
+    void visit(const MultiLayer*);
+
+    void visit(const Particle*);
+    void visit(const ParticleDistribution*);
+    void visit(const ParticleComposition*);
+    void visit(const MesoCrystal*);
+    void visit(const ParticleCoreShell*);
+
+    void visit(const IFormFactor*);
+
+    void visit(const FormFactorDWBAPol*);
+
+    void visit(const FormFactorWeighted*);
+
+    void visit(const IFormFactorBorn*);
+
+    void visit(const FormFactorAnisoPyramid*);
+    void visit(const FormFactorBox*);
+    void visit(const FormFactorCone*);
+    void visit(const FormFactorCone6*);
+    void visit(const FormFactorCrystal*);
+    void visit(const FormFactorCuboctahedron*);
+    void visit(const FormFactorCylinder*);
+    void visit(const FormFactorDodecahedron*);
+    void visit(const FormFactorEllipsoidalCylinder*);
+    void visit(const FormFactorFullSphere*);
+    void visit(const FormFactorFullSpheroid*);
+    void visit(const FormFactorGauss*);
+    void visit(const FormFactorHemiEllipsoid*);
+    void visit(const FormFactorIcosahedron*);
+    void visit(const FormFactorLongBoxGauss*);
+    void visit(const FormFactorLongBoxLorentz*);
+    void visit(const FormFactorLorentz*);
+    void visit(const FormFactorPrism3*);
+    void visit(const FormFactorPrism6*);
+    void visit(const FormFactorPyramid*);
+    void visit(const FormFactorRipple1*);
+    void visit(const FormFactorRipple2*);
+    void visit(const FormFactorSphereGaussianRadius*);
+    void visit(const FormFactorSphereLogNormalRadius*);
+    void visit(const FormFactorTetrahedron*);
+    void visit(const FormFactorTrivial*);
+    void visit(const FormFactorTruncatedCube*);
+    void visit(const FormFactorTruncatedSphere*);
+    void visit(const FormFactorTruncatedSpheroid*);
+
+    void visit(const IFormFactorDecorator*);
+
+    void visit(const FormFactorDWBA*);
+    void visit(const FormFactorDecoratorDebyeWaller*);
+    void visit(const FormFactorDecoratorFactor*);
+    void visit(const FormFactorDecoratorMaterial*);
+    void visit(const FormFactorDecoratorMultiPositionFactor*);
+    void visit(const FormFactorDecoratorPositionFactor*);
+    void visit(const FormFactorDecoratorRotation*);
+
+    void visit(const IInterferenceFunction*);
+    void visit(const InterferenceFunction1DLattice*);
+    void visit(const InterferenceFunctionRadialParaCrystal*);
+    void visit(const InterferenceFunction2DLattice*);
+    void visit(const InterferenceFunction2DParaCrystal*);
+    void visit(const InterferenceFunctionNone*);
+
+    void visit(const IRoughness*);
+    void visit(const LayerRoughness*);
+
+    void visit(const RotationX*);
+    void visit(const RotationY*);
+    void visit(const RotationZ*);
+    void visit(const RotationEuler*);
 
 private:
     std::string get_indent();
-    void print_default(const ISample *sample);
+    void print_default(const ISample*);
 };
 
 
diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i
index 5eb45991c8b..5bb60f9a524 100644
--- a/auto/Wrap/doxygen_core.i
+++ b/auto/Wrap/doxygen_core.i
@@ -7511,220 +7511,220 @@ C++ includes: ISampleVisitor.h
 %feature("docstring")  ISampleVisitor::~ISampleVisitor "virtual ISampleVisitor::~ISampleVisitor()
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ISample *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ISample *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ICompositeSample *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ICompositeSample *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IClusteredParticles *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IClusteredParticles *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class Crystal *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const Crystal *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ILayout *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ILayout *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ParticleLayout *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ParticleLayout *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class Layer *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const Layer *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class LayerInterface *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const LayerInterface *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class MultiLayer *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const MultiLayer *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IAbstractParticle *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IAbstractParticle *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IParticle *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IParticle *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class Particle *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const Particle *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ParticleDistribution *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ParticleDistribution *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ParticleComposition *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ParticleComposition *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class MesoCrystal *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const MesoCrystal *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class ParticleCoreShell *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const ParticleCoreShell *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IFormFactor *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IFormFactor *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IFormFactorBorn *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IFormFactorBorn *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IFormFactorDecorator *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IFormFactorDecorator *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorAnisoPyramid *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorAnisoPyramid *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorBox *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorBox *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorCone *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorCone *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorCone6 *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorCone6 *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorCuboctahedron *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorCuboctahedron *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorCrystal *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorCrystal *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorCylinder *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorCylinder *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDodecahedron *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDodecahedron *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorEllipsoidalCylinder *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorEllipsoidalCylinder *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorFullSphere *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorFullSphere *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorFullSpheroid *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorFullSpheroid *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorGauss *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorGauss *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorHemiEllipsoid *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorHemiEllipsoid *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorIcosahedron *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorIcosahedron *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorLongBoxGauss *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorLongBoxGauss *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorLongBoxLorentz *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorLongBoxLorentz *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorLorentz *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorLorentz *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorPrism3 *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorPrism3 *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorPrism6 *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorPrism6 *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorPyramid *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorPyramid *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorRipple1 *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorRipple1 *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorRipple2 *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorRipple2 *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorSphereGaussianRadius *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorSphereGaussianRadius *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorSphereLogNormalRadius *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorSphereLogNormalRadius *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorTetrahedron *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorTetrahedron *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorTrivial *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorTrivial *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorTruncatedCube *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorTruncatedCube *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorTruncatedSphere *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorTruncatedSphere *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorTruncatedSpheroid *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorTruncatedSpheroid *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDWBA *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDWBA *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDWBAPol *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDWBAPol *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorWeighted *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorWeighted *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDecoratorDebyeWaller *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDecoratorDebyeWaller *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDecoratorFactor *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDecoratorFactor *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDecoratorMaterial *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDecoratorMaterial *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDecoratorMultiPositionFactor *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDecoratorPositionFactor *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDecoratorPositionFactor *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class FormFactorDecoratorRotation *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const FormFactorDecoratorRotation *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IInterferenceFunction *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IInterferenceFunction *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class InterferenceFunction1DLattice *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const InterferenceFunction1DLattice *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class InterferenceFunctionRadialParaCrystal *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const InterferenceFunctionRadialParaCrystal *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class InterferenceFunction2DLattice *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const InterferenceFunction2DLattice *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class InterferenceFunction2DParaCrystal *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const InterferenceFunction2DParaCrystal *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class InterferenceFunctionNone *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const InterferenceFunctionNone *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IRoughness *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IRoughness *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class LayerRoughness *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const LayerRoughness *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class IRotation *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const IRotation *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class RotationX *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const RotationX *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class RotationY *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const RotationY *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class RotationZ *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const RotationZ *)
 ";
 
-%feature("docstring")  ISampleVisitor::visit "virtual void ISampleVisitor::visit(const class RotationEuler *)
+%feature("docstring")  ISampleVisitor::visit "void ISampleVisitor::visit(const RotationEuler *)
 ";
 
-%feature("docstring")  ISampleVisitor::visitEnter "bool ISampleVisitor::visitEnter(const class ICompositeSample *)
+%feature("docstring")  ISampleVisitor::visitEnter "bool ISampleVisitor::visitEnter(const ICompositeSample *)
 ";
 
-%feature("docstring")  ISampleVisitor::visitLeave "bool ISampleVisitor::visitLeave(const class ICompositeSample *)
+%feature("docstring")  ISampleVisitor::visitLeave "bool ISampleVisitor::visitLeave(const ICompositeSample *)
 ";
 
 %feature("docstring")  ISampleVisitor::getLevel "int ISampleVisitor::getLevel() const
@@ -10642,133 +10642,133 @@ finalize report to the simulation
 %feature("docstring")  PyGenVisitor::~PyGenVisitor "PyGenVisitor::~PyGenVisitor()
 ";
 
-%feature("docstring")  PyGenVisitor::writePyScript "std::string PyGenVisitor::writePyScript(const class GISASSimulation *simulation, const std::string &output_filename)
+%feature("docstring")  PyGenVisitor::writePyScript "std::string PyGenVisitor::writePyScript(const GISASSimulation *simulation, const std::string &output_filename)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorAnisoPyramid *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorAnisoPyramid *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorBox *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorBox *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCone *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCone *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCone6 *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCone6 *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCuboctahedron *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCuboctahedron *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCylinder *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorCylinder *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorDodecahedron *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorDodecahedron *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorEllipsoidalCylinder *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorEllipsoidalCylinder *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorFullSphere *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorFullSphere *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorFullSpheroid *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorFullSpheroid *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorGauss *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorGauss *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorHemiEllipsoid *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorHemiEllipsoid *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorIcosahedron *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorIcosahedron *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorLorentz *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorLorentz *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorPrism3 *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorPrism3 *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorPrism6 *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorPrism6 *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorPyramid *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorPyramid *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorRipple1 *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorRipple1 *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorRipple2 *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorRipple2 *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTetrahedron *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTetrahedron *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTruncatedCube *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTruncatedCube *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTruncatedSphere *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTruncatedSphere *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTruncatedSpheroid *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const FormFactorTruncatedSpheroid *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunctionNone *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunctionNone *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunction1DLattice *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunction1DLattice *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunctionRadialParaCrystal *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunctionRadialParaCrystal *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunction2DLattice *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunction2DLattice *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunction2DParaCrystal *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const InterferenceFunction2DParaCrystal *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const Layer *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const Layer *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "virtual void PyGenVisitor::visit(const LayerInterface *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const LayerInterface *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const LayerRoughness *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const LayerRoughness *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const MultiLayer *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const MultiLayer *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleComposition *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleComposition *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const MesoCrystal *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const MesoCrystal *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const Particle *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const Particle *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleDistribution *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleDistribution *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleCoreShell *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleCoreShell *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleLayout *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const ParticleLayout *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationX *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationX *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationY *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationY *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationZ *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationZ *)
 ";
 
-%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationEuler *sample)
+%feature("docstring")  PyGenVisitor::visit "void PyGenVisitor::visit(const RotationEuler *)
 ";
 
 %feature("docstring")  PyGenVisitor::definePreamble "std::string PyGenVisitor::definePreamble() const 
@@ -11531,193 +11531,193 @@ C++ includes: SampleMaterialVisitor.h
 %feature("docstring")  SampleMaterialVisitor::~SampleMaterialVisitor "virtual SampleMaterialVisitor::~SampleMaterialVisitor()
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ISample *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ISample *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ICompositeSample *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ICompositeSample *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IClusteredParticles *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IClusteredParticles *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const Crystal *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const Crystal *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ILayout *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ILayout *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleLayout *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleLayout *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const Layer *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const Layer *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const LayerInterface *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const LayerInterface *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const MultiLayer *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const MultiLayer *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const Particle *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const Particle *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleDistribution *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleDistribution *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleComposition *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleComposition *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const MesoCrystal *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const MesoCrystal *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleCoreShell *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const ParticleCoreShell *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IFormFactor *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IFormFactor *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDWBAPol *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDWBAPol *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorWeighted *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorWeighted *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IFormFactorBorn *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IFormFactorBorn *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorAnisoPyramid *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorAnisoPyramid *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorBox *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorBox *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCone *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCone *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCone6 *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCone6 *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCrystal *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCrystal *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCuboctahedron *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCuboctahedron *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCylinder *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorCylinder *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDodecahedron *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDodecahedron *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorEllipsoidalCylinder *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorEllipsoidalCylinder *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorFullSphere *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorFullSphere *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorFullSpheroid *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorFullSpheroid *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorGauss *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorGauss *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorHemiEllipsoid *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorHemiEllipsoid *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorIcosahedron *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorIcosahedron *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorLongBoxGauss *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorLongBoxGauss *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorLongBoxLorentz *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorLongBoxLorentz *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorLorentz *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorLorentz *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorPrism3 *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorPrism3 *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorPrism6 *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorPrism6 *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorPyramid *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorPyramid *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorRipple1 *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorRipple1 *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorRipple2 *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorRipple2 *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorSphereGaussianRadius *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorSphereGaussianRadius *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorSphereLogNormalRadius *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorSphereLogNormalRadius *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTetrahedron *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTetrahedron *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTrivial *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTrivial *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTruncatedCube *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTruncatedCube *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTruncatedSphere *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTruncatedSphere *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTruncatedSpheroid *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorTruncatedSpheroid *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IFormFactorDecorator *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IFormFactorDecorator *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDWBA *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDWBA *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorDebyeWaller *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorDebyeWaller *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorFactor *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorFactor *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorMaterial *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorMaterial *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorMultiPositionFactor *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorPositionFactor *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorPositionFactor *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorRotation *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const FormFactorDecoratorRotation *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IInterferenceFunction *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IInterferenceFunction *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunction1DLattice *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunction1DLattice *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunctionRadialParaCrystal *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunctionRadialParaCrystal *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunction2DLattice *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunction2DLattice *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunction2DParaCrystal *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunction2DParaCrystal *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunctionNone *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const InterferenceFunctionNone *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IRoughness *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const IRoughness *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const LayerRoughness *sample)
+%feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const LayerRoughness *)
 ";
 
 %feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const RotationX *)
@@ -11732,7 +11732,7 @@ C++ includes: SampleMaterialVisitor.h
 %feature("docstring")  SampleMaterialVisitor::visit "void SampleMaterialVisitor::visit(const RotationEuler *)
 ";
 
-%feature("docstring")  SampleMaterialVisitor::getMaterials "std::vector<const IMaterial *> SampleMaterialVisitor::getMaterials() const
+%feature("docstring")  SampleMaterialVisitor::getMaterials "std::vector<const IMaterial*> SampleMaterialVisitor::getMaterials() const
 
 return vector of material presented in the sample 
 ";
@@ -11759,205 +11759,205 @@ C++ includes: SamplePrintVisitor.h
 %feature("docstring")  SamplePrintVisitor::SamplePrintVisitor "SamplePrintVisitor::SamplePrintVisitor()
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ISample *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ISample *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ICompositeSample *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ICompositeSample *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IClusteredParticles *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IClusteredParticles *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const Crystal *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const Crystal *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ILayout *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ILayout *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleLayout *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleLayout *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const Layer *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const Layer *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const LayerInterface *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const LayerInterface *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const MultiLayer *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const MultiLayer *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const Particle *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const Particle *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleDistribution *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleDistribution *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleComposition *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleComposition *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const MesoCrystal *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const MesoCrystal *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleCoreShell *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const ParticleCoreShell *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IFormFactor *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IFormFactor *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDWBAPol *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDWBAPol *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorWeighted *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorWeighted *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IFormFactorBorn *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IFormFactorBorn *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorAnisoPyramid *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorAnisoPyramid *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorBox *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorBox *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCone *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCone *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCone6 *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCone6 *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCrystal *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCrystal *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCuboctahedron *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCuboctahedron *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCylinder *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorCylinder *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDodecahedron *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDodecahedron *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorEllipsoidalCylinder *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorEllipsoidalCylinder *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorFullSphere *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorFullSphere *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorFullSpheroid *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorFullSpheroid *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorGauss *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorGauss *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorHemiEllipsoid *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorHemiEllipsoid *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorIcosahedron *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorIcosahedron *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorLongBoxGauss *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorLongBoxGauss *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorLongBoxLorentz *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorLongBoxLorentz *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorLorentz *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorLorentz *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorPrism3 *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorPrism3 *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorPrism6 *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorPrism6 *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorPyramid *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorPyramid *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorRipple1 *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorRipple1 *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorRipple2 *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorRipple2 *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorSphereGaussianRadius *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorSphereGaussianRadius *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorSphereLogNormalRadius *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorSphereLogNormalRadius *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTetrahedron *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTetrahedron *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTrivial *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTrivial *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTruncatedCube *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTruncatedCube *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTruncatedSphere *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTruncatedSphere *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTruncatedSpheroid *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorTruncatedSpheroid *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IFormFactorDecorator *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IFormFactorDecorator *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDWBA *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDWBA *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorDebyeWaller *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorDebyeWaller *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorFactor *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorFactor *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorMaterial *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorMaterial *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorMultiPositionFactor *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorPositionFactor *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorPositionFactor *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorRotation *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const FormFactorDecoratorRotation *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IInterferenceFunction *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IInterferenceFunction *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunction1DLattice *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunction1DLattice *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunctionRadialParaCrystal *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunctionRadialParaCrystal *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunction2DLattice *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunction2DLattice *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunction2DParaCrystal *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunction2DParaCrystal *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunctionNone *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const InterferenceFunctionNone *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IRoughness *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const IRoughness *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const LayerRoughness *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const LayerRoughness *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationX *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationX *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationY *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationY *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationZ *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationZ *)
 ";
 
-%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationEuler *sample)
+%feature("docstring")  SamplePrintVisitor::visit "void SamplePrintVisitor::visit(const RotationEuler *)
 ";
 
 
@@ -15043,10 +15043,10 @@ David N. Williams
 
 
 // File: ISampleVisitor_8h.xml
-%feature("docstring")  VisitSampleTreePreorder "BA_CORE_API_ void VisitSampleTreePreorder(const class ISample &sample, ISampleVisitor &visitor)
+%feature("docstring")  VisitSampleTreePreorder "BA_CORE_API_ void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)
 ";
 
-%feature("docstring")  VisitSampleTreePostorder "BA_CORE_API_ void VisitSampleTreePostorder(const class ISample &sample, ISampleVisitor &visitor)
+%feature("docstring")  VisitSampleTreePostorder "BA_CORE_API_ void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)
 ";
 
 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index daa767a3963..2e717e10ace 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -4810,7 +4810,7 @@ class ISampleVisitor(_object):
         visit(ISampleVisitor self, RotationZ arg2)
         visit(ISampleVisitor self, RotationEuler arg2)
 
-        virtual void ISampleVisitor::visit(const class RotationEuler *)
+        void ISampleVisitor::visit(const RotationEuler *)
 
         """
         return _libBornAgainCore.ISampleVisitor_visit(self, *args)
@@ -4820,7 +4820,7 @@ class ISampleVisitor(_object):
         """
         visitEnter(ISampleVisitor self, ICompositeSample arg2) -> bool
 
-        bool ISampleVisitor::visitEnter(const class ICompositeSample *)
+        bool ISampleVisitor::visitEnter(const ICompositeSample *)
 
         """
         return _libBornAgainCore.ISampleVisitor_visitEnter(self, arg2)
@@ -4830,7 +4830,7 @@ class ISampleVisitor(_object):
         """
         visitLeave(ISampleVisitor self, ICompositeSample arg2) -> bool
 
-        bool ISampleVisitor::visitLeave(const class ICompositeSample *)
+        bool ISampleVisitor::visitLeave(const ICompositeSample *)
 
         """
         return _libBornAgainCore.ISampleVisitor_visitLeave(self, arg2)
@@ -4867,7 +4867,7 @@ def VisitSampleTreePreorder(sample, visitor):
     """
     VisitSampleTreePreorder(ISample sample, ISampleVisitor visitor)
 
-    BA_CORE_API_ void VisitSampleTreePreorder(const class ISample &sample, ISampleVisitor &visitor)
+    BA_CORE_API_ void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)
 
     """
     return _libBornAgainCore.VisitSampleTreePreorder(sample, visitor)
@@ -4876,7 +4876,7 @@ def VisitSampleTreePostorder(sample, visitor):
     """
     VisitSampleTreePostorder(ISample sample, ISampleVisitor visitor)
 
-    BA_CORE_API_ void VisitSampleTreePostorder(const class ISample &sample, ISampleVisitor &visitor)
+    BA_CORE_API_ void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)
 
     """
     return _libBornAgainCore.VisitSampleTreePostorder(sample, visitor)
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index 06e628ce67c..21ea717d03f 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -93029,19 +93029,19 @@ static PyMethodDef SwigMethods[] = {
 		"visit(RotationZ arg2)\n"
 		"ISampleVisitor_visit(ISampleVisitor self, RotationEuler arg3)\n"
 		"\n"
-		"virtual void ISampleVisitor::visit(const class RotationEuler *)\n"
+		"void ISampleVisitor::visit(const RotationEuler *)\n"
 		"\n"
 		""},
 	 { (char *)"ISampleVisitor_visitEnter", _wrap_ISampleVisitor_visitEnter, METH_VARARGS, (char *)"\n"
 		"ISampleVisitor_visitEnter(ISampleVisitor self, ICompositeSample arg3) -> bool\n"
 		"\n"
-		"bool ISampleVisitor::visitEnter(const class ICompositeSample *)\n"
+		"bool ISampleVisitor::visitEnter(const ICompositeSample *)\n"
 		"\n"
 		""},
 	 { (char *)"ISampleVisitor_visitLeave", _wrap_ISampleVisitor_visitLeave, METH_VARARGS, (char *)"\n"
 		"ISampleVisitor_visitLeave(ISampleVisitor self, ICompositeSample arg3) -> bool\n"
 		"\n"
-		"bool ISampleVisitor::visitLeave(const class ICompositeSample *)\n"
+		"bool ISampleVisitor::visitLeave(const ICompositeSample *)\n"
 		"\n"
 		""},
 	 { (char *)"ISampleVisitor_getLevel", _wrap_ISampleVisitor_getLevel, METH_VARARGS, (char *)"\n"
@@ -93064,13 +93064,13 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"VisitSampleTreePreorder", _wrap_VisitSampleTreePreorder, METH_VARARGS, (char *)"\n"
 		"VisitSampleTreePreorder(ISample sample, ISampleVisitor visitor)\n"
 		"\n"
-		"BA_CORE_API_ void VisitSampleTreePreorder(const class ISample &sample, ISampleVisitor &visitor)\n"
+		"BA_CORE_API_ void VisitSampleTreePreorder(const ISample &sample, ISampleVisitor &visitor)\n"
 		"\n"
 		""},
 	 { (char *)"VisitSampleTreePostorder", _wrap_VisitSampleTreePostorder, METH_VARARGS, (char *)"\n"
 		"VisitSampleTreePostorder(ISample sample, ISampleVisitor visitor)\n"
 		"\n"
-		"BA_CORE_API_ void VisitSampleTreePostorder(const class ISample &sample, ISampleVisitor &visitor)\n"
+		"BA_CORE_API_ void VisitSampleTreePostorder(const ISample &sample, ISampleVisitor &visitor)\n"
 		"\n"
 		""},
 	 { (char *)"delete_ICompositeSample", _wrap_delete_ICompositeSample, METH_VARARGS, (char *)"\n"
-- 
GitLab