rock_widget_collection  0.1
Public Slots | Signals | Public Member Functions | List of all members
RangeViewGL Class Reference

#include <RangeViewGL.h>

Inherits ImageViewOldGL.

Public Slots

void repaintFunc ()
 
void setXRotation (int angle)
 
void setYRotation (int angle)
 
void setZRotation (int angle)
 
void setxPosition (int value)
 
void setyPosition (int value)
 
void setzPosition (int value)
 
void setZoomMin (float value)
 
void setZoomMax (float value)
 
void initializeGL ()
 
void paintGL ()
 
void resizeGL (int, int)
 
void mousePressEvent (QMouseEvent *)
 
void mouseMoveEvent (QMouseEvent *)
 
void wheelEvent (QWheelEvent *)
 

Signals

void xRotationChanged (int angle)
 
void yRotationChanged (int angle)
 
void zRotationChanged (int angle)
 
void xPositionChanged (int value)
 
void yPositionChanged (int value)
 
void zPositionChanged (int value)
 

Public Member Functions

 RangeViewGL (ImageViewOld &parent)
 
virtual ~RangeViewGL ()
 
QSize minimumSizeHint () const
 
QSize sizeHint () const
 
void setPosition (int xRot, int yRot, int zRot, int xMove, int yMove, int zMove, float zoom, int width, int height)
 
void setData (const std::vector< Eigen::Vector3d > data)
 
void keyPressEvent (QKeyEvent *event)
 
- Public Member Functions inherited from ImageViewOldGL
 ImageViewOldGL (ImageViewOld &parent)
 
virtual ~ImageViewOldGL ()
 
void setGLViewPoint (int display_width=0, int display_height=0)
 
void setAspectRatio (bool value)
 

Detailed Description

Definition at line 15 of file RangeViewGL.h.

Constructor & Destructor Documentation

◆ RangeViewGL()

RangeViewGL::RangeViewGL ( ImageViewOld parent)

Definition at line 23 of file RangeViewGL.cc.

23  :
24  ImageViewOldGL(parent),
25  zoom( 45.0 )
26 
27 {
28  xRot =0;//180*16;
29  yRot = 0;
30  zRot = 0;
31  xShift = 0;
32  yShift = 0;
33  zShift = 0;
34  zoom_min = -6000.0;
35  zoom_max = 6000.0;
36 // repaintTimer.setSingleShot(false);
37 // repaintTimer.setInterval(100);
38 // connect(&repaintTimer,SIGNAL(timeout()),this,SLOT(repaintFunc()));
39 // repaintTimer.start();
40 
41 }
ImageViewOldGL(ImageViewOld &parent)

◆ ~RangeViewGL()

RangeViewGL::~RangeViewGL ( )
virtual

Definition at line 52 of file RangeViewGL.cc.

53 {
54  //glDeleteLists(object, 1);
55 }

Member Function Documentation

◆ initializeGL

void RangeViewGL::initializeGL ( )
slot

Definition at line 139 of file RangeViewGL.cc.

140 {
141  //qglClearColor(QColor(0.1,0.1,0.0));
142  //qglClearColor(purple.light());
143  //qglClearColor(white);
144  qglClearColor(QColor(0.0,0.0,0.0));
145  glShadeModel(GL_FLAT);
146  glEnable(GL_DEPTH_TEST);
147  glEnable(GL_CULL_FACE);
148 
149  groundPlane = glGenLists(1);
150  glNewList(groundPlane, GL_COMPILE);
151 
152  #if 1 // draw the grid
153 
154  glDisable( GL_LIGHTING );
155  glDisable( GL_COLOR_MATERIAL ) ;
156 
157  float size = 50.0f;
158  float interval = 1.0f;
159 
160 
161  glColor4f(0.5f,0.5f,1.0f,0.5f);
162  glBegin(GL_LINES);
163  float x = - size*0.5f;
164  while( x <= size*0.5f ) {
165  glVertex3f(-size/2.0f, x, 0.01f);
166  glVertex3f(size/2.0f, x, 0.01f);
167  glVertex3f(x, -size/2.0f, 0.01f);
168  glVertex3f(x, size/2.0f, 0.01f);
169  x += interval;
170  }
171  glEnd();
172 
173  // draw concentric circles
174  float r;
175  for(r=0;r<size/2;r+=interval) {
176  glBegin(GL_LINES);
177  for(x=0;x<(2*3.14152);x+=(2*3.14152)/(r*100)) {
178  glVertex3f(cos(x)*r, sin(x)*r, 0.01f);
179  }
180  glEnd();
181  }
182  glEndList();
183  #endif
184 }

