00001 #ifndef __VGRIDOBJECT_HPP
00002 #define __VGRIDOBJECT_HPP
00003
00004 #include <ocean/plankton/VObjectValue.hpp>
00005 #include "VBundleObject.hpp"
00006
00007 #include <bundle/Bundle.hpp>
00008
00009 namespace Wizt
00010 {
00011 using namespace Fiber;
00012
00016 class FISHOBJECTS_API VGridObject : public VBundleObject
00017 {
00018 public:
00019 RefPtr<GridID> GridName;
00020
00021 typedef RefPtr<VObjectComponentParameter<VGridObject, RefPtr<GridID> > > GridParameter_t;
00022
00023 RefPtr<VParameter> GridParameter;
00024
00025 VGridObject(const string&name, int p, const RefPtr<VCreationPreferences>&VP);
00026
00027 VGridObject(const BundlePtr&Bndl, const RefPtr<GridID>&Gname, int p, const RefPtr<VCreationPreferences>&VP);
00028
00029 ~VGridObject();
00030
00031 override bool update(const VRequest&, double precision);
00032
00033 override bool implements(const type_info&what) const;
00034
00035 override const RefPtr<VParameter>&getImplementation(const type_info&what, const string&name = "");
00036 };
00037
00038
00039 template <>
00040 class VValueTrait<RefPtr<GridID> >
00041 {
00042 public:
00043 static bool setValueFromText(RefPtr<GridID>&i, const string&s)
00044 {
00045 return false;
00046 }
00047
00048 static string Text(const RefPtr<GridID>&n)
00049 {
00050 return n->Name();
00051 }
00052
00053 };
00054
00055 #if 0
00056
00061 struct GridValue : public VObjectComponent<VGridObject, RefPtr<Grid> >
00062 {
00063 GridValue(VGridObject*vg)
00064 : VObjectComponent<VGridObject, RefPtr<Grid> >(vg, &VGridObject::CurrentGrid)
00065 {}
00066
00068 override const type_info&getType() const
00069 {
00070 return typeid(Grid);
00071 }
00072
00074 override bool getValueFrom(const WeakPtr<VValueBase>&V)
00075 {
00076 return false;
00077 }
00078
00080 override bool setValueFromText(const string&s)
00081 {
00082 return false;
00083 }
00084
00088 override string Text() const
00089 {
00090 return "";
00091 }
00092 };
00093 #endif
00094
00095 }
00096
00097 #endif
00098