From 7a5796ef1d132a0a07c368589e7fe8ec75b3c8c9 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 9 Dec 2020 14:29:28 +0100
Subject: [PATCH] rm unused units; rm deg2rad,rad2deg from Python API

---
 Base/Const/Units.h                  |  30 +++---
 CHANGELOG                           |   5 +-
 Wrap/Swig/libBornAgainBase.i        |   4 +-
 auto/Wrap/libBornAgainBase.py       |  22 ----
 auto/Wrap/libBornAgainBase_wrap.cpp | 150 +---------------------------
 5 files changed, 19 insertions(+), 192 deletions(-)

diff --git a/Base/Const/Units.h b/Base/Const/Units.h
index b8ce27bb73e..3ec10b3fdb0 100644
--- a/Base/Const/Units.h
+++ b/Base/Const/Units.h
@@ -24,37 +24,31 @@ static constexpr double nanometer = 1.;
 static constexpr double angstrom = 1.e-1 * nanometer;
 static constexpr double micrometer = 1.e+3 * nanometer;
 static constexpr double millimeter = 1.e+6 * nanometer;
-static constexpr double meter = 1.e+9 * nanometer;
 
 // Symbols for length
 static constexpr double nm = nanometer;
 
 // Area (cross-section)
 static constexpr double nm2 = nanometer * nanometer;
-static constexpr double barn = nanometer * nanometer * 1e-10;
 
 // Angle
-static constexpr double radian = 1.;
-static constexpr double milliradian = 1.e-3 * radian;
-static constexpr double degree = (3.1415926535897932 / 180.0) * radian;
-static constexpr double steradian = 1.;
+static constexpr double rad = 1.;
+static constexpr double deg = (3.1415926535897932 / 180.0) * rad;
 
+// Magnetic field
+static constexpr double tesla = 1.;
+static constexpr double gauss = 1e-4;
+
+// Converters
+
+#ifndef SWIG
 inline double rad2deg(double angle) {
-    return angle / degree;
+    return angle / deg;
 }
 inline double deg2rad(double angle) {
-    return angle * degree;
+    return angle * deg;
 }
-
-// Symbols for (solid) angle
-static constexpr double rad = radian;
-static constexpr double mrad = milliradian;
-static constexpr double sr = steradian;
-static constexpr double deg = degree;
-
-// Magnetic field
-static constexpr double tesla = 1.;
-static constexpr double gauss = 1e-4;
+#endif // SWIG
 
 } // namespace Units
 
diff --git a/CHANGELOG b/CHANGELOG
index fa35811f789..759188d433a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,8 +10,9 @@ BornAgain-1.18.99, ongoing development
   > Fixes of unreported bugs:
     * Several GUI bugs that caused crashes
     * For alpha_i=0, set scattered intensity to 0
-  > Examples:
-    * Uniform API usage in line with exported Python code
+  > Documentation:
+    * Unified API usage in many examples, using BornAgain's Python exporter
+    * Removed many entries from Doxygen user API
   > Internal refactoring:
     * Moved code to break directory include cycles
     * Renamed a few classes (ISimulation)
diff --git a/Wrap/Swig/libBornAgainBase.i b/Wrap/Swig/libBornAgainBase.i
index 2497f9d26aa..4d280f2088a 100644
--- a/Wrap/Swig/libBornAgainBase.i
+++ b/Wrap/Swig/libBornAgainBase.i
@@ -25,10 +25,10 @@
 #include "Base/Types/Complex.h"
 #include "Base/Types/ICloneable.h"
 
-#include "Base/Utils/ThreadInfo.h"
-
 #include "Base/Const/Units.h"
 
+#include "Base/Utils/ThreadInfo.h"
+
 #include "Base/Vector/BasicVector3D.h"
 #include "Base/Vector/Vectors3D.h"
 #include "Base/Vector/Direction.h"
diff --git a/auto/Wrap/libBornAgainBase.py b/auto/Wrap/libBornAgainBase.py
index 8304de6044d..1830501997b 100644
--- a/auto/Wrap/libBornAgainBase.py
+++ b/auto/Wrap/libBornAgainBase.py
@@ -1769,22 +1769,6 @@ class ThreadInfo(object):
 _libBornAgainBase.ThreadInfo_swigregister(ThreadInfo)
 
 
