00001 /* 00002 * ExternalFace.hpp 00003 * 00004 * Created on: Dec 14, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef EXTERNALFACE_HPP_ 00009 #define EXTERNALFACE_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 #include <obs_detection/ObstacleProvider.hpp> 00013 00014 #include <telekyb_base/Options.hpp> 00015 00016 using namespace TELEKYB_NAMESPACE; 00017 00018 namespace telekyb_obs { 00019 00020 struct Face { 00021 Eigen::Vector3d origin; 00022 Eigen::Vector3d dir1; 00023 Eigen::Vector3d dir2; 00024 }; 00025 00026 class ExternalFaceOptions : public OptionContainer { 00027 public: 00028 Option< std::vector<Eigen::Vector3d> >* tInputFaces; 00029 ExternalFaceOptions(); 00030 }; 00031 00032 class ExternalFace : public ObstacleProvider { 00033 protected: 00034 ExternalFaceOptions options; 00035 00036 // Faces 00037 std::vector< Face > faces; 00038 00039 public: 00040 ExternalFace(); 00041 virtual ~ExternalFace(); 00042 00043 // called directly after Creation 00044 virtual void initialize(); 00045 00046 // called right before destruction 00047 virtual void destroy(); 00048 00049 virtual void getObstaclePoints(const TKState& lastState, std::vector<Position3D>& obstaclePoints) const; 00050 }; 00051 00052 } /* namespace telekyb_obs */ 00053 #endif /* EXTERNALFACE_HPP_ */