00001 /*!@file Neuro/StdBrain.C A canonical brain, which a standard set of channels. */ 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/StdBrain.C $ 00035 // $Id: StdBrain.C 13657 2010-07-12 22:43:55Z beobot $ 00036 // 00037 00038 #include "Neuro/StdBrain.H" 00039 #include "Channels/ChannelBase.H" 00040 #include "Component/OptionManager.H" 00041 #include "Neuro/AttentionGate.H" 00042 #include "Neuro/AttentionGuidanceMap.H" 00043 #include "Neuro/GistEstimator.H" 00044 #include "Neuro/GistEstimatorConfigurator.H" 00045 #include "Neuro/InferoTemporal.H" 00046 #include "Neuro/InferoTemporalConfigurator.H" 00047 #include "Neuro/PrefrontalCortex.H" 00048 #include "Neuro/Retina.H" 00049 #include "Neuro/EyeHeadControllerConfigurator.H" 00050 #include "Neuro/HandControllerConfigurator.H" 00051 #include "Neuro/SaliencyMap.H" 00052 #include "Neuro/SaliencyMapConfigurator.H" 00053 #include "Neuro/ShapeEstimator.H" 00054 #include "Neuro/SimulationViewer.H" 00055 #include "Neuro/SimulationViewerConfigurator.H" 00056 #include "Neuro/TargetChecker.H" 00057 #include "Neuro/TaskRelevanceMap.H" 00058 #include "Neuro/VisualBuffer.H" 00059 #include "Neuro/VisualCortex.H" 00060 #include "Neuro/VisualCortexConfigurator.H" 00061 #include "Neuro/WinnerTakeAll.H" 00062 #include "Neuro/WinnerTakeAllConfigurator.H" 00063 00064 // ###################################################################### 00065 StdBrain::StdBrain(OptionManager& mgr, const std::string& descrName, 00066 const std::string& tagName) : 00067 Brain(mgr, descrName, tagName), 00068 pfc(new PrefrontalCortexConfigurator(mgr)), 00069 rec(new RetinaConfigurator(mgr)), 00070 vcc(new VisualCortexConfigurator(mgr)), 00071 gec(new GistEstimatorConfigurator(mgr)), 00072 smc(new SaliencyMapConfigurator(mgr)), 00073 trmc(new TaskRelevanceMapConfigurator(mgr)), 00074 agmc(new AttentionGuidanceMapConfigurator(mgr)), 00075 agc(new AttentionGateConfigurator(mgr)), 00076 wtac(new WinnerTakeAllConfigurator(mgr)), 00077 tc(new TargetChecker(mgr)), 00078 se(new ShapeEstimator(mgr)), 00079 scc(new EyeHeadControllerConfigurator(mgr)), 00080 hand(new HandControllerConfigurator(mgr)), 00081 it(new InferoTemporalConfigurator(mgr)), 00082 vbc(new VisualBufferConfigurator(mgr)), 00083 svc(new SimulationViewerConfigurator(mgr)) 00084 { 00085 // NOTE: if callback priorities are all zero, the order here defines 00086 // the order in which the callbacks will be called when several 00087 // modules are catching a given event: 00088 addSubComponent(tc); 00089 addSubComponent(se); 00090 addSubComponent(pfc); // make sure it can get configured 00091 addSubComponent(rec); // make sure it can get configured 00092 addSubComponent(scc); // make sure it can get configured 00093 addSubComponent(hand); // make sure it can get configured 00094 addSubComponent(vcc); // make sure it can get configured 00095 addSubComponent(smc); // make sure it can get configured 00096 addSubComponent(gec); // make sure it can get configured 00097 addSubComponent(trmc); // make sure it can get configured 00098 addSubComponent(agmc); // make sure it can get configured 00099 addSubComponent(agc); // make sure it can get configured 00100 addSubComponent(wtac); // make sure it can get configured 00101 addSubComponent(it); // make sure it can get configured 00102 addSubComponent(vbc); // make sure it can get configured 00103 addSubComponent(svc); // make sure it can get configured 00104 } 00105 00106 // ###################################################################### 00107 StdBrain::~StdBrain() 00108 { } 00109 00110 // ###################################################################### 00111 /* So things look consistent in everyone's emacs... */ 00112 /* Local Variables: */ 00113 /* indent-tabs-mode: nil */ 00114 /* End: */