
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: */
1.4.4