◆ keyPressEvent()

void RangeViewGL::keyPressEvent ( QKeyEvent *  event)

Definition at line 68 of file RangeViewGL.cc.

68  {
69  //printf("bla taste\n");
70  switch (event->key()) {
71  case Qt::Key_W:
72  return;
73  default:
74  return;
75 }
76 }

◆ minimumSizeHint()

QSize RangeViewGL::minimumSizeHint ( ) const

Definition at line 57 of file RangeViewGL.cc.

58 {
59  return QSize(50, 50);
60 }

◆ mouseMoveEvent

void RangeViewGL::mouseMoveEvent ( QMouseEvent *  event)
slot

Definition at line 233 of file RangeViewGL.cc.

234 {
235  //int dx = event->x() - lastPos.x();
236  //int dy = event->y() - lastPos.y();
237 
238  int dxt = event->x() - lastPosTrans.x();
239  int dyt = event->y() - lastPosTrans.y();
240 
241  if (event->buttons() & Qt::LeftButton) {
242  //setXRotation(xRot + 8 * dy);
243  //setZRotation(zRot + 8 * dx);
244  setxPosition(xShift + dxt);
245  setyPosition(yShift - dyt);
246  }else if (event->buttons() & Qt::RightButton) {
247  zoom += (dyt+dxt)/10.0;
248  zoom = std::max<float>( std::min<float>( zoom, zoom_max), zoom_min );
249  }
250 
251  lastPos = event->pos();
252  lastPosTrans = event->pos();
253 
254  //printf("Rot: %i,%i,%i, Pos, (%i,%i,%i), zoom: %f\n",xRot,yRot,zRot,xShift,yShift,zShift,zoom);
255  updateGL();
256 
257 }
void setxPosition(int value)
Definition: RangeViewGL.cc:123
void setyPosition(int value)
Definition: RangeViewGL.cc:128

◆ mousePressEvent

void RangeViewGL::mousePressEvent ( QMouseEvent *  event)
slot

Definition at line 226 of file RangeViewGL.cc.

227 {
228  lastPos = event->pos();
229  lastPosTrans = event->pos();
230  updateGL();
231 }

◆ paintGL

void RangeViewGL::paintGL ( )
slot

Definition at line 188 of file RangeViewGL.cc.

188  {
189  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
190  glLoadIdentity();
191  glTranslated(0, 0, -zoom);
192 
193  glTranslated(double(xShift)/100.0, double(yShift)/100.0, double(zShift)/100.0);
194  glRotated(xRot / 16.0, 1.0, 0.0, 0.0);
195  glRotated(yRot / 16.0, 0.0, 1.0, 0.0);
196  glRotated(zRot / 16.0, 0.0, 0.0, 1.0);
197 
198  double value=255.0;
199  QColor color(value,value,value);
200  QColor red(255.0,0,0);
201  qglColor(red);
202  glBegin(GL_POINTS);
203  glPointSize(5);
204  glVertex3f(0,0,0);
205  glPointSize(1);
206  qglColor(color);
207  for(int i=0;i<data.size();i++){
208  glVertex3f(data[i][0],data[i][1],data[i][2]);
209  }
210  glEnd();
211 
212 }

◆ repaintFunc

void RangeViewGL::repaintFunc ( )
slot

Definition at line 79 of file RangeViewGL.cc.

79  {
80  update();
81  updateGL();
82 }

◆ resizeGL

void RangeViewGL::resizeGL ( int  width,
int  height 
)
slot

Definition at line 216 of file RangeViewGL.cc.

217 {
218  glViewport(0, 0, width, height);
219  glMatrixMode(GL_PROJECTION);
220  glLoadIdentity();
221  gluPerspective( 45.0, (float)width/(float)height, 1.0, 1000.0 );
222  glMatrixMode(GL_MODELVIEW);
223  updateGL();
224 }

