From 31047be9fbf144471ce0ab598bcc2ae6adf4afc8 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 4 Jun 2022 13:17:27 +0200 Subject: [PATCH] Base: improve initialization according to cpp core guidelines --- src/Base/Matrix.cpp | 42 ++++++++++++++++-------------------------- src/Base/Stream.cpp | 2 +- src/Base/Vector3D.cpp | 17 ----------------- src/Base/Vector3D.h | 8 +++++--- 4 files changed, 22 insertions(+), 47 deletions(-) diff --git a/src/Base/Matrix.cpp b/src/Base/Matrix.cpp index c3e1089255..88f92ccbac 100644 --- a/src/Base/Matrix.cpp +++ b/src/Base/Matrix.cpp @@ -34,59 +34,49 @@ using namespace Base; Matrix4D::Matrix4D () + : dMtrx4D{{1.,0.,0.,0.}, + {0.,1.,0.,0.}, + {0.,0.,1.,0.}, + {0.,0.,0.,1.}} { - setToUnity(); } Matrix4D::Matrix4D (float a11, float a12, float a13, float a14, float a21, float a22, float a23, float a24, float a31, float a32, float a33, float a34, - float a41, float a42, float a43, float a44 ) + float a41, float a42, float a43, float a44) + : dMtrx4D{{a11,a12,a13,a14}, + {a21,a22,a23,a24}, + {a31,a32,a33,a34}, + {a41,a42,a43,a44}} { - dMtrx4D[0][0] = static_cast(a11); - dMtrx4D[0][1] = static_cast(a12); - dMtrx4D[0][2] = static_cast(a13); - dMtrx4D[0][3] = static_cast(a14); - dMtrx4D[1][0] = static_cast(a21); - dMtrx4D[1][1] = static_cast(a22); - dMtrx4D[1][2] = static_cast(a23); - dMtrx4D[1][3] = static_cast(a24); - dMtrx4D[2][0] = static_cast(a31); - dMtrx4D[2][1] = static_cast(a32); - dMtrx4D[2][2] = static_cast(a33); - dMtrx4D[2][3] = static_cast(a34); - dMtrx4D[3][0] = static_cast(a41); - dMtrx4D[3][1] = static_cast(a42); - dMtrx4D[3][2] = static_cast(a43); - dMtrx4D[3][3] = static_cast(a44); } Matrix4D::Matrix4D (double a11, double a12, double a13, double a14, double a21, double a22, double a23, double a24, double a31, double a32, double a33, double a34, double a41, double a42, double a43, double a44 ) + : dMtrx4D{{a11,a12,a13,a14}, + {a21,a22,a23,a24}, + {a31,a32,a33,a34}, + {a41,a42,a43,a44}} { - dMtrx4D[0][0] = a11; dMtrx4D[0][1] = a12; dMtrx4D[0][2] = a13; dMtrx4D[0][3] = a14; - dMtrx4D[1][0] = a21; dMtrx4D[1][1] = a22; dMtrx4D[1][2] = a23; dMtrx4D[1][3] = a24; - dMtrx4D[2][0] = a31; dMtrx4D[2][1] = a32; dMtrx4D[2][2] = a33; dMtrx4D[2][3] = a34; - dMtrx4D[3][0] = a41; dMtrx4D[3][1] = a42; dMtrx4D[3][2] = a43; dMtrx4D[3][3] = a44; } - -Matrix4D::Matrix4D (const Matrix4D& rclMtrx) +Matrix4D::Matrix4D (const Matrix4D& rclMtrx) : Matrix4D() { (*this) = rclMtrx; } Matrix4D::Matrix4D (const Vector3f& rclBase, const Vector3f& rclDir, float fAngle) + : Matrix4D() { - setToUnity(); this->rotLine(rclBase,rclDir,fAngle); } Matrix4D::Matrix4D (const Vector3d& rclBase, const Vector3d& rclDir, double fAngle) + : Matrix4D() { - setToUnity(); this->rotLine(rclBase,rclDir,fAngle); } diff --git a/src/Base/Stream.cpp b/src/Base/Stream.cpp index 5c4c4a7fbd..134b0aa63e 100644 --- a/src/Base/Stream.cpp +++ b/src/Base/Stream.cpp @@ -426,7 +426,7 @@ IODeviceOStreambuf::seekpos(std::streambuf::pos_type pos, // ---------------------------------------------------------------------- -IODeviceIStreambuf::IODeviceIStreambuf(QIODevice* dev) : device(dev) +IODeviceIStreambuf::IODeviceIStreambuf(QIODevice* dev) : device(dev), buffer{} { setg (buffer+pbSize, // beginning of putback area buffer+pbSize, // read position diff --git a/src/Base/Vector3D.cpp b/src/Base/Vector3D.cpp index 5ae999e310..31f8da5894 100644 --- a/src/Base/Vector3D.cpp +++ b/src/Base/Vector3D.cpp @@ -39,14 +39,6 @@ Vector3<_Precision>::Vector3 (_Precision fx, _Precision fy, _Precision fz) { } -template -Vector3<_Precision>::Vector3 (const Vector3<_Precision>& rcVct) - : x(rcVct.x), - y(rcVct.y), - z(rcVct.z) -{ -} - template _Precision& Vector3<_Precision>::operator [] (unsigned short usIndex) { @@ -155,15 +147,6 @@ Vector3<_Precision> Vector3<_Precision>::operator / (_Precision fDiv) const return Vector3<_Precision>(this->x/fDiv,this->y/fDiv,this->z/fDiv); } -template -Vector3<_Precision>& Vector3<_Precision>::operator = (const Vector3<_Precision>& rcVct) -{ - x = rcVct.x; - y = rcVct.y; - z = rcVct.z; - return *this; -} - template _Precision Vector3<_Precision>::operator * (const Vector3<_Precision>& rcVct) const { diff --git a/src/Base/Vector3D.h b/src/Base/Vector3D.h index 020eab14b8..43e9ab8a7b 100644 --- a/src/Base/Vector3D.h +++ b/src/Base/Vector3D.h @@ -91,8 +91,9 @@ public: /// Construction explicit Vector3 (_Precision fx = 0.0, _Precision fy = 0.0, _Precision fz = 0.0); - /// Construction - Vector3 (const Vector3<_Precision>& rcVct); + Vector3 (const Vector3<_Precision>& v) = default; + Vector3 (Vector3<_Precision>&& v) = default; + ~Vector3 () = default; /** @name Operator */ //@{ @@ -117,7 +118,8 @@ public: Vector3 & operator *= (_Precision fScale); Vector3 & operator /= (_Precision fDiv); /// Assignment - Vector3 & operator = (const Vector3<_Precision>& rcVct); + Vector3 & operator = (const Vector3<_Precision>& v) = default; + Vector3 & operator = (Vector3<_Precision>&& v) = default; /// Scalar product _Precision operator * (const Vector3<_Precision>& rcVct) const; /// Scalar product