SegmentedColorFilterBankEvent.h
Go to the documentation of this file.00001
00002 #ifndef INCLUDED_SegmentedColorFilterBankEvent_h_
00003 #define INCLUDED_SegmentedColorFilterBankEvent_h_
00004
00005 #include "Events/FilterBankEvent.h"
00006 #include "Vision/cmvision.h"
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 class SegmentedColorFilterBankEvent : public FilterBankEvent {
00018 public:
00019 typedef CMVision::color_class_state color_class_state;
00020 typedef CMVision::color_name_map color_name_map;
00021
00022
00023 SegmentedColorFilterBankEvent(FilterBankGenerator* creator,EventBase::EventGeneratorID_t gid,size_t sid,EventBase::EventTypeID_t tid, FilterBankGenerator* segColorSrc, unsigned int nColors, color_class_state * colorInfos, const color_name_map * clrNames)
00024 : FilterBankEvent(creator,gid,sid,tid), segsrc(segColorSrc), numColors(nColors), colors(colorInfos), colorNames(clrNames)
00025 {}
00026
00027
00028 SegmentedColorFilterBankEvent(FilterBankGenerator* creator,EventBase::EventGeneratorID_t gid,size_t sid,EventBase::EventTypeID_t tid, const SegmentedColorFilterBankEvent& segevt )
00029 : FilterBankEvent(creator,gid,sid,tid), segsrc(segevt.segsrc), numColors(segevt.numColors), colors(segevt.colors), colorNames(segevt.colorNames)
00030 {}
00031
00032
00033 SegmentedColorFilterBankEvent(const SegmentedColorFilterBankEvent& fbk)
00034 : FilterBankEvent(fbk), segsrc(fbk.segsrc), numColors(fbk.numColors),
00035 colors(fbk.colors), colorNames(fbk.colorNames)
00036 {}
00037
00038
00039 const SegmentedColorFilterBankEvent& operator=(const SegmentedColorFilterBankEvent& fbk) {
00040 EventBase::operator=(fbk);
00041 segsrc=fbk.segsrc; numColors=fbk.numColors;
00042 colors=fbk.colors; colorNames=fbk.colorNames;
00043 return *this;
00044 }
00045
00046 virtual EventBase* clone() const { return new SegmentedColorFilterBankEvent(*this); }
00047
00048
00049
00050
00051
00052 inline FilterBankGenerator* getSegmentedColorSource() const { return segsrc; }
00053
00054
00055 inline unsigned int getNumColors() const { return numColors; }
00056
00057
00058 inline const color_class_state * getColors() const { return colors; }
00059
00060
00061 inline const color_class_state& getColor(unsigned int i) const { return colors[i]; }
00062
00063
00064 inline unsigned int getColorIndex(const char * name) const {
00065 color_name_map::const_iterator i = colorNames->find(name);
00066 return (i==colorNames->end())?-1U:i->second;
00067 }
00068
00069
00070 inline unsigned int getColorIndex(const std::string& name) const { return getColorIndex(name.c_str()); }
00071
00072 virtual classTypeID_t getClassTypeID() const { return autoRegisterSegmentedColorFilterBankEvent; }
00073
00074 protected:
00075
00076 FilterBankGenerator* segsrc;
00077 unsigned int numColors;
00078 const color_class_state * colors;
00079 const color_name_map * colorNames;
00080
00081
00082
00083 static const EventBase::classTypeID_t autoRegisterSegmentedColorFilterBankEvent;
00084
00085
00086 SegmentedColorFilterBankEvent() : FilterBankEvent(), segsrc(NULL), numColors(), colors(), colorNames() {}
00087 friend struct Factory0Arg<EventBase>::Factory<SegmentedColorFilterBankEvent>;
00088 };
00089
00090
00091
00092
00093
00094
00095 #endif