00001
00002
00003
00004
00005
00006 #ifndef BALL_SCORING_COMMON_BASEFUNCTION
00007 #define BALL_SCORING_COMMON_BASEFUNCTION
00008
00009 namespace BALL
00010 {
00011
00014 class ScoringBaseFunction
00015 {
00016
00017 public:
00018
00021 enum BaseFunctionType
00022 {
00025 BASE_FUNCTION_TYPE__LINEAR,
00026
00029 BASE_FUNCTION_TYPE__FERMI
00030 };
00031
00032
00034 ScoringBaseFunction()
00035 ;
00036
00038 ScoringBaseFunction(float lower, float upper)
00039 ;
00040
00042 virtual ~ScoringBaseFunction()
00043 ;
00044
00046 virtual void setLower(float lower)
00047 ;
00048
00050 virtual void setUpper(float upper)
00051 ;
00052
00054 virtual float calculate(float x) const
00055 ;
00056
00058 virtual float calculate(float x, float lower, float upper)
00059 ;
00060
00061
00062 protected:
00063
00064
00065 float lower_;
00066
00067
00068 float upper_;
00069
00070 };
00071
00072 }
00073
00074
00075 #endif // BALL_SCORING_COMMON_BASEFUNCTION