trajopt
 All Classes Namespaces Files Functions Variables Typedefs Pages
sim_kinect.hpp
1 #pragma once
2 #include <openrave/openrave.h>
3 #include <osg/Geometry>
4 #include <osgViewer/Viewer>
5 #include <Eigen/Core>
6 #include "macros.h"
7 
8 struct RGB {
9  unsigned char r,g,b;
10 };
11 
12 
13 class KinectCallback : public osg::Camera::DrawCallback {
14 
15 public:
16 
17  osg::ref_ptr<osg::Image> m_depthbufferimg;
18  osg::ref_ptr<osg::Image> m_colorbufferimg;
19  Eigen::MatrixXf m_depthimg;
20 
21  KinectCallback( osg::Camera* camera ) ;
22  void operator () ( osg::RenderInfo& info ) const;
23 };
24 
25 class TRAJOPT_API FakeKinect {
26 public:
27  FakeKinect(osg::Group* root);
28  void SetPose(const OpenRAVE::Transform& pose);
29  void SetIntrinsics(float f);
30  void Update();
31  float* GetDepthImage();
32  unsigned char* GetColorImage(); // XXX this is bad if the row size is not a multiple of 4
33 
34  osg::ref_ptr<osg::Camera> m_cam;
35  osgViewer::Viewer m_viewer;
36  osg::ref_ptr<KinectCallback> m_cb;
37  OpenRAVE::Transform m_tf;
38  float m_f;
39 };