◆ setData()

void RangeViewGL::setData ( const std::vector< Eigen::Vector3d >  data)

Definition at line 45 of file RangeViewGL.cc.

45  {
46  mutex.lock();
47  this->data = data;
48  mutex.unlock();
49  updateGL();
50 }

◆ setPosition()

void RangeViewGL::setPosition ( int  xRot,
int  yRot,
int  zRot,
int  xMove,
int  yMove,
int  zMove,
float  zoom,
int  width,
int  height 
)

Definition at line 260 of file RangeViewGL.cc.

260  {
261  resize(width,height);
262  this->xRot = xRot;
263  this->yRot = yRot;
264  this->zRot = zRot;
265  this->xShift = xMove;
266  this->yShift = yMove;
267  this->zShift = zMove;
268  this->zoom = zoom;
269  updateGL();
270 }

◆ setxPosition

void RangeViewGL::setxPosition ( int  value)
slot

Definition at line 123 of file RangeViewGL.cc.

124 {
125  xShift = value;
126  emit xPositionChanged(value);
127 }
void xPositionChanged(int value)

◆ setXRotation

void RangeViewGL::setXRotation ( int  angle)
slot

Definition at line 85 of file RangeViewGL.cc.

86 {
87  normalizeAngle(&angle);
88  if (angle != xRot) {
89  xRot = angle;
90  emit xRotationChanged(angle);
91  }
92 }
void xRotationChanged(int angle)

◆ setyPosition

void RangeViewGL::setyPosition ( int  value)
slot

Definition at line 128 of file RangeViewGL.cc.

129 {
130  yShift = value;
131  emit yPositionChanged(value);
132 }
void yPositionChanged(int value)

◆ setYRotation

void RangeViewGL::setYRotation ( int  angle)
slot

Definition at line 94 of file RangeViewGL.cc.

95 {
96  normalizeAngle(&angle);
97  if (angle != yRot) {
98  yRot = angle;
99  emit yRotationChanged(angle);
100  }
101 }
void yRotationChanged(int angle)

◆ setZoomMax

void RangeViewGL::setZoomMax ( float  value)
slot

Definition at line 117 of file RangeViewGL.cc.

118 {
119  zoom_max = value;
120 }

◆ setZoomMin

void RangeViewGL::setZoomMin ( float  value)
slot

Definition at line 112 of file RangeViewGL.cc.

113 {
114  zoom_min = value;
115 }

◆ setzPosition

void RangeViewGL::setzPosition ( int  value)
slot

Definition at line 133 of file RangeViewGL.cc.

134 {
135  zShift = value;
136  emit zPositionChanged(value);
137 }
void zPositionChanged(int value)

◆ setZRotation

void RangeViewGL::setZRotation ( int  angle)
slot

Definition at line 103 of file RangeViewGL.cc.

104 {
105  normalizeAngle(&angle);
106  if (angle != zRot) {
107  zRot = angle;
108  emit zRotationChanged(angle);
109  }
110 }
void zRotationChanged(int angle)

◆ sizeHint()

QSize RangeViewGL::sizeHint ( ) const

Definition at line 62 of file RangeViewGL.cc.

63 {
64  return QSize(400, 400);
65 }

◆ wheelEvent

void RangeViewGL::wheelEvent ( QWheelEvent *  event)
slot

Definition at line 273 of file RangeViewGL.cc.

274 {
275  zoom -= (2.0*(float)event->delta()/120.0)*5;
276  zoom = std::max<float>( std::min<float>( zoom, zoom_max ), zoom_min);
277  event->accept();
278  updateGL();
279 }

◆ xPositionChanged

void RangeViewGL::xPositionChanged ( int  value)
signal

◆ xRotationChanged

void RangeViewGL::xRotationChanged ( int  angle)
signal

◆ yPositionChanged

void RangeViewGL::yPositionChanged ( int  value)
signal

◆ yRotationChanged

void RangeViewGL::yRotationChanged ( int  angle)
signal

◆ zPositionChanged

void RangeViewGL::zPositionChanged ( int  value)
signal

◆ zRotationChanged

void RangeViewGL::zRotationChanged ( int  angle)
signal

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