-def rad2deg(angle):
-    r"""
-    rad2deg(double angle) -> double
-    double Units::rad2deg(double angle)
-
-    """
-    return _libBornAgainBase.rad2deg(angle)
-
-def deg2rad(angle):
-    r"""
-    deg2rad(double angle) -> double
-    double Units::deg2rad(double angle)
-
-    """
-    return _libBornAgainBase.deg2rad(angle)
-
 def vecOfLambdaAlphaPhi(_lambda, _alpha, _phi):
     r"""
     vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi) -> kvector_t
@@ -1867,13 +1851,7 @@ meter = cvar.meter
 nm = cvar.nm
 nm2 = cvar.nm2
 barn = cvar.barn
-radian = cvar.radian
-milliradian = cvar.milliradian
-degree = cvar.degree
-steradian = cvar.steradian
 rad = cvar.rad
-mrad = cvar.mrad
-sr = cvar.sr
 deg = cvar.deg
 tesla = cvar.tesla
 gauss = cvar.gauss
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index 57e26493090..011184ecc89 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -6654,10 +6654,10 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_
 #include "Base/Types/Complex.h"
 #include "Base/Types/ICloneable.h"
 
-#include "Base/Utils/ThreadInfo.h"
-
 #include "Base/Const/Units.h"
 
+#include "Base/Utils/ThreadInfo.h"
+
 #include "Base/Vector/BasicVector3D.h"
 #include "Base/Vector/Vectors3D.h"
 #include "Base/Vector/Direction.h"
@@ -24353,108 +24353,6 @@ SWIGINTERN PyObject *Swig_var_barn_get(void) {
 }
 
 
-SWIGINTERN int Swig_var_radian_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable radian is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *Swig_var_radian_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_From_double(static_cast< double >(Units::radian));
-  return pyobj;
-}
-
-
-SWIGINTERN int Swig_var_milliradian_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable milliradian is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *Swig_var_milliradian_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_From_double(static_cast< double >(Units::milliradian));
-  return pyobj;
-}
-
-
-SWIGINTERN int Swig_var_degree_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable degree is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *Swig_var_degree_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_From_double(static_cast< double >(Units::degree));
-  return pyobj;
-}
-
-
-SWIGINTERN int Swig_var_steradian_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable steradian is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *Swig_var_steradian_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_From_double(static_cast< double >(Units::steradian));
-  return pyobj;
-}
-
-
-SWIGINTERN PyObject *_wrap_rad2deg(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  double arg1 ;
-  double val1 ;
-  int ecode1 = 0 ;
-  PyObject *swig_obj[1] ;
-  double result;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "rad2deg" "', argument " "1"" of type '" "double""'");
-  } 
-  arg1 = static_cast< double >(val1);
-  result = (double)Units::rad2deg(arg1);
-  resultobj = SWIG_From_double(static_cast< double >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_deg2rad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  double arg1 ;
-  double val1 ;
-  int ecode1 = 0 ;
-  PyObject *swig_obj[1] ;
-  double result;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "deg2rad" "', argument " "1"" of type '" "double""'");
-  } 
-  arg1 = static_cast< double >(val1);
-  result = (double)Units::deg2rad(arg1);
-  resultobj = SWIG_From_double(static_cast< double >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN int Swig_var_rad_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable rad is read-only.");
   return 1;
@@ -24469,34 +24367,6 @@ SWIGINTERN PyObject *Swig_var_rad_get(void) {
 }
 
 
-SWIGINTERN int Swig_var_mrad_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable mrad is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *Swig_var_mrad_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_From_double(static_cast< double >(Units::mrad));
-  return pyobj;
-}
-
-
-SWIGINTERN int Swig_var_sr_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable sr is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *Swig_var_sr_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_From_double(static_cast< double >(Units::sr));
-  return pyobj;
-}
-
-
 SWIGINTERN int Swig_var_deg_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable deg is read-only.");
   return 1;
@@ -33130,16 +33000,6 @@ static PyMethodDef SwigMethods[] = {
 	 { "delete_ThreadInfo", _wrap_delete_ThreadInfo, METH_O, "delete_ThreadInfo(ThreadInfo self)"},
 	 { "ThreadInfo_swigregister", ThreadInfo_swigregister, METH_O, NULL},
 	 { "ThreadInfo_swiginit", ThreadInfo_swiginit, METH_VARARGS, NULL},
-	 { "rad2deg", _wrap_rad2deg, METH_O, "\n"
-		"rad2deg(double angle) -> double\n"
-		"double Units::rad2deg(double angle)\n"
-		"\n"
-		""},
-	 { "deg2rad", _wrap_deg2rad, METH_O, "\n"
-		"deg2rad(double angle) -> double\n"
-		"double Units::deg2rad(double angle)\n"
-		"\n"
-		""},
 	 { "vecOfLambdaAlphaPhi", _wrap_vecOfLambdaAlphaPhi, METH_VARARGS, "\n"
 		"vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi) -> kvector_t\n"
 		"kvector_t vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi)\n"
@@ -35118,13 +34978,7 @@ SWIG_init(void) {
   SWIG_addvarlink(globals, "nm", Swig_var_nm_get, Swig_var_nm_set);
   SWIG_addvarlink(globals, "nm2", Swig_var_nm2_get, Swig_var_nm2_set);
   SWIG_addvarlink(globals, "barn", Swig_var_barn_get, Swig_var_barn_set);
-  SWIG_addvarlink(globals, "radian", Swig_var_radian_get, Swig_var_radian_set);
-  SWIG_addvarlink(globals, "milliradian", Swig_var_milliradian_get, Swig_var_milliradian_set);
-  SWIG_addvarlink(globals, "degree", Swig_var_degree_get, Swig_var_degree_set);
-  SWIG_addvarlink(globals, "steradian", Swig_var_steradian_get, Swig_var_steradian_set);
   SWIG_addvarlink(globals, "rad", Swig_var_rad_get, Swig_var_rad_set);
-  SWIG_addvarlink(globals, "mrad", Swig_var_mrad_get, Swig_var_mrad_set);
-  SWIG_addvarlink(globals, "sr", Swig_var_sr_get, Swig_var_sr_set);
   SWIG_addvarlink(globals, "deg", Swig_var_deg_get, Swig_var_deg_set);
   SWIG_addvarlink(globals, "tesla", Swig_var_tesla_get, Swig_var_tesla_set);
   SWIG_addvarlink(globals, "gauss", Swig_var_gauss_get, Swig_var_gauss_set);
-- 
GitLab