From 8431ee7a7396d0cdee57e0d66b758a1a86bb0eee Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters@irmb.tu-bs.de>
Date: Thu, 8 Oct 2020 10:31:01 +0200
Subject: [PATCH] Make deleted constructors public.

---
 src/basics/basics/utilities/UbFileOutput.h    |  4 ++--
 .../basics/utilities/UbFileOutputBinary.cpp   |  2 +-
 src/basics/basics/writer/WbWriterAvsASCII.h   |  6 ++---
 src/basics/basics/writer/WbWriterAvsBinary.h  |  7 +++---
 .../basics/writer/WbWriterTecPlotASCII.h      |  7 +++---
 src/basics/basics/writer/WbWriterVtkBinary.h  |  7 +++---
 src/basics/basics/writer/WbWriterX3D.h        |  5 +++--
 src/basics/geometry3d/GbSphere3D.cpp          |  2 +-
 src/basics/geometry3d/GbTriangularMesh3D.cpp  |  4 ++--
 src/basics/geometry3d/GbVoxelMatrix3D.cpp     | 22 +++----------------
 10 files changed, 27 insertions(+), 39 deletions(-)

diff --git a/src/basics/basics/utilities/UbFileOutput.h b/src/basics/basics/utilities/UbFileOutput.h
index 6cb2d4bbb..38c092808 100644
--- a/src/basics/basics/utilities/UbFileOutput.h
+++ b/src/basics/basics/utilities/UbFileOutput.h
@@ -36,8 +36,8 @@ public:
 
 public:
    UbFileOutput() : filename("") {  }
-   UbFileOutput(const std::string& filename)  : filename(filename), commentindicator('C') { }             
-   virtual ~UbFileOutput() { outfile.flush();outfile.close(); }
+   UbFileOutput(const std::string& filename)  : filename(filename) { }
+   virtual ~UbFileOutput() { outfile.flush(); }
 
    virtual bool open(const std::string& filename, CREATEOPTION opt=OUTFILE) = 0;
 
diff --git a/src/basics/basics/utilities/UbFileOutputBinary.cpp b/src/basics/basics/utilities/UbFileOutputBinary.cpp
index b514f0245..a34d11441 100644
--- a/src/basics/basics/utilities/UbFileOutputBinary.cpp
+++ b/src/basics/basics/utilities/UbFileOutputBinary.cpp
@@ -133,7 +133,7 @@ void UbFileOutputBinary::writeString(const string& value, const int&  /*width*/)
 /*==========================================================*/
 void UbFileOutputBinary::writeStringOnly(const string&  /*value*/)				
 {
-   UbException(UB_EXARGS,"no way... causes to many errors");
+   throw UbException(UB_EXARGS,"no way... causes to many errors"); // TODO: WTF?
 }
 /*==========================================================*/
 void UbFileOutputBinary::writeLine(const std::string& value, const int&  /*width*/)				
diff --git a/src/basics/basics/writer/WbWriterAvsASCII.h b/src/basics/basics/writer/WbWriterAvsASCII.h
index 2e3af809c..3e382f37d 100644
--- a/src/basics/basics/writer/WbWriterAvsASCII.h
+++ b/src/basics/basics/writer/WbWriterAvsASCII.h
@@ -18,10 +18,10 @@ public:
       return &instance;
    }
 
+    WbWriterAvsASCII( const WbWriterAvsASCII& ) = delete;
+    const WbWriterAvsASCII& operator=( const WbWriterAvsASCII& ) = delete;
 private:
-   WbWriterAvsASCII() : WbWriter() {}                            
-   WbWriterAvsASCII( const WbWriterAvsASCII& ) = delete;                  //no copy allowed 
-   const WbWriterAvsASCII& operator=( const WbWriterAvsASCII& ) = delete; //no copy allowed
+   WbWriterAvsASCII() = default;
 
 public:
    std::string getFileExtension() override { return ".ascii.inp"; }
diff --git a/src/basics/basics/writer/WbWriterAvsBinary.h b/src/basics/basics/writer/WbWriterAvsBinary.h
index fc34e73eb..17b44adaa 100644
--- a/src/basics/basics/writer/WbWriterAvsBinary.h
+++ b/src/basics/basics/writer/WbWriterAvsBinary.h
@@ -17,10 +17,11 @@ public:
       static WbWriterAvsBinary instance;
       return &instance;
    }
+
+    WbWriterAvsBinary( const WbWriterAvsBinary& ) = delete;
+    const WbWriterAvsBinary& operator=( const WbWriterAvsBinary& ) = delete;
 private:
