rock_widget_collection  0.1
RangeView.cc
Go to the documentation of this file.
1 /*
2  * File: RangeViewGL.cc
3  * Author: Matthias Goldhoorn (matthias.goldhoorn@dfki.de)
4  *
5  */
6 
7 #include <stdexcept>
8 #include "RangeView.h"
9 #include "RangeViewGL.h"
10 #include <QtCore/QtPlugin>
11 #include "RangeViewGL.h"
12 
13 RangeView::RangeView(QWidget *parent,bool use_openGL):
14 ImageViewOld(parent,use_openGL)
15 {
16  image_view_gl = NULL;
17  //setOpenGL(use_openGL);
18  setOpenGL(true);
19 }
20 
21 
23 {
24 }
25 
26 void RangeView::setOpenGL(bool flag)
27 {
28  if(flag)
29  {
30  //prevent activating if it is already activated
31  if(image_view_gl)
32  return;
33 
34  image_view_gl = new RangeViewGL(*this);
35  if (!image_view_gl)
36  return;
37  image_view_gl->resize(width(),height());
38  //image_view_gl->setAspectRatio(aspect_ratio);
39  image_view_gl->show();
40  }
41  else
42  {
43  delete image_view_gl;
44  image_view_gl = NULL;
45  }
46 
47 }
48 
49 void RangeView::setRangeScan3(const QList<double> &data){
50  setRangeScan(data.toVector().data(),data.size());
51 }
52 
53 void RangeView::setRangeScan(double *data, int size){
54  if(size%3!=0){
55  fprintf(stderr,"Cannot set data from non division of three\n");
56  }
57  RangeViewGL *window = dynamic_cast<RangeViewGL*>(image_view_gl);
58  if(!window){
59  fprintf(stderr,"Cannot set data have no widget?!\n");
60  return;
61  }
62  std::vector<Eigen::Vector3d> points;
63  for(int i=0;i<size;i+=3){
64  points.push_back(Eigen::Vector3d(data[i],data[i+1],data[i+2]));
65 
66  }
67  window->setData(points);
68 }
69 
70 void RangeView::keyPressEvent ( QKeyEvent * event ){
71  RangeViewGL *window = dynamic_cast<RangeViewGL*>(image_view_gl);
72  window->keyPressEvent(event);
73 }
RangeView(QWidget *parent=NULL, bool use_openGL=false)
Definition: RangeView.cc:13
void keyPressEvent(QKeyEvent *event)
Definition: RangeView.cc:70
void setData(const std::vector< Eigen::Vector3d > data)
Definition: RangeViewGL.cc:45
void setRangeScan3(const QList< double > &data)
Definition: RangeView.cc:49
ImageViewOldGL * image_view_gl
Definition: ImageViewOld.h:195
void setOpenGL(bool flag)
Definition: RangeView.cc:26
void keyPressEvent(QKeyEvent *event)
Definition: RangeViewGL.cc:68
void setRangeScan(double *data, int size)
Definition: RangeView.cc:53
virtual ~RangeView()
Definition: RangeView.cc:22