PathPainter.cpp
Go to the documentation of this file.
00001 /*******************************************************************************
00002  *  PathPainter.cpp
00003  *
00004  *  (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de>
00005  *           Universitaet Koblenz-Landau
00006  *
00007  *  Additional information:
00008  *  $Id: $
00009  *******************************************************************************/
00010 
00011 #include "PathPainter.h"
00012 
00013 #include "Messages/PathDataM.h"
00014 
00015 #include <QtOpenGL>
00016 #include <GL/glut.h>
00017 
00018 
00019 #define THIS PathPainter
00020 
00021 THIS::THIS() : PainterPlugin( )
00022 {
00023   setName ( "Path (Navigation)" );
00024 }
00025 
00026 
00027 THIS::~THIS()
00028 {
00029 }
00030 
00031 
00032 void THIS::processMessage ( Message* newMessage )
00033 {
00034   PainterPlugin::processMessage ( newMessage );
00035   switch ( newMessage->getType() )
00036   {
00037     case MessageTypes::PATH_DATA_M:
00038     {
00039       PathDataM* message = Message::castTo<PathDataM> ( newMessage );
00040       if ( message )
00041       {
00042         m_PathXCoordinates = message->getXCoords();
00043         m_PathYCoordinates = message->getYCoords();
00044         requestRedraw();
00045       }
00046       break;
00047     }
00048 
00049     default:
00050       break;
00051 
00052   }
00053 }
00054 
00055 void THIS::paint ( float next2DLayer )
00056 {
00057   if ( m_PathYCoordinates.size() == 0 )
00058   {
00059     return;
00060   }
00061 
00062   glTranslatef ( 0.0, 0.0, next2DLayer );
00063 
00064   glBegin ( GL_LINE_STRIP );
00065   glColor3f ( 1.0, 0.0, 1.0 );
00066   glLineWidth ( 3 );
00067   for ( unsigned int i = 0; i < m_PathXCoordinates.size(); i++ )
00068   {
00069     glVertex3f ( m_PathXCoordinates[i], m_PathYCoordinates[i], 0.0 );
00070   }
00071   glEnd();
00072 
00073   for ( unsigned int i = 0; i < m_PathXCoordinates.size(); i++ )
00074   {
00075     glBegin ( GL_POLYGON );
00076     for ( float alpha = 0; alpha < 2 * M_PI; alpha += M_PI / 8 )
00077     {
00078       glVertex3f ( m_PathXCoordinates[i] + 50.0 * sin ( alpha ), m_PathYCoordinates[i] + 50.0 * cos ( alpha ), 0.0 );
00079     }
00080     glEnd();
00081   }
00082 }
00083 
00084 #undef THIS


obj_rec_gui
Author(s): AGAS/agas@uni-koblenz.de
autogenerated on Mon Oct 6 2014 02:53:43