ChannelVisitorInstallFacet.H

Go to the documentation of this file.
00001 /*!@file Channels/ChannelVisitorInstallFacet.H Install some ChannelFacet */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
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/Channels/ChannelVisitorInstallFacet.H $
00035 // $Id: ChannelVisitorInstallFacet.H 10794 2009-02-08 06:21:09Z itti $
00036 //
00037 
00038 #ifndef CHANNELS_CHANNELVISITORINSTALLFACET_H_DEFINED
00039 #define CHANNELS_CHANNELVISITORINSTALLFACET_H_DEFINED
00040 
00041 #include "Channels/ChannelVisitor.H"
00042 
00043 /// ChannelVisitorInstallFacet install some ChannelFacet
00044 /** This visitor installs some ChannelFacet. The two template
00045     arguments are for the ChannelFacetSingle and the
00046     ChannelFacetComplex to be installed. */
00047 template <class CFS, class CFC>
00048 class ChannelVisitorInstallFacet : public ChannelVisitor {
00049 public:
00050   /// Constructor
00051   ChannelVisitorInstallFacet();
00052 
00053   /// Destructor
00054   virtual ~ChannelVisitorInstallFacet();
00055 
00056   /// Visit the given ChannelBase node.
00057   /** This will just LFATAL() for ChannelVisitorInstallFacet. */
00058   virtual void visitChannelBase(ChannelBase& chan);
00059 
00060   /// Visit the given SingleChannel node.
00061   /** Install appropriate ChannelFacetGainSingle and
00062       ChannelFacetGainComplex if those do not already exist. Then load
00063       up the gains from our ParamMap. */
00064   virtual void visitSingleChannel(SingleChannel& chan);
00065 
00066   /// Visit the given ComplexChannel node.
00067   /** NOTE: ComplexChannel does NOT provide the iteration over its
00068       subchannels; instead, each ChannelVisitor subclass must iterate
00069       over ComplexChannel's subchannels, calling
00070       subChan(i)->accept(*this) for each one. Although this requires
00071       slightly more code for each ChannelVisitor subclass, it is also
00072       much more flexible since it lets the visitor be aware of the
00073       hierarchical structres of the various channels that it
00074       visits. */
00075   virtual void visitComplexChannel(ComplexChannel& chan);
00076 };
00077 
00078 // ######################################################################
00079 /* So things look consistent in everyone's emacs... */
00080 /* Local Variables: */
00081 /* mode: c++ */
00082 /* indent-tabs-mode: nil */
00083 /* End: */
00084 
00085 #endif
Generated on Sun May 8 08:40:21 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3