00001
00002
00003
00004
00006 #ifndef __PARAMETERSPACE_HPP
00007 #define __PARAMETERSPACE_HPP "Created 25.08.2004 19:16:22 by bzfbenge"
00008
00009 #include "BundleAPI.h"
00010 #include <memcore/RefPtr.hpp>
00011 #include <string>
00012 #include <vector>
00013
00014 namespace Fiber
00015 {
00016 using namespace MemCore;
00017 using std::string;
00018 using std::vector;
00019
00020
00021 class BUNDLE_API ParameterID : public ReferenceBase<ParameterID>
00022 {
00023 string name;
00024 public:
00025 ParameterID(const string&n)
00026 : ReferenceBase<ParameterID>(this)
00027 , name(n)
00028 {}
00029
00030 string Name() const
00031 {
00032 return name;
00033 }
00034 };
00035
00036 class BUNDLE_API Parameter
00037 {
00038 public:
00039 RefPtr<ParameterID> Id;
00040 double value;
00041
00042 Parameter(const RefPtr<ParameterID>&id, double val)
00043 : Id(id), value(val)
00044 {}
00045 };
00046
00047 class BUNDLE_API ParameterSet
00048 {
00049 public:
00050 vector<Parameter> parameters;
00051 public:
00052 ParameterSet();
00053
00054 ParameterSet&operator+=(const Parameter&P)
00055 {
00056 parameters.push_back(P);
00057 return *this;
00058 }
00059
00060 string name(int i) const
00061 {
00062 assert(i<(int)parameters.size() );
00063 if (!parameters[i].Id)
00064 return "?";
00065
00066 return parameters[i].Id->Name();
00067 }
00068
00069 double&operator[](int i)
00070 {
00071 assert(i<(int)parameters.size() );
00072 return parameters[i].value;
00073 }
00074
00075 int size() const
00076 {
00077 return parameters.size();
00078 }
00079 };
00080
00081 class BUNDLE_API ParameterList
00082 {
00083 list<RefPtr<ParameterID> > Id;
00084 public:
00085 ParameterList();
00086 ~ParameterList();
00087 };
00088
00089 class BUNDLE_API ParameterSpace
00090 {
00091 public:
00092 };
00093
00094
00095 }
00096
00097 #endif