Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 #ifndef LSL_POINT_CLOUD_UTILS
00036 #define LSL_POINT_CLOUD_UTILS
00037 
00038 #include <pcl/point_cloud.h>
00039 #include <pcl/point_types.h>
00040 #include <Eigen/Core>
00041 
00042 namespace lslgeneric
00043 {
00044 
00045 
00046 template< typename PointT>
00047 pcl::PointCloud<PointT> readVRML(const char* fname);
00048 template< typename PointT>
00049 pcl::PointCloud<PointT> readVRML(FILE* fout);
00050 
00051 template< typename PointT>
00052 pcl::PointCloud<PointT> readVRMLIntensity(const char* fname);
00053 template< typename PointT>
00054 pcl::PointCloud<PointT> readVRMLIntensity(FILE* fout);
00055 
00056 template< typename PointT>
00057 void writeToVRMLColor(const char* fname, pcl::PointCloud<PointT> &pc);
00058 template< typename PointT>
00059 void writeToVRMLColor(FILE* fout, pcl::PointCloud<PointT> &pc);
00060 
00061 template< typename PointT>
00062 void writeToVRMLIntensity(const char* fname, pcl::PointCloud<PointT> &pc,
00063                           Eigen::Vector3d col = Eigen::Vector3d(1,1,1));
00064 template< typename PointT>
00065 void writeToVRMLIntensity(FILE* fout, pcl::PointCloud<PointT> &pc,
00066                           Eigen::Vector3d col = Eigen::Vector3d(1,1,1));
00067 
00068 template< typename PointT>
00069 void writeToVRML(const char* fname, pcl::PointCloud<PointT> &pc,
00070                  Eigen::Vector3d col = Eigen::Vector3d(1,1,1));
00071 template< typename PointT>
00072 void writeToVRML(FILE* fout, pcl::PointCloud<PointT> &pc,
00073                  Eigen::Vector3d col = Eigen::Vector3d(1,1,1));
00074 
00075 template< typename PointT>
00076 pcl::PointCloud<PointT> transformPointCloud(Eigen::Transform<double,3,Eigen::Affine,Eigen::ColMajor> &T,
00077         const pcl::PointCloud<PointT> &pc);
00078 template< typename PointT>
00079 void transformPointCloudInPlace(Eigen::Transform<double,3,Eigen::Affine,Eigen::ColMajor> &T, pcl::PointCloud<PointT> &pc);
00080 
00081 template< typename PointT>
00082 double geomDist(PointT p1, PointT p2);
00083 
00084 };
00085 #include<pointcloud_vrml/impl/pointcloud_utils.hpp>
00086 
00087 #endif
00088