$search
00001 /* 00002 * ObjectTest.h 00003 * 00004 * Created on: Apr 27, 2011 00005 * Author: sdries 00006 */ 00007 00008 #ifndef MHT_SEMANTICOBJECT_H_ 00009 #define MHT_SEMANTICOBJECT_H_ 00010 00011 #include "wire/core/PropertySet.h" 00012 #include <list> 00013 00014 namespace mhf { 00015 00016 class ClassModel; 00017 class Evidence; 00018 class Assignment; 00019 class Hypothesis; 00020 00021 class SemanticObject : public PropertySet { 00022 00023 public: 00024 00025 static int N_SEMANTICOBJECT; 00026 00027 std::list<SemanticObject*>::iterator it_obj_storage_; 00028 00029 SemanticObject(long ID); 00030 00031 SemanticObject(const SemanticObject& orig); 00032 00033 virtual ~SemanticObject(); 00034 00035 void init(const Evidence& z); 00036 00037 void update(const Evidence& z); 00038 00039 SemanticObject* clone() const; 00040 00041 double getLastUpdateTime() const; 00042 00043 double getTimestamp() const; 00044 00045 const ClassModel& getExpectedObjectModel() const; 00046 00047 double getLikelihood(const PropertySet& ev) const; 00048 00049 void addPotentialAssignment(const Evidence& ev, double probability); 00050 00051 ObjectID getID() const; 00052 00053 void addToHypothesis(Hypothesis* hyp); 00054 00055 void removeFromHypothesis(Hypothesis* hyp); 00056 00057 unsigned int getNumParentHypotheses() const; 00058 00059 protected: 00060 00061 ObjectID ID_; 00062 00063 std::string expected_class_; 00064 00065 std::set<Hypothesis*> parent_hypotheses_; 00066 00067 }; 00068 00069 } 00070 00071 #endif /* SEMANTICOBJECT_H_ */