libpointmatcher  1.3.1
Classes | Public Types | Static Public Member Functions | List of all members
PointMatcherIO< T > Struct Template Reference

IO Functions and classes that are dependant on scalar type are defined in this templatized class. More...

#include <IO.h>

Classes

struct  CsvDescriptor
 A structure to hold information about descriptors contained in a CSV file. More...
 
struct  FileInfo
 Information to exploit a reading from a file using this library. Fields might be left blank if unused. More...
 
struct  FileInfoVector
 A vector of file info, to be used in batch processing. More...
 
struct  GenericInputHeader
 Helper structure designed to parse file headers. More...
 
class  LabelGenerator
 Generate a vector of Labels by checking for collision is the same name is reused. More...
 
struct  PCDheader
 All information contained in the header of a PCD file. More...
 
struct  PCDproperty
 Information for a PCD property. More...
 
class  PLYElement
 Interface for all PLY elements. More...
 
class  PLYElementF
 Factory for PLY elements. More...
 
struct  PLYProperty
 Interface for PLY property. More...
 
class  PLYVertex
 Implementation of PLY vertex element. More...
 
struct  SplitTime
 Storage for time loaded separatly. More...
 
struct  SupportedLabel
 Structure containing all information required to map external information to PointMatcher internal representation. More...
 

Public Types

enum  PMPropTypes { FEATURE, DESCRIPTOR, TIME, UNSUPPORTED }
 Type of information in a DataPoints. Each type is stored in its own dense matrix.
 
enum  SupportedVTKDataTypes { POLYDATA, UNSTRUCTURED_GRID }
 Enumeration of legacy VTK data types that can be parsed.
 
typedef PointMatcher< T >::Vector Vector
 alias
 
typedef PointMatcher< T >::Matrix Matrix
 alias
 
typedef PointMatcher< T >::Int64Matrix Int64Matrix
 alias
 
typedef PointMatcher< T >::DataPoints DataPoints
 alias
 
typedef PointMatcher< T >::TransformationParameters TransformationParameters
 alias
 
typedef PointMatcher< T >::Matrix Parameters
 alias
 
typedef PointMatcher< T >::DataPoints::Label Label
 alias
 
typedef PointMatcher< T >::DataPoints::Labels Labels
 alias
 
typedef std::pair< int, std::string > LabelAssociationPair
 Pair feature column, feature name.
 
typedef std::map< std::string, LabelAssociationPairSublabelAssociationMap
 Map to associate common descriptor sublabels to PM descriptor matrix row and labels ex: nx, ny, nz are associated with (0,normals) (1,normals) (2,normals) respectively.
 
typedef std::vector< SupportedLabelSupportedLabels
 Vector of supported labels in PointMatcher and their external names.
 
typedef std::map< std::string, std::vector< PLYProperty > > PLYDescPropMap
 Map from a descriptor name to a list PLY property ex: "normals" -> nx, ny ,nz.
 
typedef std::vector< PLYPropertyPLYProperties
 Vector of properties specific to PLY files.
 
typedef PLYProperties::iterator it_PLYProp
 Iterator for a vector of PLY properties.
 

Static Public Member Functions

static std::string getColLabel (const Label &label, const int row)
 convert a descriptor label to an appropriate sub-label
 
static const SupportedLabelsgetSupportedExternalLabels ()
 Vector containing the mapping of all external names to PointMatcher representation. More...
 
static DataPoints loadCSV (const std::string &fileName)
 Associate an external name to a DataPoints type of information. More...
 
static DataPoints loadCSV (std::istream &is)
 Load comma separated values (csv) file. More...
 
static void saveCSV (const DataPoints &data, const std::string &fileName)
 Save point cloud to a file as CSV.
 
static void saveCSV (const DataPoints &data, std::ostream &os)
 Save point cloud to a stream as CSV.
 
static DataPoints loadVTK (const std::string &fileName)
 Load point cloud from a file as VTK.
 
static DataPoints loadVTK (std::istream &is)
 Load point cloud from a stream as VTK.
 
static void saveVTK (const DataPoints &data, const std::string &fileName, bool binary=false)
 Save point cloud to a file as VTK.
 
static DataPoints loadPLY (const std::string &fileName)
 Load polygon file format (ply) file. More...
 
static DataPoints loadPLY (std::istream &is)
 Load polygon file format (PLY) file. More...
 
static void savePLY (const DataPoints &data, const std::string &fileName)
 save datapoints to PLY point cloud format
 
static DataPoints loadPCD (const std::string &fileName)
 Load Point Cloud Library (pcd) file. More...
 
static DataPoints loadPCD (std::istream &is)
 Load PCD file. More...
 
static void savePCD (const DataPoints &data, const std::string &fileName)
 save datapoints to PCD point cloud format
 
static bool plyPropTypeValid (const std::string &type)
 Check that property defined by type is a valid PLY type note: type must be lowercase.
 

Detailed Description

template<typename T>
struct PointMatcherIO< T >

IO Functions and classes that are dependant on scalar type are defined in this templatized class.

Member Function Documentation

◆ getSupportedExternalLabels()

template<typename T>
static const SupportedLabels& PointMatcherIO< T >::getSupportedExternalLabels ( )
inlinestatic

Vector containing the mapping of all external names to PointMatcher representation.

The order is important (i.e., nx before ny). This can also be used to remap 1D descriptor name to a better one.

◆ loadCSV() [1/2]

template<typename T >
template PointMatcher< double >::DataPoints PointMatcherIO< T >::loadCSV ( const std::string &  fileName)
static

Associate an external name to a DataPoints type of information.

Load comma separated values (csv) file.

Parameters
fileNamea string containing the path and the file name

This loader has 3 behaviors since there is no official standard for csv files. A 2D or 3D point cloud will be created automatically if:

  • there is a header with columns named x, y and optionnaly z
  • there are only 2 or 3 columns in the file

Otherwise, the user is asked to enter column id manually which might block automatic processing.

◆ loadCSV() [2/2]

template<typename T >
PointMatcher< T >::DataPoints PointMatcherIO< T >::loadCSV ( std::istream &  is)
static

Load comma separated values (csv) file.

See also
loadCSV()

◆ loadPCD() [1/2]

template<typename T >
template PointMatcherIO< double >::DataPoints PointMatcherIO< T >::loadPCD ( const std::string &  fileName)
static

Load Point Cloud Library (pcd) file.

Parameters
fileNamea string containing the path and the file name

◆ loadPCD() [2/2]

template<typename T >
PointMatcherIO< T >::DataPoints PointMatcherIO< T >::loadPCD ( std::istream &  is)
static

Load PCD file.

See also
loadPCD()

◆ loadPLY() [1/2]

template<typename T >
template PointMatcherIO< double >::DataPoints PointMatcherIO< T >::loadPLY ( const std::string &  fileName)
static

Load polygon file format (ply) file.

Parameters
fileNamea string containing the path and the file name

Note: that the PLY does not define a standard for point clouds Warning: Binary PLY files are not supported, only ASCII Only PLY files with elements named "vertex" are supported "vertex" should have 2 or 3 properties names "x", "y", "z" to define features.

◆ loadPLY() [2/2]

template<typename T >
PointMatcherIO< T >::DataPoints PointMatcherIO< T >::loadPLY ( std::istream &  is)
static

Load polygon file format (PLY) file.

See also
loadPLY()

The documentation for this struct was generated from the following files: