estar/ComparisonFacade.hpp

Go to the documentation of this file.
00001 /* 
00002  * Copyright (C) 2007 Roland Philippsen <roland dot philippsen at gmx net>
00003  * 
00004  * This program is free software; you can redistribute it and/or modify
00005  * it under the terms of the GNU General Public License as published by
00006  * the Free Software Foundation; either version 2 of the License, or
00007  * (at your option) any later version.
00008  * 
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  * GNU General Public License for more details.
00013  * 
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00017  * USA
00018  */
00019 
00020 
00021 #ifndef ESTAR_COMPARISON_FACADE_HPP
00022 #define ESTAR_COMPARISON_FACADE_HPP
00023 
00024 
00025 #include <estar/FacadeWriteInterface.hpp>
00026 #include <boost/shared_ptr.hpp>
00027 
00028 
00029 namespace estar {
00030   
00031   
00032   class FacadeReadInterface;
00033   class Facade;
00034   class AlgorithmOptions;
00035   class GridOptions;
00036   
00037   
00038   class ComparisonFacade
00039     : public FacadeWriteInterface
00040   {
00041   private:
00042     ComparisonFacade(boost::shared_ptr<Facade> master,
00043                      boost::shared_ptr<Facade> sample);
00044     
00045   public:
00050     static boost::shared_ptr<ComparisonFacade>
00051     Create(const std::string & master_kernel_name,
00052            double master_scale,
00053            GridOptions const & master_grid_options,
00054            AlgorithmOptions const & master_algo_options,
00055            const std::string & sample_kernel_name,
00056            double sample_scale,
00057            GridOptions const & sample_grid_options,
00058            AlgorithmOptions const & sample_algo_options,
00059            FILE * dbgstream);
00060     
00066     static boost::shared_ptr<ComparisonFacade>
00067     CreateDefault(ssize_t xsize, ssize_t ysize, double scale);
00068     
00073     boost::shared_ptr<FacadeReadInterface const> GetMaster() const;
00074     
00079     boost::shared_ptr<FacadeReadInterface const> GetSample() const;
00080     
00086     virtual bool SetMeta(ssize_t ix, ssize_t iy, double meta);
00087     
00088 //     /**
00089 //        Implements FacadeWriteInterface::InitMeta() by initializing the
00090 //        meta on both master and sample.
00091 //     */
00092 //     virtual void InitMeta(ssize_t ix, ssize_t iy, double meta);
00093     
00099     virtual bool AddGoal(ssize_t ix, ssize_t iy, double value);
00100     
00106     virtual void RemoveAllGoals();
00107     
00114     virtual void ComputeOne();
00115      
00120     virtual void Reset();
00121     
00122     
00123   private:
00124     boost::shared_ptr<Facade> m_master;
00125     boost::shared_ptr<Facade> m_sample;
00126   };
00127   
00128 } // namespace estar
00129 
00130 #endif // ESTAR_COMPARISON_FACADE_HPP

doxygen SourceForge.net Logo
E* Interpolated Graph Replanner Wed Dec 12 18:55:40 2007