ControlSource.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef ControlSource_hxx
00023 #define ControlSource_hxx
00024
00025 #include "Processing.hxx"
00026 #include "OutControl.hxx"
00027
00028 namespace CLAM{
00029
00030 class ControlSourceConfig : public ProcessingConfig
00031 {
00032 public:
00033 DYNAMIC_TYPE_USING_INTERFACE ( ControlSourceConfig, 5, ProcessingConfig);
00034 DYN_ATTRIBUTE(0,public,TData, MinValue);
00035 DYN_ATTRIBUTE(1,public,TData, MaxValue);
00036 DYN_ATTRIBUTE(2,public,TData, DefaultValue);
00037 DYN_ATTRIBUTE(3,public,TData, Step);
00038 DYN_ATTRIBUTE(4,public, std::string, UnitName);
00039 protected:
00040 void DefaultInit()
00041 {
00042 AddAll();
00043 UpdateData();
00044 SetMinValue(0.0);
00045 SetMaxValue(100.0);
00046 SetDefaultValue(50.0);
00047 SetStep(1.0);
00048 SetUnitName("-");
00049 }
00050 };
00051
00052 class ControlSource : public Processing
00053 {
00054 private:
00055 ControlSourceConfig mConf;
00056 FloatOutControl mOutput;
00057
00058 public:
00059 typedef ControlSourceConfig Config;
00060
00061 ControlSource(const Config & c= Config())
00062 : mOutput("output",this)
00063 {
00064 ConcreteConfigure(c);
00065 }
00066 ~ControlSource();
00067
00068 bool Do()
00069 {
00070 return true;
00071 }
00072
00073 bool Do( const float value );
00074
00075 const char* GetClassName() const { return "ControlSource";}
00076
00077 bool ConcreteConfigure(const ProcessingConfig &c);
00078
00079 const ProcessingConfig& GetConfig() const
00080 {
00081 return mConf;
00082 }
00083 };
00084 }
00085
00086 #endif//ControlSource_hxx
00087