00001 /* 00002 * Assignment.h 00003 * 00004 * Created on: Jul 28, 2011 00005 * Author: sdries 00006 */ 00007 00008 #ifndef WM_ASSIGNMENT_H_ 00009 #define WM_ASSIGNMENT_H_ 00010 00011 #include <string> 00012 00013 namespace mhf { 00014 00015 class Evidence; 00016 class SemanticObject; 00017 00018 class Assignment { 00019 00020 public: 00021 00022 enum AssignmentType { 00023 NEW, 00024 EXISTING, 00025 CLUTTER 00026 }; 00027 00028 virtual ~Assignment(); 00029 00030 Assignment(AssignmentType type, const Evidence* evidence, const SemanticObject* target, double probability); 00031 00032 AssignmentType getType() const; 00033 00034 const Evidence* getEvidence() const; 00035 00036 const SemanticObject* getTarget() const; 00037 00038 double getProbability() const; 00039 00040 SemanticObject* getNewObject() const; 00041 00042 SemanticObject* getUpdatedObject() const; 00043 00044 std::string toString() const; 00045 00046 protected: 00047 00048 AssignmentType type_; 00049 00050 const Evidence* evidence_; 00051 00052 const SemanticObject* target_; 00053 00054 double probability_; 00055 00056 mutable SemanticObject* new_object_; 00057 00058 mutable SemanticObject* updated_object_; 00059 }; 00060 00061 } 00062 00063 #endif /* ASSIGNMENT_H_ */