pnf/PNFRiskMap.hpp

Go to the documentation of this file.
00001 /* 
00002  * Copyright (C) 2004
00003  * Swiss Federal Institute of Technology, Lausanne. All rights reserved.
00004  * 
00005  * Author: Roland Philippsen <roland dot philippsen at gmx net>
00006  *         Autonomous Systems Lab <http://asl.epfl.ch/>
00007  * 
00008  * This program is free software; you can redistribute it and/or modify
00009  * it under the terms of the GNU General Public License as published by
00010  * the Free Software Foundation; either version 2 of the License, or
00011  * (at your option) any later version.
00012  * 
00013  * This program is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  * 
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00021  * USA
00022  */
00023 
00024 
00025 #ifndef PNF_RISK_MAP_HPP
00026 #define PNF_RISK_MAP_HPP
00027 
00028 
00029 #include <estar/RiskMap.hpp>
00030 #include <string>
00031 
00032 
00033 namespace pnf {
00034   
00035   
00041   class PNFRiskMap
00042     : public estar::RiskMap
00043   {
00044   protected:
00045     PNFRiskMap(const std::string & name, double cutoff, double degree);
00046     
00047   public:
00048     const std::string name;
00049     const double cutoff;
00050     const double degree;
00051     
00052     static PNFRiskMap * Create(const std::string & name,
00053                                double cutoff, double degree);
00054     
00062     virtual double RiskToMeta(double risk) const = 0;
00063     
00068     virtual double MetaToRisk(double meta) const = 0;
00069   };
00070   
00071   
00073   class Spike: public PNFRiskMap {
00074   public:
00075     Spike(double cutoff, double degree);
00076     virtual double RiskToMeta(double risk) const;
00077     virtual double MetaToRisk(double meta) const;
00078   };
00079   
00080   
00083   class Blunt: public PNFRiskMap {
00084   public:
00085     Blunt(double cutoff, double degree);
00086     virtual double RiskToMeta(double risk) const;
00087     virtual double MetaToRisk(double meta) const;
00088   };
00089   
00090   
00092   class Sigma: public PNFRiskMap {
00093   public:
00094     Sigma(double cutoff, double degree);
00095     virtual double RiskToMeta(double risk) const;
00096     virtual double MetaToRisk(double meta) const;
00097   };
00098   
00099 }
00100 
00101 #endif // PNF_RISK_MAP_HPP

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