00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef PEEKABOT_LAYER_PROP_ADAPTER_HH_INCLUDED
00023 #define PEEKABOT_LAYER_PROP_ADAPTER_HH_INCLUDED
00024
00025
00026 #include "Prop.hh"
00027 #include "SceneObject.hh"
00028 #include "PropVisitor.hh"
00029
00030 #include <boost/cstdint.hpp>
00031
00032
00033 namespace peekabot
00034 {
00035 class LayerPropAdapter : public Prop
00036 {
00037 public:
00038 virtual void set(const Any &val, SceneObject *obj)
00039 {
00040 obj->set_layer(any_cast<boost::uint8_t>(val));
00041 }
00042
00043 virtual Any get(const SceneObject *obj) const
00044 {
00045 return Any(obj->get_layer());
00046 }
00047
00048 virtual void accept(PropVisitor &visitor)
00049 {
00050 visitor.visit(this);
00051 }
00052
00053 SignalType &signal(SceneObject *obj)
00054 {
00055 return obj->layer_set_signal();
00056 }
00057 };
00058 }
00059
00060
00061 #endif // PEEKABOT_LAYER_PROP_ADAPTER_HH_INCLUDED