00001 // $id$ 00002 00003 #ifndef BALL_SCORING_COMMON_SCORINGCOMPONENT 00004 #define BALL_SCORING_COMMON_SCORINGCOMPONENT 00005 00006 #include <BALL/DATATYPE/string.h> 00007 #include <BALL/SCORING/COMMON/scoringFunction.h> 00008 00009 namespace BALL 00010 { 00011 00012 class ScoringFunction; 00013 00014 class ScoringComponent 00015 { 00016 00017 public: 00018 00020 ScoringComponent() 00021 ; 00022 00024 ScoringComponent(const ScoringComponent& sc) 00025 ; 00026 00028 ScoringComponent(ScoringFunction& sf) 00029 ; 00030 00032 virtual ~ScoringComponent() 00033 ; 00034 00036 virtual void clear() 00037 ; 00038 00040 virtual bool setup() 00041 ; 00042 00044 ScoringFunction* getScoringFunction() const 00045 ; 00046 00048 void setScoringFunction(ScoringFunction& sf) 00049 ; 00050 00052 String getName() const 00053 ; 00054 00056 void setName(const String& name) 00057 ; 00058 00060 virtual double calculateScore() 00061 ; 00062 00064 virtual double getScore() const 00065 ; 00066 00067 00068 protected: 00069 00070 //_ 00071 ScoringFunction* scoring_function_; 00072 00073 //_ 00074 double score_; 00075 00076 00077 private: 00078 00079 //_ 00080 String name_; 00081 00082 }; 00083 00084 } 00085 00086 #endif // BALL_SCORING_COMMON_SCORINGCOMPONENT