18 #ifndef MARKER_SHAPES_HPP_ 19 #define MARKER_SHAPES_HPP_ 22 #include <visualization_msgs/Marker.h> 23 #include <shape_msgs/Mesh.h> 24 #include <shape_msgs/MeshTriangle.h> 26 #include "fcl/shape/geometric_shapes.h" 27 #include "fcl/collision_object.h" 32 #include <fcl/distance.h> 33 #include <fcl/collision_data.h> 47 void init(
const std::string&
root_frame,
double x,
double y,
double z,
48 double quat_x,
double quat_y,
double quat_z,
double quat_w,
49 double color_r,
double color_g,
double color_b,
double color_a);
54 pose.position.x, pose.position.y, pose.position.z,
55 pose.orientation.x, pose.orientation.y, pose.orientation.z, pose.orientation.w,
56 col.
r, col.g, col.b, col.a)
60 MarkerShape(
const std::string&
root_frame, T& fcl_object,
const geometry_msgs::Point& pos,
const geometry_msgs::Quaternion& quat,
const std_msgs::ColorRGBA& col)
61 :
MarkerShape(root_frame, fcl_object, pos.x, pos.y, pos.z, quat.x, quat.y, quat.z, quat.w, col.
r, col.g, col.b, col.a)
66 double x,
double y,
double z,
67 double quat_x = 0.0,
double quat_y = 0.0,
double quat_z = 0.0,
double quat_w = 1.0,
68 double color_r = 0.0,
double color_g = 0.0,
double color_b = 0.0,
double color_a = 1.0);
70 MarkerShape(
const std::string& root_frame,
double x,
double y,
double z,
71 double quat_x = 0.0,
double quat_y = 0.0,
double quat_z = 0.0,
double quat_w = 1.0,
72 double color_r = 0.0,
double color_g = 0.0,
double color_b = 0.0,
double color_a = 1.0);
81 inline uint32_t
getId()
const;
83 inline void setColor(
double color_r,
double color_g,
double color_b,
double color_a = 1.0);
88 inline visualization_msgs::Marker
getMarker();
90 inline void updatePose(
const geometry_msgs::Vector3& pos,
const geometry_msgs::Quaternion& quat);
112 void init(
const std::string&
root_frame,
const std::string& mesh_resource,
double x,
double y,
double z,
113 double quat_x,
double quat_y,
double quat_z,
double quat_w,
114 double color_r,
double color_g,
double color_b,
double color_a);
117 MarkerShape(
const std::string&
root_frame,
const shape_msgs::Mesh& mesh,
const geometry_msgs::Pose&
pose,
const std_msgs::ColorRGBA& col);
119 MarkerShape(
const std::string&
root_frame,
const std::string& mesh_resource,
const geometry_msgs::Pose&
pose,
const std_msgs::ColorRGBA& col)
121 pose.position.x, pose.position.y, pose.position.z,
122 pose.orientation.x, pose.orientation.y, pose.orientation.z, pose.orientation.w,
123 col.
r, col.g, col.b, col.a)
127 MarkerShape(
const std::string&
root_frame,
const std::string& mesh_resource,
const geometry_msgs::Point& pos,
const geometry_msgs::Quaternion& quat,
const std_msgs::ColorRGBA& col)
128 :
MarkerShape(root_frame, mesh_resource, pos.x, pos.y, pos.z, quat.x, quat.y, quat.z, quat.w, col.
r, col.g, col.b, col.a)
133 double x,
double y,
double z,
134 double quat_x = 0.0,
double quat_y = 0.0,
double quat_z = 0.0,
double quat_w = 1.0,
135 double color_r = 0.0,
double color_g = 0.0,
double color_b = 0.0,
double color_a = 1.0);
144 inline uint32_t
getId()
const;
146 inline void setColor(
double color_r,
double color_g,
double color_b,
double color_a = 1.0);
151 inline visualization_msgs::Marker
getMarker();
153 inline void updatePose(
const geometry_msgs::Vector3& pos,
const geometry_msgs::Quaternion& quat);
geometry_msgs::Pose getMarkerPose() const
void init(const std::string &root_frame, double x, double y, double z, double quat_x, double quat_y, double quat_z, double quat_w, double color_r, double color_g, double color_b, double color_a)
Template class implementation for box, sphere and cylinder fcl::shapes. Creates visualization marker...
FclMarkerConverter< T > fcl_marker_converter_
fcl::BVHModel< fcl::RSS > BVH_RSS_t
void updatePose(const geometry_msgs::Vector3 &pos, const geometry_msgs::Quaternion &quat)
visualization_msgs::Marker getMarker()
MarkerShape(const std::string &root_frame, T &fcl_object, const geometry_msgs::Point &pos, const geometry_msgs::Quaternion &quat, const std_msgs::ColorRGBA &col)
static const std::string g_marker_namespace
std::shared_ptr< BVH_RSS_t > ptr_fcl_bvh_
void setColor(double color_r, double color_g, double color_b, double color_a=1.0)
fcl::CollisionObject getCollisionObject() const
MarkerShape(const std::string &root_frame, T &fcl_object, const geometry_msgs::Pose &pose, const std_msgs::ColorRGBA &col)
geometry_msgs::Pose getOriginRelToFrame() const
Interface class marking methods that have to be implemented in derived classes.