centroid.cc
Go to the documentation of this file.
00001 /*
00002  * centroid.cc 
00003  * Mac Mason <mmason@willowgarage.com>
00004  *
00005  * Implementation; see centroid.hh.
00006  */
00007 
00008 #include "semanticmodel/centroid.hh"
00009 
00010 namespace semanticmodel
00011 {
00012 
00013 Eigen::Vector4f centroid(
00014     const pcl16::PointCloud<pcl16::PointXYZRGB>::ConstPtr& cloud)
00015 {
00016   Eigen::Vector4f centroid;
00017   centroid.setZero();
00018   if (cloud->is_dense)
00019   {
00020     for (size_t i = 0 ; i < cloud->points.size() ; ++i)
00021       centroid += cloud->points[i].getVector4fMap();
00022     centroid[3] = 0.0;
00023     centroid /= cloud->points.size();
00024   }
00025   else
00026   {
00027     int points = 0;
00028     for (size_t i = 0 ; i < cloud->points.size() ; ++i)
00029     {
00030       if (!pcl_isfinite(cloud->points[i].x) || 
00031           !pcl_isfinite(cloud->points[i].y) || 
00032           !pcl_isfinite(cloud->points[i].z))
00033         continue;
00034       centroid += cloud->points[i].getVector4fMap();
00035       points++;
00036     }
00037     centroid[3] = 0.0;
00038     centroid /= points;
00039   }
00040   return centroid;
00041 }
00042 
00043 }


semanticmodel
Author(s): Julian ("Mac") Mason
autogenerated on Thu Dec 12 2013 12:39:10