SimulationViewerEyeSim.H

Go to the documentation of this file.
00001 /*!@file Neuro/SimulationViewerEyeSim.H simulate an eye-tracker recording */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2003   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file: Laurent Itti <itti@usc.edu>
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Neuro/SimulationViewerEyeSim.H $
00035 // $Id: SimulationViewerEyeSim.H 10821 2009-02-11 07:32:37Z itti $
00036 //
00037 
00038 #ifndef SIMULATIONVIEWEREYESIM_H_DEFINED
00039 #define SIMULATIONVIEWEREYESIM_H_DEFINED
00040 
00041 #include "Component/ModelParam.H"
00042 #include "Neuro/SimulationViewerStd.H"
00043 
00044 class EyeHeadController;
00045 
00046 //! Simulate an eye-tracker recording
00047 /*! This simulation viewer has for main purpose to output a text file
00048 that is in the same format as what we would get from a human eye
00049 tracker device (.eye file). Thus it allows us to generate and save eye
00050 movement scanpaths that come from the model but are in the same format
00051 as human recordings. In turn, these scanpaths can then be compared to
00052 actual human scanpaths. SimulationViewerEyeSim derived from
00053 SimulationViewerStd and hence inherits all its behavior, simply adding
00054 provision for generating and saving the .eye scanpath files. */
00055 class SimulationViewerEyeSim : public SimulationViewerStd {
00056 public:
00057   // ######################################################################
00058   /*! @name Constructors and destructors */
00059   //@{
00060 
00061   //! Constructor. See ModelComponent.H.
00062   SimulationViewerEyeSim(OptionManager& mgr,
00063                          const std::string& descrName = "EyeSim Simulation Viewer",
00064                          const std::string& tagName = "SimulationViewerEyeSim");
00065 
00066   //! Destructor
00067   virtual ~SimulationViewerEyeSim();
00068 
00069   //@}
00070 
00071 protected:
00072   //! Overload of callback defined in SimulationViewerStd
00073   virtual void
00074   onSimEventWTAwinner(SimEventQueue& q, rutz::shared_ptr<SimEventWTAwinner>& e);
00075 
00076   //! Name of a calibrated eye movement file
00077   OModelParam<std::string> itsEyeFname;
00078 
00079   //! Period at which eye movement samples should be read in
00080   OModelParam<SimTime> itsEyePeriod;
00081 
00082   //! Number of initial eye movement samples before stimulus starts
00083   OModelParam<int> itsEyeTrash;
00084 
00085   //! Get started
00086   virtual void start1();
00087 
00088   //! get stopped
00089   virtual void stop1();
00090 
00091 private:
00092   FILE *itsOutFile;
00093   Point2D<int> itsLastEyePos;
00094 };
00095 
00096 #endif
00097 
00098 // ######################################################################
00099 /* So things look consistent in everyone's emacs... */
00100 /* Local Variables: */
00101 /* indent-tabs-mode: nil */
00102 /* End: */
Generated on Sun May 8 08:41:04 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3