-   WbWriterAvsBinary() : WbWriter() {}                             
-   WbWriterAvsBinary( const WbWriterAvsBinary& ) = delete;                  //no copy allowed 
-   const WbWriterAvsBinary& operator=( const WbWriterAvsBinary& ) = delete; //no copy allowed
+   WbWriterAvsBinary() = default;
 
 public:
    std::string getFileExtension() override { return ".bin.inp"; }
diff --git a/src/basics/basics/writer/WbWriterTecPlotASCII.h b/src/basics/basics/writer/WbWriterTecPlotASCII.h
index b0a6eb30e..df0256765 100644
--- a/src/basics/basics/writer/WbWriterTecPlotASCII.h
+++ b/src/basics/basics/writer/WbWriterTecPlotASCII.h
@@ -13,6 +13,10 @@ public:
       static WbWriterTecPlotASCII instance;
       return &instance;
    }
+
+    WbWriterTecPlotASCII( const WbWriterTecPlotASCII& ) = delete;
+    const WbWriterTecPlotASCII& operator=( const WbWriterTecPlotASCII& ) = delete;
+
 private:
    WbWriterTecPlotASCII() : WbWriter() 
    {
@@ -21,9 +25,6 @@ private:
       if(sizeof(float)        !=4) throw UbException(UB_EXARGS,"machine error float type mismatch");
    }
 
-   WbWriterTecPlotASCII( const WbWriterTecPlotASCII& ) = delete;                  //no copy allowed 
-   const WbWriterTecPlotASCII& operator=( const WbWriterTecPlotASCII& ) = delete; //no copy allowed
-
    static std::string  pvdEndTag;
 public:
    std::string getFileExtension() override { return ".ascii.dat";   }
diff --git a/src/basics/basics/writer/WbWriterVtkBinary.h b/src/basics/basics/writer/WbWriterVtkBinary.h
index 759ecd78d..d7dd65e6e 100644
--- a/src/basics/basics/writer/WbWriterVtkBinary.h
+++ b/src/basics/basics/writer/WbWriterVtkBinary.h
@@ -17,10 +17,11 @@ public:
       static WbWriterVtkBinary instance;
       return &instance;
    }
+
+    WbWriterVtkBinary( const WbWriterVtkBinary& ) = delete;
+    const WbWriterVtkBinary& operator=( const WbWriterVtkBinary& ) = delete;
 private:
-   WbWriterVtkBinary() : WbWriter() {}                             
-   WbWriterVtkBinary( const WbWriterVtkBinary& ) = delete;                  //no copy allowed 
-   const WbWriterVtkBinary& operator=( const WbWriterVtkBinary& ) = delete; //no copy allowed
+   WbWriterVtkBinary() = default;
 
 public:
    std::string getFileExtension() override { return ".bin.vtk"; }
diff --git a/src/basics/basics/writer/WbWriterX3D.h b/src/basics/basics/writer/WbWriterX3D.h
index fc0e74301..a6527ce6a 100644
--- a/src/basics/basics/writer/WbWriterX3D.h
+++ b/src/basics/basics/writer/WbWriterX3D.h
@@ -13,6 +13,9 @@ public:
       static WbWriterX3D instance;
       return &instance;
    }
+
+    WbWriterX3D( const WbWriterX3D& ) = delete;
+    const WbWriterX3D& operator=( const WbWriterX3D& ) = delete;
 private:
    WbWriterX3D() : WbWriter() 
    {
@@ -20,8 +23,6 @@ private:
       if(sizeof(int)          !=4) throw UbException(UB_EXARGS,"error int   type mismatch");
       if(sizeof(float)        !=4) throw UbException(UB_EXARGS,"error float type mismatch");
    }
-   WbWriterX3D( const WbWriterX3D& ) = delete;                  //no copy allowed 
-   const WbWriterX3D& operator=( const WbWriterX3D& ) = delete; //no copy allowed
 
    static std::string  pvdEndTag;
 
diff --git a/src/basics/geometry3d/GbSphere3D.cpp b/src/basics/geometry3d/GbSphere3D.cpp
index c6614534e..670b37f5a 100644
--- a/src/basics/geometry3d/GbSphere3D.cpp
+++ b/src/basics/geometry3d/GbSphere3D.cpp
@@ -28,7 +28,7 @@ GbSphere3D::GbSphere3D(const double& x1,const double& x2, const double& x3, cons
 }
 /*=====================================================*/
 GbSphere3D::GbSphere3D(const GbSphere3D& sphere)
