From 38c61a4e9b63b6fa319df4923f096942e7319372 Mon Sep 17 00:00:00 2001 From: Paolo Andreetto Date: Wed, 31 Jul 2019 09:16:53 +0000 Subject: [PATCH] Removed uLib::Vector --- src/Core/CMakeLists.txt | 3 --- src/Core/Debug.h | 9 ++++----- src/Core/StringReader.h | 3 +-- src/Core/Uuid.h | 4 ++-- src/Math/Accumulator.h | 5 +++-- src/Math/TriangleMesh.h | 11 ++++++----- src/Math/VoxImage.h | 10 +++++----- src/Math/VoxImageFilter.h | 8 ++++---- src/Math/VoxImageFilter.hpp | 12 ++++++------ src/Math/VoxImageFilter2ndStat.hpp | 4 ++-- src/Math/VoxImageFilterABTrim.hpp | 12 ++++++------ src/Math/VoxImageFilterBilateral.hpp | 10 +++++----- src/Math/VoxImageFilterCustom.hpp | 8 ++++---- src/Math/VoxImageFilterLinear.hpp | 4 ++-- src/Math/VoxImageFilterMedian.hpp | 6 +++--- src/Math/VoxRaytracer.cpp | 16 ++++++++-------- src/Math/VoxRaytracer.h | 12 ++++++------ src/Math/testing/AccumulatorTest.cpp | 14 ++++++++------ src/Math/testing/VoxImageFilterTest.cpp | 6 +++--- src/Vtk/uLibVtkInterface.h | 3 +-- 20 files changed, 79 insertions(+), 81 deletions(-) diff --git a/src/Core/CMakeLists.txt b/src/Core/CMakeLists.txt index f8ac196..fc62532 100644 --- a/src/Core/CMakeLists.txt +++ b/src/Core/CMakeLists.txt @@ -2,7 +2,6 @@ set(HEADERS Archives.h Array.h - Collection.h Debug.h Export.h Function.h @@ -19,8 +18,6 @@ set(HEADERS StringReader.h Types.h Uuid.h - Vector.h - CommaInitializer.h Timer.h ) diff --git a/src/Core/Debug.h b/src/Core/Debug.h index f36e4b4..7b6e4aa 100644 --- a/src/Core/Debug.h +++ b/src/Core/Debug.h @@ -29,12 +29,11 @@ #define U_CORE_DEBUG_H - -//#include "ltk/ltkdebug.h" +#include #include "Macros.h" #include "Types.h" #include "Mpl.h" -#include "Vector.h" +#include "SmartPointer.h" #include #include @@ -128,8 +127,8 @@ public: } private: - Vector m_v; - Vector m_a; + std::vector m_v; + std::vector m_a; }; diff --git a/src/Core/StringReader.h b/src/Core/StringReader.h index 3b7aa6c..10551ef 100644 --- a/src/Core/StringReader.h +++ b/src/Core/StringReader.h @@ -31,7 +31,6 @@ #include #include -#include "Core/Vector.h" #include #include @@ -62,7 +61,7 @@ struct StringReader { while( IsEscape(c = m_is.get()) ); if (c == str[pos] ) pos++; else pos = 0; - } + } } static inline bool IsEscape(char c){ diff --git a/src/Core/Uuid.h b/src/Core/Uuid.h index 4787655..b6c9de5 100644 --- a/src/Core/Uuid.h +++ b/src/Core/Uuid.h @@ -29,6 +29,7 @@ #define U_CORE_UUID_H #include +#include #include #include @@ -36,7 +37,6 @@ #include #include "Core/Mpl.h" -#include "Core/Vector.h" #include "Core/Object.h" @@ -127,7 +127,7 @@ public: private: IDGen_t gen; - Vector m_registry; + std::vector m_registry; }; diff --git a/src/Math/Accumulator.h b/src/Math/Accumulator.h index ca711ba..aa565c2 100644 --- a/src/Math/Accumulator.h +++ b/src/Math/Accumulator.h @@ -28,7 +28,8 @@ #ifndef U_DATABINNING_H #define U_DATABINNING_H -#include "Core/Vector.h" +#include + #include "Dense.h" @@ -69,7 +70,7 @@ public: void AddPass() { m_Means.push_back( Tmean(0,0) ); } private: - Vector< Tmean > m_Means; + std::vector< Tmean > m_Means; }; diff --git a/src/Math/TriangleMesh.h b/src/Math/TriangleMesh.h index 0fdebac..58b5c15 100644 --- a/src/Math/TriangleMesh.h +++ b/src/Math/TriangleMesh.h @@ -28,8 +28,9 @@ #ifndef TRIANGLEMESH_H #define TRIANGLEMESH_H +#include + #include "Core/Object.h" -#include "Core/Vector.h" #include "Math/Dense.h" namespace uLib { @@ -44,12 +45,12 @@ public: void AddTriangle(const Id_t *id); void AddTriangle(const Vector3i &id); - uLibRefMacro(Points,Vector) - uLibRefMacro(Triangles,Vector) + inline std::vector & Points() { return this->m_Points; } + inline std::vector & Triangles() { return this->m_Triangles; } private: - Vector m_Points; - Vector m_Triangles; + std::vector m_Points; + std::vector m_Triangles; }; diff --git a/src/Math/VoxImage.h b/src/Math/VoxImage.h index 45db72c..b82b198 100644 --- a/src/Math/VoxImage.h +++ b/src/Math/VoxImage.h @@ -28,13 +28,13 @@ #ifndef U_MATH_VOXIMAGE_H #define U_MATH_VOXIMAGE_H -#include "Core/Vector.h" #include "Core/StaticInterface.h" #include "Math/Dense.h" #include "Math/StructuredGrid.h" #include #include +#include namespace uLib { @@ -104,8 +104,8 @@ public: this->m_Data = copy.m_Data; } - uLibRefMacro(Data,Vector) - inline const Vector& ConstData() const { return m_Data; } + inline std::vector & Data() { return this->m_Data; } + inline const std::vector& ConstData() const { return m_Data; } inline const T& At(int i) const { return m_Data.at(i); } inline const T& At(const Vector3i &id) const { return m_Data.at(Map(id)); } @@ -130,7 +130,7 @@ public: inline void SetDims(const Vector3i &size) { this->m_Data.resize(size.prod()); BaseClass::BaseClass::SetDims(size); // FIX horrible coding style ! - } + } inline VoxImage clipImage(const Vector3i begin, const Vector3i end) const; inline VoxImage clipImage(const HPoint3f begin, const HPoint3f end) const; @@ -213,7 +213,7 @@ public: } private: - Vector m_Data; + std::vector m_Data; }; diff --git a/src/Math/VoxImageFilter.h b/src/Math/VoxImageFilter.h index c9fcf9d..47958fe 100644 --- a/src/Math/VoxImageFilter.h +++ b/src/Math/VoxImageFilter.h @@ -65,14 +65,14 @@ protected: template < typename VoxelT, typename AlgorithmT > class VoxImageFilter : public Abstract::VoxImageFilter, public Object -{ +{ public: VoxImageFilter(const Vector3i &size); void Run(); - void SetKernelNumericXZY(const Vector &numeric); + void SetKernelNumericXZY(const std::vector &numeric); void SetKernelSpherical(float (*shape)(float)); @@ -84,9 +84,9 @@ public: template < class ShapeT > void SetKernelWeightFunction( ShapeT shape ); - uLibGetMacro(KernelData,Kernel) + inline Kernel GetKernelData() const { return this->m_KernelData; } - uLibGetMacro(Image,VoxImage *) + inline VoxImage* GetImage() const { return this->m_Image; } void SetImage(Abstract::VoxImage *image); diff --git a/src/Math/VoxImageFilter.hpp b/src/Math/VoxImageFilter.hpp index 621c208..e8a4963 100644 --- a/src/Math/VoxImageFilter.hpp +++ b/src/Math/VoxImageFilter.hpp @@ -48,14 +48,14 @@ public: inline T& operator[](const int &id) { return m_Data[id]; } inline int GetCenterData() const; - uLibRefMacro(Data,Vector) + inline std::vector & Data() { return this->m_Data; } - inline const Vector& ConstData() const { return this->m_Data; } + inline const std::vector& ConstData() const { return this->m_Data; } void PrintSelf(std::ostream &o) const; private: - Vector m_Data; + std::vector m_Data; }; template < typename T > @@ -163,7 +163,7 @@ float VoxImageFilter<_TPLT_>::Distance2(const Vector3i &v) _TPL_ -void VoxImageFilter<_TPLT_>::SetKernelNumericXZY(const Vector &numeric) +void VoxImageFilter<_TPLT_>::SetKernelNumericXZY(const std::vector &numeric) { // set data order // StructuredData::Order order = m_KernelData.GetDataOrder(); @@ -268,8 +268,8 @@ void VoxImageFilter<_TPLT_>::SetImage(Abstract::VoxImage *image) _TPL_ float VoxImageFilter<_TPLT_>::Convolve(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; diff --git a/src/Math/VoxImageFilter2ndStat.hpp b/src/Math/VoxImageFilter2ndStat.hpp index d85acc7..e1551ee 100644 --- a/src/Math/VoxImageFilter2ndStat.hpp +++ b/src/Math/VoxImageFilter2ndStat.hpp @@ -50,8 +50,8 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; diff --git a/src/Math/VoxImageFilterABTrim.hpp b/src/Math/VoxImageFilterABTrim.hpp index 0b1799c..2e8caf0 100644 --- a/src/Math/VoxImageFilterABTrim.hpp +++ b/src/Math/VoxImageFilterABTrim.hpp @@ -59,13 +59,13 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; - Vector mfh(ker_size); + std::vector mfh(ker_size); for (int i = 0; i < ker_size; ++i) mfh[i].Count = i; //index key for ordering function for (int ik = 0; ik < ker_size; ik++) { @@ -126,13 +126,13 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; - Vector mfh(ker_size); + std::vector mfh(ker_size); for (int i = 0; i < ker_size; ++i) mfh[i].Count = i; //index key for ordering function for (int ik = 0; ik < ker_size; ik++) { diff --git a/src/Math/VoxImageFilterBilateral.hpp b/src/Math/VoxImageFilterBilateral.hpp index ade0f6e..702ef22 100644 --- a/src/Math/VoxImageFilterBilateral.hpp +++ b/src/Math/VoxImageFilterBilateral.hpp @@ -50,8 +50,8 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; @@ -101,15 +101,15 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int img_size = vbuf.size(); int ker_size = vker.size(); int pos; - Vector mfh(ker_size); + std::vector mfh(ker_size); for (int i = 0; i < ker_size; ++i) mfh[i].first = vker[i].Value; // kernel value in first for (int ik = 0; ik < ker_size; ik++) { diff --git a/src/Math/VoxImageFilterCustom.hpp b/src/Math/VoxImageFilterCustom.hpp index 831dbec..a0cb60c 100644 --- a/src/Math/VoxImageFilterCustom.hpp +++ b/src/Math/VoxImageFilterCustom.hpp @@ -43,7 +43,7 @@ class VoxFilterAlgorithmCustom : public VoxImageFilter > { - typedef float (* FunctionPt)(const Vector &); + typedef float (* FunctionPt)(const std::vector &); public: typedef VoxImageFilter > BaseClass; VoxFilterAlgorithmCustom(const Vector3i &size) : @@ -53,14 +53,14 @@ public: float Evaluate(const VoxImage &buffer, int index) { if(likely(m_CustomEvaluate)) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; float ker_sum = 0; - Vector mfh(ker_size); + std::vector mfh(ker_size); for (int ik = 0; ik < ker_size; ik++) { pos = index + vker[ik].Count - vker[this->m_KernelData.GetCenterData()].Count; pos = (pos + vox_size) % vox_size; diff --git a/src/Math/VoxImageFilterLinear.hpp b/src/Math/VoxImageFilterLinear.hpp index 14b9112..b6b7026 100644 --- a/src/Math/VoxImageFilterLinear.hpp +++ b/src/Math/VoxImageFilterLinear.hpp @@ -48,8 +48,8 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; diff --git a/src/Math/VoxImageFilterMedian.hpp b/src/Math/VoxImageFilterMedian.hpp index e4f88c4..44f169c 100644 --- a/src/Math/VoxImageFilterMedian.hpp +++ b/src/Math/VoxImageFilterMedian.hpp @@ -47,13 +47,13 @@ public: float Evaluate(const VoxImage &buffer, int index) { - const Vector &vbuf = buffer.ConstData(); - const Vector &vker = this->m_KernelData.ConstData(); + const std::vector &vbuf = buffer.ConstData(); + const std::vector &vker = this->m_KernelData.ConstData(); int vox_size = vbuf.size(); int ker_size = vker.size(); int pos; - Vector mfh(ker_size); + std::vector mfh(ker_size); for (int ik = 0; ik < ker_size; ik++) { pos = index + vker[ik].Count - vker[this->m_KernelData.GetCenterData()].Count; pos = (pos + vox_size) % vox_size; diff --git a/src/Math/VoxRaytracer.cpp b/src/Math/VoxRaytracer.cpp index 8ed6330..c5791c4 100644 --- a/src/Math/VoxRaytracer.cpp +++ b/src/Math/VoxRaytracer.cpp @@ -80,7 +80,7 @@ void VoxRaytracer::RayData::AppendRay(const VoxRaytracer::RayData &in) void VoxRaytracer::RayData::PrintSelf(std::ostream &o) { o << "Ray: total lenght " << m_TotalLength << "\n"; - Vector::Iterator it; + std::vector::iterator it; for(it = m_Data.begin(); it < m_Data.end(); ++it) o << "[ " << (*it).vox_id << ", " << (*it).L << "] \n"; } @@ -164,7 +164,7 @@ const // scale << (m_Image->GetWorldMatrix() * Vector4f(1,0,0,0)).norm(), // (m_Image->GetWorldMatrix() * Vector4f(0,1,0,0)).norm(), // (m_Image->GetWorldMatrix() * Vector4f(0,0,1,0)).norm(); - + Vector3f offset; for(int i=0;i<3;++i) offset(i) = (s(i)>=0) - (pt1(i)-floor(pt1(i))) ; offset = offset.cwiseProduct(L).cwiseAbs(); @@ -172,29 +172,29 @@ const //---- Check if the ray only crosses one voxel Vector3i vid = m_Image->Find(in); - if(vid == m_Image->Find(out)){ + if(vid == m_Image->Find(out)){ ray.AddElement(m_Image->Map(vid),s.norm()); return ray; } //---- Otherwise, loop until ray is finished - int id; float d; + int id; float d; while(l>0){ d = offset.minCoeff(&id); - + if(m_Image->IsInsideGrid(vid)){ ray.AddElement(m_Image->Map(vid), d * m_scale(id) ); } - + // nan check // // if(unlikely(!isFinite(d * scale(id)))) { // std:: cout << "NAN in raytracer\n"; // exit(1); // } - + vid(id) += (int)fast_sign(s(id)); - + l -= d; offset.array() -= d; offset(id) = fmin(L(id),l); diff --git a/src/Math/VoxRaytracer.h b/src/Math/VoxRaytracer.h index f4d0ae4..a7660c1 100644 --- a/src/Math/VoxRaytracer.h +++ b/src/Math/VoxRaytracer.h @@ -29,8 +29,8 @@ #define VOXRAYTRACER_H #include +#include -#include "Core/Vector.h" #include "Math/StructuredGrid.h" namespace uLib { @@ -51,14 +51,14 @@ public: void AppendRay ( const RayData &in); - uLibConstRefMacro(Data,Vector) + uLibConstRefMacro(Data,std::vector) uLibConstRefMacro(TotalLength,Scalarf) void PrintSelf(std::ostream &o); private: - Vector m_Data; - Scalarf m_TotalLength; + std::vector m_Data; + Scalarf m_TotalLength; }; @@ -78,11 +78,11 @@ public: RayData TraceLine(const HLine3f &line) const; - uLibGetMacro(Image,StructuredGrid *) + inline StructuredGrid* GetImage() const { return this->m_Image; } private: StructuredGrid *m_Image; - Vector3f m_scale; + Vector3f m_scale; }; } diff --git a/src/Math/testing/AccumulatorTest.cpp b/src/Math/testing/AccumulatorTest.cpp index 211f334..1c3c441 100644 --- a/src/Math/testing/AccumulatorTest.cpp +++ b/src/Math/testing/AccumulatorTest.cpp @@ -44,14 +44,16 @@ int test_ABTrim() { acc.SetABTrim(1,1); - Vector v; - v << 1,5,5,5,300; + std::vector v; + for(float tmpf : {1,5,5,5,300}) v.push_back(tmpf); + //v << 1,5,5,5,300; - for(Vector::Iterator itr=v.begin(); itr::iterator itr=v.begin(); itr mean; TRandom rnd; const int c = 10000000; - Vector v; + std::vector v; v.reserve(c); for(int i=0;i &v) +static float MaxInVector(const std::vector &v) { float max = 0; for(int i=0; i filtered = image; - Vector values; + std::vector values; for(int i=0; i < filter.GetKernelData().GetDims().prod(); ++i) { values.push_back(1.); std::cout << values[i] << " "; @@ -128,7 +128,7 @@ int main() VoxFilterAlgorithmCustom filter(Vector3i(3,3,4)); - Vector values; + std::vector values; for(int i=0; i < filter.GetKernelData().GetDims().prod(); ++i) { values.push_back(static_cast(1)); } diff --git a/src/Vtk/uLibVtkInterface.h b/src/Vtk/uLibVtkInterface.h index 1e2687a..e9d13a2 100644 --- a/src/Vtk/uLibVtkInterface.h +++ b/src/Vtk/uLibVtkInterface.h @@ -33,7 +33,6 @@ #include #include -#include #include @@ -109,7 +108,7 @@ public: virtual void SaveToFile(const char *vtk_file); - virtual void SaveToXMLFile(const char *vtp_file); + virtual void SaveToXMLFile(const char *vtp_file); protected: virtual ~Polydata() {}