64 lines
1.6 KiB
C
64 lines
1.6 KiB
C
|
/**
|
||
|
* @file
|
||
|
* @brief IO of a 3D scan
|
||
|
* @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany.
|
||
|
* @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany.
|
||
|
*/
|
||
|
|
||
|
#ifndef __SCAN_IO_H__
|
||
|
#define __SCAN_IO_H__
|
||
|
|
||
|
#include <string>
|
||
|
using std::string;
|
||
|
#include <vector>
|
||
|
using std::vector;
|
||
|
|
||
|
#include "point.h"
|
||
|
|
||
|
/**
|
||
|
* @brief IO of a 3D scan
|
||
|
*
|
||
|
* This class needs to be instantiated by a class loading
|
||
|
* 3D scans from different file formats.
|
||
|
*/
|
||
|
class ScanIO {
|
||
|
public:
|
||
|
/**
|
||
|
* Default constructor
|
||
|
*/
|
||
|
ScanIO() {}
|
||
|
/**
|
||
|
* Destructor
|
||
|
*/
|
||
|
virtual ~ScanIO() {}
|
||
|
|
||
|
/**
|
||
|
* Reads specified scans from given directory.
|
||
|
*
|
||
|
* Scan poses will NOT be initialized after a call
|
||
|
* to this function.
|
||
|
*
|
||
|
* This function is pure virtual. The actual functions
|
||
|
* for loading a 3D scan are called scan_io_*
|
||
|
*
|
||
|
* @param start Starts to read with this scan
|
||
|
* @param end Stops with this scan
|
||
|
* @param dir The directory from which to read
|
||
|
* @param maxDist Reads only Points up to this Distance
|
||
|
* @param minDist Reads only Points from this Distance
|
||
|
* @param euler Initital pose estimates (will not be applied to the points
|
||
|
* @param ptss Vector containing the read points
|
||
|
*/
|
||
|
virtual int readScans(int start, int end, string &dir, int maxDist, int mindist,
|
||
|
double *euler, vector<Point> &ptss) = 0;
|
||
|
};
|
||
|
|
||
|
// Since the shared object files are loaded on the fly, we
|
||
|
// need class factories
|
||
|
|
||
|
// the types of the class factories
|
||
|
typedef ScanIO* create_sio();
|
||
|
typedef void destroy_sio(ScanIO*);
|
||
|
|
||
|
#endif
|