00001 /* 00002 * ObstacleProvider.hpp 00003 * 00004 * Created on: Dec 14, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef OBSTACLEPROVIDER_HPP_ 00009 #define OBSTACLEPROVIDER_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 00013 #include <telekyb_base/Spaces.hpp> 00014 00015 #include <telekyb_base/Messages.hpp> 00016 00017 // plugin stuff 00018 #include <pluginlib/class_list_macros.h> 00019 00020 // stl 00021 #include <string> 00022 #include <vector> 00023 00024 namespace TELEKYB_NAMESPACE { 00025 00026 class ObstacleProvider { 00027 protected: 00028 std::string name; 00029 ObstacleProvider(const std::string& name_); 00030 00031 public: 00032 virtual ~ObstacleProvider(); 00033 std::string getName() const; 00034 00035 // called directly after Creation 00036 virtual void initialize() = 0; 00037 00038 // called right before destruction 00039 virtual void destroy() = 0; 00040 00041 virtual void getObstaclePoints(const TKState& lastState, std::vector<Position3D>& obstaclePoints) const = 0; 00042 }; 00043 00044 } /* namespace telekyb */ 00045 #endif /* OBSTACLEPROVIDER_HPP_ */