Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #pragma once
00028 #ifndef PLANEPOLYGON_H_
00029 #define PLANEPOLYGON_H_
00030
00031 #include "plane.h"
00032 #include <Eigen/Geometry>
00033
00034 #define LINE_WIDTH 0.01
00035
00036 namespace srs_interaction_primitives
00037 {
00047 class PlanePolygon : public Plane
00048 {
00049 public:
00057 PlanePolygon(InteractiveMarkerServerPtr server, std::string frame_id, std::string name);
00058
00063 Ogre::Vector3 getNormal()
00064 {
00065 return normal_;
00066 }
00067
00072 void setNormal(Ogre::Vector3 normal)
00073 {
00074 normal_ = normal;
00075 }
00076
00081 void setNormal(geometry_msgs::Vector3 normal)
00082 {
00083 normal_ = Ogre::Vector3(normal.x, normal.y, normal.z);
00084 }
00085
00090 void setPolygon(geometry_msgs::Polygon polygon)
00091 {
00092 polygon_ = polygon;
00093 }
00094
00095 protected:
00096 void create();
00097
00098 private:
00099
00100 Ogre::Vector3 normal_;
00101 geometry_msgs::Polygon polygon_;
00102 visualization_msgs::Marker polygon_mesh_;
00103 };
00104
00105 }
00106
00107 #endif