Ascii Point Cloud Reader. Read any ASCII file by setting the separating characters and input point fields. More...
#include <ascii_io.h>
Public Member Functions | |
ASCIIReader () | |
virtual int | read (const std::string &file_name, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &file_version, const int offset=0) |
Read a point cloud data from a FILE file and store it into a pcl/PCLPointCloud2. | |
virtual int | readHeader (const std::string &file_name, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &file_version, int &data_type, unsigned int &data_idx, const int offset=0) |
Read a point cloud data header from a FILE file. | |
void | setExtension (const std::string &ext) |
Set the extension of the ascii point file type. | |
void | setInputFields (const std::vector< pcl::PCLPointField > &fields) |
Set the ascii file point fields using a list of fields. | |
template<typename PointT > | |
void | setInputFields (const PointT p=PointT()) |
Set the ascii file point fields using a point type. | |
void | setSepChars (const std::string &chars) |
Set the Separting characters for the ascii point fields 2. | |
virtual | ~ASCIIReader () |
Protected Member Functions | |
int | parse (const std::string &token, const pcl::PCLPointField &field, uint8_t *data_target) |
Parses token based on field type. | |
uint32_t | typeSize (int type) |
Returns the size in bytes of a point field type. | |
Protected Attributes | |
std::string | extension_ |
std::vector< pcl::PCLPointField > | fields_ |
std::string | name_ |
std::string | sep_chars_ |
Ascii Point Cloud Reader. Read any ASCII file by setting the separating characters and input point fields.
Definition at line 54 of file ascii_io.h.
Definition at line 46 of file ascii_io.cpp.
pcl::ASCIIReader::~ASCIIReader | ( | ) | [virtual] |
Definition at line 81 of file ascii_io.cpp.
int pcl::ASCIIReader::parse | ( | const std::string & | token, |
const pcl::PCLPointField & | field, | ||
uint8_t * | data_target | ||
) | [protected] |
Parses token based on field type.
[in] | token | string representation of point fields |
[in] | field | token point field type |
[out] | data_target | address that the point field data should be assigned to returns the size of the parsed point field in bytes |
Definition at line 195 of file ascii_io.cpp.
int pcl::ASCIIReader::read | ( | const std::string & | file_name, |
pcl::PCLPointCloud2 & | cloud, | ||
Eigen::Vector4f & | origin, | ||
Eigen::Quaternionf & | orientation, | ||
int & | file_version, | ||
const int | offset = 0 |
||
) | [virtual] |
Read a point cloud data from a FILE file and store it into a pcl/PCLPointCloud2.
[in] | file_name | the name of the file containing the actual PointCloud data |
[out] | cloud | the resultant PointCloud message read from disk |
[out] | origin | the sensor acquisition origin (only for > FILE_V7 - null if not present) |
[out] | orientation | the sensor acquisition orientation (only for > FILE_V7 - identity if not present) |
[out] | file_version | the FILE version of the file (either FILE_V6 or FILE_V7) |
[in] | offset | the offset in the file where to expect the true header to begin. One usage example for setting the offset parameter is for reading data from a TAR "archive containing multiple files: TAR files always add a 512 byte header in front of the actual file, so set the offset to the next byte after the header (e.g., 513). |
Implements pcl::FileReader.
Definition at line 131 of file ascii_io.cpp.
int pcl::ASCIIReader::readHeader | ( | const std::string & | file_name, |
pcl::PCLPointCloud2 & | cloud, | ||
Eigen::Vector4f & | origin, | ||
Eigen::Quaternionf & | orientation, | ||
int & | file_version, | ||
int & | data_type, | ||
unsigned int & | data_idx, | ||
const int | offset = 0 |
||
) | [virtual] |
Read a point cloud data header from a FILE file.
Load only the meta information (number of points, their types, etc), and not the points themselves, from a given FILE file. Useful for fast evaluation of the underlying data structure.
Returns: * < 0 (-1) on error * > 0 on success
[in] | file_name | the name of the file to load |
[out] | cloud | the resultant point cloud dataset (only the header will be filled) |
[out] | origin | the sensor acquisition origin (only for > FILE_V7 - null if not present) |
[out] | orientation | the sensor acquisition orientation (only for > FILE_V7 - identity if not present) |
[out] | file_version | the FILE version of the file (either FILE_V6 or FILE_V7) |
[out] | data_type | the type of data (binary data=1, ascii=0, etc) |
[out] | data_idx | the offset of cloud data within the file |
[in] | offset | the offset in the file where to expect the true header to begin. One usage example for setting the offset parameter is for reading data from a TAR "archive containing multiple files: TAR files always add a 512 byte header in front of the actual file, so set the offset to the next byte after the header (e.g., 513). |
Implements pcl::FileReader.
Definition at line 87 of file ascii_io.cpp.
void pcl::ASCIIReader::setExtension | ( | const std::string & | ext | ) | [inline] |
Set the extension of the ascii point file type.
[in] | ext | extension (example : ".txt" or ".xyz" ) |
Definition at line 130 of file ascii_io.h.
void pcl::ASCIIReader::setInputFields | ( | const std::vector< pcl::PCLPointField > & | fields | ) |
Set the ascii file point fields using a list of fields.
[in] | fields | is a list of point fields, in order, in the input ascii file |
Definition at line 181 of file ascii_io.cpp.
void pcl::ASCIIReader::setInputFields | ( | const PointT | p = PointT () | ) |
Set the ascii file point fields using a point type.
[in] | p | a point type |
Definition at line 159 of file ascii_io.h.
void pcl::ASCIIReader::setSepChars | ( | const std::string & | chars | ) |
Set the Separting characters for the ascii point fields 2.
[in] | chars | string of separating characters Sets the separating characters for the point fields. The default separating characters are " \n\t," |
Definition at line 188 of file ascii_io.cpp.
boost::uint32_t pcl::ASCIIReader::typeSize | ( | int | type | ) | [protected] |
Returns the size in bytes of a point field type.
[in] | type | point field type returns the size of the type in bytes |
Definition at line 248 of file ascii_io.cpp.
std::string pcl::ASCIIReader::extension_ [protected] |
Definition at line 134 of file ascii_io.h.
std::vector<pcl::PCLPointField> pcl::ASCIIReader::fields_ [protected] |
Definition at line 135 of file ascii_io.h.
std::string pcl::ASCIIReader::name_ [protected] |
Definition at line 136 of file ascii_io.h.
std::string pcl::ASCIIReader::sep_chars_ [protected] |
Definition at line 133 of file ascii_io.h.