#ifndef __MANDOWIZARD_HH#define __MANDOWIZARD_HH#include <boost/shared_ptr.hpp>#include "image.h"#include "image_dc1394input.h"#include "image_v4linput.h"#include "rgba.h"#include <QtGui/QDialog>#include "cameraProjectorCalibration.hh"#include "pointerRecognition.hh"#include "ui_mandoWizard.hh"class CalibrateWidget;class CrossWidget;class SelectRectWidget;class VideoWidget;class MandoWizard: public QDialog{Q_OBJECTpublic:typedef mimas::image_input< mimas::rgba< unsigned char > > Video;typedef mimas::image_v4linput< mimas::rgba< unsigned char > > V4LInput;typedef mimas::image_dc1394input< mimas::rgba< unsigned char > > DC1394Input;typedef boost::shared_ptr< Video > VideoPtr;typedef boost::shared_ptr< V4LInput > V4LInputPtr;typedef boost::shared_ptr< DC1394Input > DC1394InputPtr;typedef boost::numeric::ublas::vector< double > Vector;MandoWizard( QWidget *parent = 0, Qt::WFlags = 0 );PointerRecognitionPtr pointerRecognition;VideoPtr input;V4LInputPtr v4lInput;DC1394InputPtr dc1394Input;public slots:void updateEnabled(void);protected slots:void calibrate();void previousPage();void nextPage();void loadSearchPattern();void loadProjectedPattern();void reconnectCamera();void displayCalibFrame(int);void displayDifference(bool);void grabReferenceImage();void setThreshold(int);void setSigma(double);void setRange(int);void startDrag();void stopDrag();void setCameraParameters(void);protected:virtual void timerEvent( QTimerEvent *e );void showPage( int index );bool loadImage( const char *title,mimas::image< mimas::rgba< unsigned char > > &img );void setupVideo(void);void displayCalibResult( int index, bool diff );VideoPtr camera(void) throw (mimas::mimasexception);mimas::image< mimas::rgba< unsigned char > > grabColourFrame( bool twice = true )throw (mimas ::mimasexception);mimas::image< unsigned char > grabFrame(void) throw (mimas::mimasexception);Ui::MandoWizard ui;mimas::image< mimas::rgba< unsigned char > > searchPattern;mimas::image< mimas::rgba< unsigned char > > projectedPattern;VideoWidget *videoWidget;VideoWidget *searchPatternWidget;VideoWidget *projectedPatternWidget;CrossWidget *calibFrameWidget;SelectRectWidget *referenceImageWidget;CrossWidget *segmentedWidget;int videoTimer;CalibrateWidget *calibrateWidget;int calibTimer;CameraProjectorCalibrationPtr cameraProjectorCalibration;enum { Init = 0, First, Second, Third, Fourth, Fifth, Closing, Finished }calibState;int segmentationTimer;int screenW;int screenH;int pointerTimer;};#endif