44#include <pcl/point_cloud.h>
45#include <pcl/io/file_io.h>
46#include <boost/interprocess/sync/file_lock.hpp>
237 Eigen::Vector4f &
origin, Eigen::Quaternionf &orientation,
int &
pcd_version,
const int offset = 0)
override;
276 template<
typename Po
intT>
int
281 int res =
read (file_name,
blob, cloud.sensor_origin_, cloud.sensor_orientation_,
314 map_synchronization_ = sync;
324 const Eigen::Vector4f &
origin,
325 const Eigen::Quaternionf &orientation);
340 const Eigen::Vector4f &
origin,
341 const Eigen::Quaternionf &orientation);
350 const Eigen::Vector4f &
origin,
351 const Eigen::Quaternionf &orientation);
360 const Eigen::Vector4f &
origin,
361 const Eigen::Quaternionf &orientation);
368 template <
typename Po
intT>
static std::string
370 const int nr_points = std::numeric_limits<int>::max ());
390 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
391 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity (),
402 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
403 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity ());
417 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
418 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity ());
432 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
433 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity ());
454 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
455 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity (),
456 const bool binary =
false)
override
459 return (writeBinary (file_name, cloud,
origin, orientation));
460 return (writeASCII (file_name, cloud,
origin, orientation, 8));
480 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
481 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity (),
482 const bool binary =
false)
491 template <
typename Po
intT>
int
492 writeBinary (
const std::string &file_name,
503 template <
typename Po
intT>
int
504 writeBinaryCompressed (
const std::string &file_name,
512 template <
typename Po
intT>
int
513 writeBinary (
const std::string &file_name,
522 template <
typename Po
intT>
int
523 writeASCII (
const std::string &file_name,
533 template <
typename Po
intT>
int
534 writeASCII (
const std::string &file_name,
552 template<
typename Po
intT>
inline int
553 write (
const std::string &file_name,
555 const bool binary =
false)
576 template<
typename Po
intT>
inline int
577 write (
const std::string &file_name,
594 boost::interprocess::file_lock &lock);
602 boost::interprocess::file_lock &lock);
606 bool map_synchronization_;
624 return (p.
read (file_name, cloud));
637 Eigen::Vector4f &
origin, Eigen::Quaternionf &orientation)
649 template<
typename Po
intT>
inline int
653 return (p.
read (file_name, cloud));
673 const Eigen::Vector4f &
origin = Eigen::Vector4f::Zero (),
674 const Eigen::Quaternionf &orientation = Eigen::Quaternionf::Identity (),
695 template<
typename Po
intT>
inline int
718 template<
typename Po
intT>
inline int
722 return (w.
write<
PointT> (file_name, cloud,
false));
734 template<
typename Po
intT>
inline int
758 template<
typename Po
intT>
int
779 template<
typename Po
intT>
inline int
789#include <pcl/io/impl/pcd_io.hpp>
Iterator class for point clouds with or without given indices.
Point Cloud Data (FILE) file format reader interface.
Point Cloud Data (FILE) file format writer.
Point Cloud Data (PCD) file format reader.
int readHeader(const std::string &file_name, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, int &data_type, unsigned int &data_idx, const int offset=0) override
Read a point cloud data header from a PCD file.
int readHeader(std::istream &binary_istream, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, int &data_type, unsigned int &data_idx)
Read a point cloud data header from a PCD-formatted, binary istream.
PCDReader()
Empty constructor.
int read(const std::string &file_name, pcl::PCLPointCloud2 &cloud, const int offset=0)
Read a point cloud data from a PCD (PCD_V6) and store it into a pcl/PCLPointCloud2.
int read(const std::string &file_name, pcl::PointCloud< PointT > &cloud, const int offset=0)
Read a point cloud data from any PCD file, and convert it to the given template format.
~PCDReader()
Empty destructor.
int read(const std::string &file_name, pcl::PCLPointCloud2 &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation, int &pcd_version, const int offset=0) override
Read a point cloud data from a PCD file and store it into a pcl/PCLPointCloud2.
int readBodyASCII(std::istream &stream, pcl::PCLPointCloud2 &cloud, int pcd_version)
Read the point cloud data (body) from a PCD stream.
int readBodyBinary(const unsigned char *data, pcl::PCLPointCloud2 &cloud, int pcd_version, bool compressed, unsigned int data_idx)
Read the point cloud data (body) from a block of memory.
int readHeader(const std::string &file_name, pcl::PCLPointCloud2 &cloud, const int offset=0)
Read a point cloud data header from a PCD file.
Point Cloud Data (PCD) file format writer.
std::string generateHeaderASCII(const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin, const Eigen::Quaternionf &orientation)
Generate the header of a PCD file format.
void resetLockingPermissions(const std::string &file_name, boost::interprocess::file_lock &lock)
Reset permissions for file locking (Boost 1.49+).
void setLockingPermissions(const std::string &file_name, boost::interprocess::file_lock &lock)
Set permissions for file locking (Boost 1.49+).
int write(const std::string &file_name, const pcl::PointCloud< PointT > &cloud, const bool binary=false)
Save point cloud data to a PCD file containing n-D points.
int writeBinaryCompressed(std::ostream &os, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity())
Save point cloud data to a std::ostream containing n-D points, in BINARY_COMPRESSED format.
std::string generateHeaderBinary(const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin, const Eigen::Quaternionf &orientation)
Generate the header of a PCD file format.
int write(const std::string &file_name, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity(), const bool binary=false) override
Save point cloud data to a PCD file containing n-D points.
std::string generateHeaderBinaryCompressed(const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin, const Eigen::Quaternionf &orientation)
Generate the header of a BINARY_COMPRESSED PCD file format.
int writeBinary(const std::string &file_name, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity())
Save point cloud data to a PCD file containing n-D points, in BINARY format.
int write(const std::string &file_name, const pcl::PCLPointCloud2::ConstPtr &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity(), const bool binary=false)
Save point cloud data to a PCD file containing n-D points.
void setMapSynchronization(bool sync)
Set whether mmap() synchornization via msync() is desired before munmap() calls.
int generateHeaderBinaryCompressed(std::ostream &os, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin, const Eigen::Quaternionf &orientation)
Generate the header of a BINARY_COMPRESSED PCD file format.
int write(const std::string &file_name, const pcl::PointCloud< PointT > &cloud, const pcl::Indices &indices, bool binary=false)
Save point cloud data to a PCD file containing n-D points.
int writeASCII(const std::string &file_name, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity(), const int precision=8)
Save point cloud data to a PCD file containing n-D points, in ASCII format.
int writeBinaryCompressed(const std::string &file_name, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity())
Save point cloud data to a PCD file containing n-D points, in BINARY_COMPRESSED format.
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
int savePCDFileASCII(const std::string &file_name, const pcl::PointCloud< PointT > &cloud)
Templated version for saving point cloud data to a PCD file containing a specific given cloud format.
int savePCDFile(const std::string &file_name, const pcl::PCLPointCloud2 &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity(), const bool binary_mode=false)
Save point cloud data to a PCD file containing n-D points.
int savePCDFileBinary(const std::string &file_name, const pcl::PointCloud< PointT > &cloud)
Templated version for saving point cloud data to a PCD file containing a specific given cloud format.
int loadPCDFile(const std::string &file_name, pcl::PCLPointCloud2 &cloud)
Load a PCD v.6 file into a templated PointCloud type.
int savePCDFileBinaryCompressed(const std::string &file_name, const pcl::PointCloud< PointT > &cloud)
Templated version for saving point cloud data to a PCD file containing a specific given cloud format.
Defines functions, macros and traits for allocating and using memory.
void read(std::istream &stream, Type &value)
Function for reading data from a stream.
IndicesAllocator<> Indices
Type used for indices in PCL.
void write(std::ostream &stream, Type value)
Function for writing data to a stream.
void fromPCLPointCloud2(const pcl::PCLPointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map)
Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
Defines all the PCL and non-PCL macros used.
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr
A point structure representing Euclidean xyz coordinates, and the RGB color.