From abe89acca7e4921afa5d957283de5ccb3426acb3 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 12 Aug 2020 15:13:22 +0200
Subject: [PATCH] IDistribution1D: prepare for P args

---
 Core/Parametrization/Distributions.cpp |  6 +++
 Core/Parametrization/Distributions.h   |  1 +
 auto/Wrap/libBornAgainCore.py          |  2 +-
 auto/Wrap/libBornAgainCore_wrap.cpp    | 54 +++++++++++++-------------
 4 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/Core/Parametrization/Distributions.cpp b/Core/Parametrization/Distributions.cpp
index d8b16e7277d..2495f20e983 100644
--- a/Core/Parametrization/Distributions.cpp
+++ b/Core/Parametrization/Distributions.cpp
@@ -32,6 +32,12 @@ bool DoubleEqual(double a, double b);
 // class IDistribution1D
 // ************************************************************************** //
 
+IDistribution1D::IDistribution1D(const NodeMeta& meta, const std::vector<double>& PValues)
+    : INode(meta, PValues)
+{
+}
+
+
 //! Returns equidistant samples, using intrinsic parameters, weighted with probabilityDensity().
 
 std::vector<ParameterSample> IDistribution1D::equidistantSamples(size_t nbr_samples,
diff --git a/Core/Parametrization/Distributions.h b/Core/Parametrization/Distributions.h
index 1c9bfc8ee50..efbe84d1d72 100644
--- a/Core/Parametrization/Distributions.h
+++ b/Core/Parametrization/Distributions.h
@@ -33,6 +33,7 @@ class BA_CORE_API_ IDistribution1D : public ICloneable, public INode
 {
 public:
     IDistribution1D() = default;
+    IDistribution1D(const NodeMeta& meta, const std::vector<double>& PValues);
 
     virtual IDistribution1D* clone() const = 0;
 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index 45cfb893877..b070dcbdb00 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -6585,7 +6585,6 @@ class IDistribution1D(ICloneable, INode):
     def __init__(self, *args, **kwargs):
         raise AttributeError("No constructor defined - class is abstract")
     __repr__ = _swig_repr
-    __swig_destroy__ = _libBornAgainCore.delete_IDistribution1D
 
     def clone(self):
         r"""
@@ -6674,6 +6673,7 @@ class IDistribution1D(ICloneable, INode):
 
         """
         return _libBornAgainCore.IDistribution1D_setUnits(self, units)
+    __swig_destroy__ = _libBornAgainCore.delete_IDistribution1D
 
 # Register IDistribution1D in _libBornAgainCore:
 _libBornAgainCore.IDistribution1D_swigregister(IDistribution1D)
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index d3fbf037409..8efa357f30a 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -61180,28 +61180,6 @@ SWIGINTERN PyObject *RealParameter_swiginit(PyObject *SWIGUNUSEDPARM(self), PyOb
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN PyObject *_wrap_delete_IDistribution1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IDistribution1D *arg1 = (IDistribution1D *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IDistribution1D, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDistribution1D" "', argument " "1"" of type '" "IDistribution1D *""'"); 
-  }
-  arg1 = reinterpret_cast< IDistribution1D * >(argp1);
-  delete arg1;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_IDistribution1D_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   IDistribution1D *arg1 = (IDistribution1D *) 0 ;
@@ -61772,6 +61750,28 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_delete_IDistribution1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  IDistribution1D *arg1 = (IDistribution1D *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject *swig_obj[1] ;
+  
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IDistribution1D, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDistribution1D" "', argument " "1"" of type '" "IDistribution1D *""'"); 
+  }
+  arg1 = reinterpret_cast< IDistribution1D * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *IDistribution1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
@@ -121889,11 +121889,6 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { "RealParameter_swigregister", RealParameter_swigregister, METH_O, NULL},
 	 { "RealParameter_swiginit", RealParameter_swiginit, METH_VARARGS, NULL},
-	 { "delete_IDistribution1D", _wrap_delete_IDistribution1D, METH_O, "\n"
-		"delete_IDistribution1D(IDistribution1D self)\n"
-		"virtual IDistribution1D::~IDistribution1D()\n"
-		"\n"
-		""},
 	 { "IDistribution1D_clone", _wrap_IDistribution1D_clone, METH_O, "\n"
 		"IDistribution1D_clone(IDistribution1D self) -> IDistribution1D\n"
 		"virtual IDistribution1D* IDistribution1D::clone() const =0\n"
@@ -121955,6 +121950,11 @@ static PyMethodDef SwigMethods[] = {
 		"Sets distribution units. \n"
 		"\n"
 		""},
+	 { "delete_IDistribution1D", _wrap_delete_IDistribution1D, METH_O, "\n"
+		"delete_IDistribution1D(IDistribution1D self)\n"
+		"virtual IDistribution1D::~IDistribution1D()\n"
+		"\n"
+		""},
 	 { "IDistribution1D_swigregister", IDistribution1D_swigregister, METH_O, NULL},
 	 { "new_DistributionGate", _wrap_new_DistributionGate, METH_VARARGS, "\n"
 		"DistributionGate()\n"
-- 
GitLab