19 #include <pcl/io/io.h>    20 #include <pcl/io/pcd_io.h>    34     globalMapPtr( new pcl::PointCloud<pcl::PointXYZRGBA>() ),
    35     edgeCloudPtr(new pcl::PointCloud<pcl::PointXYZRGBA>),
    36     outEdgeCloudPtr(new pcl::PointCloud<pcl::PointXYZRGBA>)
   102 void PbMap::savePbMap(
string filePath)
   109   serialize_pbmap << *
this;
   110   serialize_pbmap.close();
   114   pcl::io::savePCDFile(filePath + 
"/cloud.pcd", *this->globalMapPtr);
   120   pcl::PCDReader reader;
   121   string PbMapFile = filePath;
   122   reader.read (PbMapFile.append(
"/cloud.pcd"), *(this->globalMapPtr));
   126   PbMapFile = filePath;
   128   if (serialized_pbmap.
open(PbMapFile.append(
"/planes.pbmap")))
   130     serialized_pbmap >> *
this;
   133     cout << 
"Error: cannot open " << PbMapFile << 
"\n";
   134   serialized_pbmap.
close();
   141 void PbMap::MergeWith(
PbMap &pbm, Eigen::Matrix4f &T)
   144   for(
size_t i = 0; i < pbm.
vPlanes.size(); i++)
   161     plane.
id = vPlanes.size();
   163     vPlanes.push_back(plane);
   167   pcl::PointCloud<pcl::PointXYZRGBA>::Ptr alignedPointCloud(
new pcl::PointCloud<pcl::PointXYZRGBA>);
   168   pcl::transformPointCloud(*pbm.
globalMapPtr,*alignedPointCloud,T);
   170   *globalMapPtr += *alignedPointCloud;
   176 void PbMap::printPbMap(
string txtFilePbm)
   178 cout << 
"PbMap 0.2\n\n";
   181   pbm.open(txtFilePbm.c_str());
   182   pbm << 
"PbMap 0.2\n\n";
   183   pbm << 
"MapPlanes " << vPlanes.size() << endl;
   184   for(
unsigned i=0; i < vPlanes.size(); i++)
   186     pbm << 
" ID " << vPlanes[i].id << 
" obs " << vPlanes[i].numObservations;
   187     pbm << 
" areaVoxels " << vPlanes[i].areaVoxels << 
" areaHull " << vPlanes[i].areaHull;
   188     pbm << 
" ratioXY " << vPlanes[i].elongation << 
" structure " << vPlanes[i].bFromStructure << 
" label " << vPlanes[i].label;
   189     pbm << 
"\n normal\n" << vPlanes[i].v3normal << 
"\n center\n" << vPlanes[i].v3center;
   190     pbm << 
"\n PpalComp\n" << vPlanes[i].v3PpalDir << 
"\n RGB\n" << vPlanes[i].v3colorNrgb;
   191     pbm << 
"\n Neighbors (" << vPlanes[i].neighborPlanes.size() << 
"): ";
   193       pbm << it->first << 
" ";
   194     pbm << 
"\n CommonObservations: ";
   196       pbm << it->second << 
" ";
   197     pbm << 
"\n ConvexHull (" << vPlanes[i].polygonContourPtr->size() << 
"): \n";
   198     for(
unsigned j=0; j < vPlanes[i].polygonContourPtr->size(); j++)
   199       pbm << 
"\t" << vPlanes[i].polygonContourPtr->points[j].x << 
" " << vPlanes[i].polygonContourPtr->points[j].y << 
" " << vPlanes[i].polygonContourPtr->points[j].z << endl;
 Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL. 
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr polygonContourPtr
 
The virtual base class which provides a unified interface for all persistent objects in MRPT...
 
A class used to store a planar feature (Plane for short). 
 
Eigen::Vector3f v3PpalDir
 
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in all CSerializable classes implementation files. 
 
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
 
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations. 
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr planePointCloudPtr
 
GLsizei const GLchar ** string
 
pcl::PointCloud< PointT >::Ptr globalMapPtr
 
#define CFileGZOutputStream
Saves data to a file and transparently compress the data using the given compression level...
 
unsigned id
! Parameters to allow the plane-based representation of the map by a graph 
 
Eigen::Vector3f v3center
! Geometric description 
 
std::vector< Plane > vPlanes
 
unsigned __int32 uint32_t
 
A class used to store a Plane-based Map (PbMap).