Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SimulationViewer.H

Go to the documentation of this file.
00001 /*!@file Neuro/SimulationViewer.H visualize various model simulations */
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/SimulationViewer.H $
00035 // $Id: SimulationViewer.H 10825 2009-02-11 07:46:59Z itti $
00036 //
00037 
00038 #ifndef SIMULATIONVIEWER_H_DEFINED
00039 #define SIMULATIONVIEWER_H_DEFINED
00040 
00041 #include "Component/ModelComponent.H"
00042 #include "Component/ModelParam.H"
00043 #include "Image/Image.H"
00044 #include "Media/MediaSimEvents.H"
00045 #include "Simulation/SimModule.H"
00046 
00047 template <class T> class Image;
00048 
00049 //! This class provides an abstract interface for a simulation viewer
00050 /*! Its typical usage is with a model that generates shifts of
00051   attention, eye and head movements. Derivatives from this class will
00052   handle visualizing those events. See SimulationViewerStd.H for an
00053   example of such derivative. The base class described here just
00054   specifies the interface. */
00055 class SimulationViewer : public SimModule {
00056 public:
00057   // ######################################################################
00058   /*! @name Constructors and destructors */
00059   //@{
00060 
00061   //! Constructor. See ModelComponent.H.
00062     /*! @param mgr our ModelManager (see ModelManager.H)
00063       @param descrName descriptive name for human usage
00064       @param tagName name for ParamMap usage */
00065   SimulationViewer(OptionManager& mgr,
00066                    const std::string& descrName = "Simulation Viewer",
00067                    const std::string& tagName = "SimulationViewer");
00068 
00069   //! Destructor
00070   virtual ~SimulationViewer();
00071 
00072   //@}
00073 
00074 protected:
00075   //! Callback for when a new scene description is available
00076   SIMCALLBACK_DECLARE(SimulationViewer, SimEventSceneDescription);
00077 
00078   //! Callback for when a new object description is available
00079   SIMCALLBACK_DECLARE(SimulationViewer, SimEventObjectDescription);
00080 
00081   OModelParam<bool> itsDisplayInterp; //!< use interpolation to display maps?
00082   OModelParam<float> itsMapFactor; //!< factor to use to display maps
00083   OModelParam<std::string> itsMapType; //!< type of map to use for displays
00084 
00085   //! Helper function to get the latest ''saliency map''
00086   /*! What is returned here could be SM, AGM, TRM, VCO, etc in
00087     normalized or un-normalized form, depending upon the values of
00088     itsMapFactor and itsMapType. If warn is true an error will be
00089     displayed if no suitable map is found in the event queue */
00090   Image<float> getMap(SimEventQueue& q, const bool warn = true) const;
00091 };
00092 
00093 #endif
00094 
00095 // ######################################################################
00096 /* So things look consistent in everyone's emacs... */
00097 /* Local Variables: */
00098 /* indent-tabs-mode: nil */
00099 /* End: */

Generated on Sun Mar 21 13:51:57 2010 for iLab Neuromorphic Vision Toolkit by  doxygen 1.4.4