-  : GbObject3D(), UbObserver()
+  : GbObject3D(sphere), UbObserver()
 {
    this->setName("sphere");
 
diff --git a/src/basics/geometry3d/GbTriangularMesh3D.cpp b/src/basics/geometry3d/GbTriangularMesh3D.cpp
index 88819d7b0..de781b338 100644
--- a/src/basics/geometry3d/GbTriangularMesh3D.cpp
+++ b/src/basics/geometry3d/GbTriangularMesh3D.cpp
@@ -547,7 +547,7 @@ UbTupleDouble6 GbTriangularMesh3D::calculateMomentOfInertia(double rhoP)
    cout<<" top11:"<<top11<<" top22:"<<top22<<" top33:"<<top33<<endl;
    cout<<" top12:"<<top12<<" top23:"<<top23<<" top13:"<<top13<<endl;
 
-   return UbTupleDouble6(top11,top22,top33,top12,top23,top13);
+   return {top11,top22,top33,top12,top23,top13};
 }
 
  /**
@@ -1294,7 +1294,7 @@ char    GbTriangularMesh3D::SegTriInt( GbTriangle3D* T, GbVector3D& q, GbVector3
    int code = '?';
    int m = -1;
 
-   code = SegPlaneInt( T, q, r, p, &m );
+   code = (unsigned char)SegPlaneInt( T, q, r, p, &m );
    //  printf("SegPlaneInt code=%c, m=%d; p=(%lf,%lf,%lf)\n", code,m,p[0],p[1],p[2]);
 
    if      ( code == '0')  return '0';
diff --git a/src/basics/geometry3d/GbVoxelMatrix3D.cpp b/src/basics/geometry3d/GbVoxelMatrix3D.cpp
index 4f1d5b56c..11c0f9d0d 100644
--- a/src/basics/geometry3d/GbVoxelMatrix3D.cpp
+++ b/src/basics/geometry3d/GbVoxelMatrix3D.cpp
@@ -22,19 +22,11 @@ const float GbVoxelMatrix3D::FLUID = 0.0f;
 // Konstruktor
 GbVoxelMatrix3D::GbVoxelMatrix3D(int nx1, int nx2, int nx3, float initVal, double lowerThreshold, double upperThreshold)
    : GbObject3D()
-   , minX1(0.0)
-   , minX2(0.0)
-   , minX3(0.0)
    , lowerThreshold(lowerThreshold)
    , upperThreshold(upperThreshold)
    , nodesX1(nx1)
    , nodesX2(nx2)
    , nodesX3(nx3)
-   , deltaX1(1.0)
-   , deltaX2(1.0)
-   , deltaX3(1.0)
-   , transferViaFilename(false)
-   , addSurfaceTriangleSetFlag(true)
    , voxelMatrix(Matrix3D(nx1, nx2, nx3, initVal))
 {
    this->setName("VoxelMatrix3D");
@@ -49,30 +41,22 @@ GbVoxelMatrix3D::GbVoxelMatrix3D()
 /*=======================================================*/
 GbVoxelMatrix3D::GbVoxelMatrix3D(const Matrix3D& voxelMatrix, double lowerThreshold, double upperThreshold)
    : GbObject3D()
-   , minX1(0.0)
-   , minX2(0.0)
-   , minX3(0.0)
    , nodesX1((int)voxelMatrix.getNX1())
    , nodesX2((int)voxelMatrix.getNX2())
    , nodesX3((int)voxelMatrix.getNX3())
    , lowerThreshold(lowerThreshold)
    , upperThreshold(upperThreshold)
-   , deltaX1(1.0)
-   , deltaX2(1.0)
-   , deltaX3(1.0)
-   , transferViaFilename(false)
-   , addSurfaceTriangleSetFlag(true)
    , voxelMatrix(voxelMatrix)
 {
    this->setName("VoxelMatrix3D");
 }
 /*=======================================================*/
-GbVoxelMatrix3D*  GbVoxelMatrix3D::clone()
+GbVoxelMatrix3D* GbVoxelMatrix3D::clone()
 {
-   GbVoxelMatrix3D* vm = new GbVoxelMatrix3D(this->voxelMatrix, lowerThreshold, upperThreshold);
+   GbVoxelMatrix3D* vm = new GbVoxelMatrix3D(voxelMatrix, lowerThreshold, upperThreshold);
    vm->setVoxelMatrixMininum(minX1, minX2, minX3);
    vm->setVoxelMatrixDelta(deltaX1, deltaX2, deltaX3);
-   return  vm;
+   return vm;
 }
 /*=======================================================*/
 void GbVoxelMatrix3D::setCenterCoordinates(const double& x1, const double& x2, const double& x3)
-- 
GitLab