00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef PEEKABOT_MTOW_PROP_ADAPTER_HH_INCLUDED
00023 #define PEEKABOT_MTOW_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 #include <Eigen/Core>
00032 #include <Eigen/Geometry>
00033
00034
00035 namespace peekabot
00036 {
00037 class MtowPropAdapter : public Prop
00038 {
00039 public:
00040 virtual void set(const Any &val, SceneObject *obj)
00041 {
00042 obj->set_transformation(
00043 any_cast<Eigen::Transform3f>(val), WORLD_COORDINATES);
00044 }
00045
00046 virtual Any get(const SceneObject *obj) const
00047 {
00048 return Any(obj->get_mtow());
00049 }
00050
00051 virtual void accept(PropVisitor &visitor)
00052 {
00053 visitor.visit(this);
00054 }
00055
00056 SignalType &signal(SceneObject *obj)
00057 {
00058 return obj->mtow_changed_signal();
00059 }
00060 };
00061 }
00062
00063
00064 #endif // PEEKABOT_MTOW_PROP_ADAPTER_HH_INCLUDED