RefImgWidget Class Reference

class for drawing reference image in 2D coordination More...

#include <refimagewidget.h>

List of all members.

Signals

void setMousePoint (int mousePoint)
 set pointed image index

Public Member Functions

 RefImgWidget (QWidget *parent=0)
 The Constructor.
 ~RefImgWidget ()
 The deconstructor.
void updateFile (FileReader *fd)
 update file read
void setDrawAble (bool status)
 set drawable or not
void setPointWidget (Point3dWidget *pw)
 set 3d point widget

Public Attributes

FileReader * fileReader
 reference to file reader

Protected Member Functions

void initializeGL ()
 initialize GL
void paintGL ()
 paint GL
void resizeGL (int width, int height)
 resize GL
void mouseMoveEvent (QMouseEvent *event)
 mouse move event
void keyPressEvent (QKeyEvent *e)
 keyboard press event


Detailed Description

class for drawing reference image in 2D coordination

Definition at line 50 of file refimagewidget.h.


Constructor & Destructor Documentation

RefImgWidget::RefImgWidget (  QWidget *  parent = 0  ) 
 

The Constructor.

Definition at line 50 of file refimagewidget.cpp.

00051     : QGLWidget(parent)
00052 {
00053     drawAble = false;
00054     setMouseTracking(true);
00055     mainWindow = qobject_cast<QMainWindow *>(parentWidget());
00056     mainWindow->setWindowTitle("Reference Image");
00057     mainWindow->statusBar()->showMessage("Reference Image");
00058     mainWindow->statusBar()->setFixedHeight(20);
00059     setFocusPolicy(Qt::StrongFocus);
00060 }

RefImgWidget::~RefImgWidget (   ) 
 

The deconstructor.

Definition at line 65 of file refimagewidget.cpp.

00066 {
00067     makeCurrent();
00068 }


Member Function Documentation

void RefImgWidget::initializeGL (   )  [protected]
 

initialize GL

Parameters:
void 
Returns:
void

Definition at line 140 of file refimagewidget.cpp.

00141 {
00142    glClearColor (0.0, 0.0, 0.0, 0.0);
00143    glShadeModel(GL_FLAT);
00144    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
00145 }

void RefImgWidget::keyPressEvent (  QKeyEvent *  e  )  [protected]
 

keyboard press event

Parameters:
QKeyEvent *e
Returns:
void

Definition at line 234 of file refimagewidget.cpp.

00235 {
00236    switch ( e->key() )
00237    {
00238       default:
00239          break;
00240    }
00241 }

void RefImgWidget::mouseMoveEvent (  QMouseEvent *  e  )  [protected]
 

mouse move event

Parameters:
QMouseEvent *e
Returns:
void

Definition at line 75 of file refimagewidget.cpp.

00076 {
00077     if( drawAble ){
00078         int r = getColor(e->x(), e->y(), 0);
00079         int g = getColor(e->x(), e->y(), 1);
00080         int b = getColor(e->x(), e->y(), 2);
00081 
00082         float x = getCoord(e->x(), e->y(), 0);
00083         float y = getCoord(e->x(), e->y(), 1);
00084         float z = getCoord(e->x(), e->y(), 2);
00085 
00086         QString xSt, ySt, zSt;
00087         xSt.sprintf("%2.2f", x);
00088         ySt.sprintf("%2.2f", y);
00089         zSt.sprintf("%2.2f", z);
00090 
00091         if( r != -1 && g != -1 && b != -1 && e->x() >=0 && e->y() >= 0)
00092             if( x == -10 || y == -10 || z == -10)
00093                 mainWindow->statusBar()->showMessage(QString("2D(%1,%2)Color(%3,%4,%5)").arg(e->x()).arg(e->y()).arg(r).arg(g).arg(b));
00094             else
00095                 mainWindow->statusBar()->showMessage(QString("2D(%1,%2)Color(%3,%4,%5)3D(%6,%7,%8)").arg(e->x()).arg(e->y()).arg(r).arg(g).arg(b).arg(xSt).arg(ySt).arg(zSt));
00096     }
00097 }

void RefImgWidget::paintGL (   )  [protected]
 

paint GL

Parameters:
void 
Returns:
void

Definition at line 152 of file refimagewidget.cpp.

References fileReader, FileReader::getNCol(), FileReader::getNRow(), and FileReader::imagePixels.

00153 {
00154     makeCurrent();
00155     glClear(GL_COLOR_BUFFER_BIT);
00156     if(drawAble){
00157     int height = fileReader->getNRow();
00158     int width = fileReader->getNCol();
00159     if( windowHeight - height < 0 ){
00160         glViewport(0, windowHeight - height , (GLsizei) windowHeight, (GLsizei) windowWidth);
00161         glRasterPos2i (0, 0);
00162     }else
00163         glRasterPos2i (0, windowHeight-height );
00164 
00165     // byte array for storing 2d image pixels
00166     GLubyte pixels[height][width][3];
00167 
00168     for(int i = 0; i < height; i ++)
00169         for(int j = 0; j < width; j ++)
00170             for( int k = 0; k < 3; k ++ )
00171                 pixels[i][j][k] = fileReader->imagePixels[height-i][j][k];
00172 
00173     glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
00174 
00175     }
00176     adjustSize();
00177     glFlush ();
00178 }

void RefImgWidget::resizeGL (  int  w,
int  h
)  [protected]
 

resize GL

Parameters:
void 
Returns:
void

Definition at line 215 of file refimagewidget.cpp.

00216 {
00217     glViewport(0, 0, (GLsizei) w, (GLsizei) h);
00218     windowHeight = h;
00219     windowWidth = w;
00220     myHeight = (GLint) h;
00221     glMatrixMode(GL_PROJECTION);
00222     glLoadIdentity();
00223     gluOrtho2D(0.0, (GLdouble) w, 0.0, (GLdouble) h);
00224     glMatrixMode(GL_MODELVIEW);
00225     glLoadIdentity();
00226 }

void RefImgWidget::setDrawAble (  bool  status  ) 
 

set drawable or not

Parameters:
bool status
Returns:
void

Definition at line 196 of file refimagewidget.cpp.

Referenced by updateFile().

00196                                          {
00197     drawAble = status;
00198 }

void RefImgWidget::setMousePoint (  int  mousePoint  )  [signal]
 

set pointed image index

Referenced by setPointWidget().

void RefImgWidget::setPointWidget (  Point3dWidget *  pw  ) 
 

set 3d point widget

Parameters:
Point3dWidget *pw
Returns:
void

Definition at line 205 of file refimagewidget.cpp.

References setMousePoint().

Referenced by MainWidget::MainWidget().

00205                                                   {
00206     point3dWidget = pw;
00207     connect(this, SIGNAL(setMousePoint(int)), point3dWidget, SLOT(setMousePoint(int)));
00208 }

void RefImgWidget::updateFile (  FileReader *  fd  ) 
 

update file read

Parameters:
FileReader *fd
Returns:
void

Definition at line 185 of file refimagewidget.cpp.

References fileReader, and setDrawAble().

Referenced by MainWidget::openFile().

00185                                             {
00186     fileReader = fd;
00187     setDrawAble(true);
00188     updateGL();
00189 }


Member Data Documentation

FileReader* RefImgWidget::fileReader
 

reference to file reader

Definition at line 57 of file refimagewidget.h.

Referenced by paintGL(), and updateFile().


The documentation for this class was generated from the following files:
Generated on Mon Aug 14 10:44:22 2006 for S3DViewer by  doxygen 1.4.4