planning_scene_render.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Willow Garage, Inc.
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  *
00008  *     * Redistributions of source code must retain the above copyright
00009  *       notice, this list of conditions and the following disclaimer.
00010  *     * Redistributions in binary form must reproduce the above copyright
00011  *       notice, this list of conditions and the following disclaimer in the
00012  *       documentation and/or other materials provided with the distribution.
00013  *     * Neither the name of the Willow Garage, Inc. nor the names of its
00014  *       contributors may be used to endorse or promote products derived from
00015  *       this software without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00027  * POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 /* Author: Ioan Sucan */
00031 
00032 #ifndef MOVEIT_VISUALIZATION_SCENE_DISPLAY_RVIZ_PLUGIN_PLANNING_SCENE_RENDER_
00033 #define MOVEIT_VISUALIZATION_SCENE_DISPLAY_RVIZ_PLUGIN_PLANNING_SCENE_RENDER_
00034 
00035 #include <moveit/planning_scene/planning_scene.h>
00036 #include <moveit/rviz_plugin_render_tools/render_shapes.h>
00037 #include <rviz/helpers/color.h>
00038 #include <OGRE/OgreMaterial.h>
00039 
00040 namespace Ogre
00041 {
00042 class SceneNode;
00043 }
00044 
00045 namespace rviz
00046 {
00047 class DisplayContext;
00048 }
00049 
00050 namespace moveit_rviz_plugin
00051 {
00052 
00053 class RobotStateVisualization;
00054 typedef boost::shared_ptr<RobotStateVisualization> RobotStateVisualizationPtr;
00055 
00056 class RenderShapes;
00057 typedef boost::shared_ptr<RenderShapes> RenderShapesPtr;
00058 
00059 class PlanningSceneRender
00060 {
00061 public:
00062   PlanningSceneRender(Ogre::SceneNode *root_node, rviz::DisplayContext *context,
00063                       const RobotStateVisualizationPtr &robot);
00064   ~PlanningSceneRender();
00065 
00066   Ogre::SceneNode* getGeometryNode()
00067   {
00068     return planning_scene_geometry_node_;
00069   }
00070 
00071   const RobotStateVisualizationPtr& getRobotVisualization()
00072   {
00073     return scene_robot_;
00074   }
00075 
00076   void renderPlanningScene(const planning_scene::PlanningSceneConstPtr &scene,
00077                            const rviz::Color &default_scene_color,
00078                            const rviz::Color &default_attached_color,
00079                            OctreeVoxelRenderMode voxel_render_mode,
00080                            OctreeVoxelColorMode voxel_color_mode,
00081                            float default_scene_alpha);
00082   void clear();
00083 
00084 private:
00085 
00086   Ogre::SceneNode *planning_scene_geometry_node_;
00087   rviz::DisplayContext *context_;
00088   RenderShapesPtr render_shapes_;
00089   RobotStateVisualizationPtr scene_robot_;
00090 
00091 };
00092 
00093 typedef boost::shared_ptr<PlanningSceneRender> PlanningSceneRenderPtr;
00094 typedef boost::shared_ptr<const PlanningSceneRender> PlanningSceneRenderConstPtr;
00095 
00096 }
00097 
00098 #endif


visualization
Author(s): Ioan Sucan , Dave Coleman
autogenerated on Mon Oct 6 2014 02:34:03