1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#pragma once
#include "typedefs.h"
#include <pcl/io/openni_grabber.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <mutex>
/* A simple class for capturing data from an OpenNI camera */
class OpenNICapture
{
public:
OpenNICapture (const std::string& device_id = "");
~OpenNICapture ();
void setTriggerMode (bool use_trigger);
const PointCloudPtr snap ();
const PointCloudPtr snapAndSave (const std::string & filename);
protected:
void onNewFrame (const PointCloudConstPtr &cloud);
void onKeyboardEvent (const pcl::visualization::KeyboardEvent & event);
void waitForTrigger ();
pcl::OpenNIGrabber grabber_;
pcl::visualization::PCLVisualizer *preview_;
int frame_counter_;
PointCloudPtr most_recent_frame_;
bool use_trigger_, trigger_;
std::mutex mutex_;
};
|