From 9dd985c28657d501761914a6a8476332fb42f712 Mon Sep 17 00:00:00 2001
From: Arnau Ramisa Ayats <aramisa@iri.upc.edu>
Date: Tue, 22 Apr 2014 11:00:55 +0000
Subject: [PATCH] fixes

---
 examples/xyz_centers13.txt | 13 +++++++++++++
 src/CMakeLists.txt         |  2 ++
 src/finddd_descriptor.cpp  |  1 -
 src/finddd_descriptor.hpp  | 34 +++++++++++++++++++---------------
 4 files changed, 34 insertions(+), 16 deletions(-)
 create mode 100644 examples/xyz_centers13.txt

diff --git a/examples/xyz_centers13.txt b/examples/xyz_centers13.txt
new file mode 100644
index 0000000..26df025
--- /dev/null
+++ b/examples/xyz_centers13.txt
@@ -0,0 +1,13 @@
+-1.000000 -0.000000 -0.000000
+-0.707107 -0.707107 -0.000000
+-0.707107 -0.000000 -0.707107
+-0.707107 0.707107 0.000000
+-0.000000 -1.000000 -0.000000
+-0.000000 -0.707107 -0.707107
+-0.000000 -0.000000 -1.000000
+0.000000 0.707107 -0.707107
+0.000000 1.000000 0.000000
+0.707107 -0.707107 0.000000
+0.707107 0.000000 -0.707107
+0.707107 0.707107 0.000000
+1.000000 0.000000 0.000000
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 664c569..567fc3f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -8,6 +8,8 @@ include_directories(${PCL_INCLUDE_DIRS})
 link_directories(${PCL_LIBRARY_DIRS})
 add_definitions(${PCL_DEFINITIONS})
 
+SET(CMAKE_BUILD_TYPE "RELEASE")
+
 # add the necessary include directories
 INCLUDE_DIRECTORIES(.)
 # application source files
diff --git a/src/finddd_descriptor.cpp b/src/finddd_descriptor.cpp
index eedbcfd..c4a52d7 100755
--- a/src/finddd_descriptor.cpp
+++ b/src/finddd_descriptor.cpp
@@ -279,7 +279,6 @@ FindddAlgorithm::FindddAlgorithm(FindddConfig new_cfg)
 // Main function to compute FINDDD descriptors
 void FindddAlgorithm::compute_ndescs_integral_spatial_interpolation(pcl::PointCloud<pcl::PointXYZ>& cloud, DescriptorSet &descriptor_set)
 {
-
   clock_t start=clock();
   if(this->verbose_level_>=2)
   {
diff --git a/src/finddd_descriptor.hpp b/src/finddd_descriptor.hpp
index ee4e2a8..258522b 100644
--- a/src/finddd_descriptor.hpp
+++ b/src/finddd_descriptor.hpp
@@ -306,42 +306,46 @@ protected:
       float num;
       getline(ifs, line);
       std::istringstream iss(line);
+      int i=0;
       do 
       {
         iss >> num;
         this->pca_mean_.push_back(num);
-      }while(iss);
+      }while(!iss.eof());
     }
     int dout=0;
     while (ifs.good())
     {
       float num;
-      this->pca_matrix_.push_back(std::vector<float>());
       getline(ifs, line);
-      std::istringstream iss(line);
-      do 
+      //line.erase(line.find_last_not_of(" \n\r\t")+1);
+      if(line.size()>0)
       {
-        iss >> num;
-        this->pca_matrix_.back().push_back(num);
-      }while(iss);
-      if(dout==0) dout=this->pca_matrix_.back().size();
-      else if(dout!=this->pca_matrix_.back().size())
-      {
-	if(this->verbose_level_>=1)
-	  std::cout<<"Not consistent PCA data."<<std::endl;
-	exit(-1);
+	this->pca_matrix_.push_back(std::vector<float>());
+	std::istringstream iss(line);
+	do 
+	{
+	  iss >> num;
+	  this->pca_matrix_.back().push_back(num);
+	}while(!iss.eof());
+	if(dout==0) dout=this->pca_matrix_.back().size();
+	else if(dout!=this->pca_matrix_.back().size())
+	{
+	  if(this->verbose_level_>=1)
+	    std::cout<<"Not consistent PCA data. Previous PCA matrix row width: "<<dout<<". Current PCA matrix row width: "<<this->pca_matrix_.back().size()<<std::endl;
+	  exit(-1);
+	}
       }
     }
     if(this->pca_mean_.size() != this->pca_matrix_.size())
     {
       if (this->verbose_level_>=1)
-	std::cout<<"Not consistent PCA data."<<std::endl;
+	std::cout<<"Not consistent PCA data: mean vector size: "<<this->pca_mean_.size()<<" PCA matrix size: "<<this->pca_matrix_.size()<<"x"<<pca_matrix_[0].size()<<std::endl;
       exit(-1);
     }
     //matrix correctly loaded, transposing for ease of use later
     std::vector< std::vector<float> > PCA_t;
     PCA_t.resize(this->pca_matrix_[0].size(), std::vector<float>(this->pca_matrix_.size()));
-    
     for(int i=0;i<this->pca_matrix_[0].size();i++)
       for(int j=0;j<this->pca_matrix_.size();j++)
       {
-- 
GitLab