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
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef MOVEIT_MESH_FILTER_MESHFILTER_
00038 #define MOVEIT_MESH_FILTER_MESHFILTER_
00039
00040 #include <map>
00041 #include <moveit/macros/declare_ptr.h>
00042 #include <moveit/mesh_filter/gl_renderer.h>
00043 #include <moveit/mesh_filter/mesh_filter_base.h>
00044 #include <boost/function.hpp>
00045 #include <Eigen/Eigen>
00046
00047
00048 namespace shapes
00049 {
00050 class Mesh;
00051 }
00052
00053 namespace mesh_filter
00054 {
00055 class GLMesh;
00056
00062 template <typename SensorType>
00063 class MeshFilter : public MeshFilterBase
00064 {
00065 public:
00066 MOVEIT_DECLARE_PTR_MEMBER(MeshFilter);
00067
00075 MeshFilter(const TransformCallback& transform_callback = TransformCallback(),
00076 const typename SensorType::Parameters& sensor_parameters = typename SensorType::Parameters());
00077
00083 typename SensorType::Parameters& parameters();
00084
00090 const typename SensorType::Parameters& parameters() const;
00091 };
00092
00093 template <typename SensorType>
00094 MeshFilter<SensorType>::MeshFilter(const TransformCallback& transform_callback,
00095 const typename SensorType::Parameters& sensor_parameters)
00096 : MeshFilterBase(transform_callback, sensor_parameters, SensorType::renderVertexShaderSource,
00097 SensorType::renderFragmentShaderSource, SensorType::filterVertexShaderSource,
00098 SensorType::filterFragmentShaderSource)
00099 {
00100 }
00101
00102 template <typename SensorType>
00103 typename SensorType::Parameters& MeshFilter<SensorType>::parameters()
00104 {
00105 return static_cast<typename SensorType::Parameters&>(*sensor_parameters_);
00106 }
00107
00108 template <typename SensorType>
00109 const typename SensorType::Parameters& MeshFilter<SensorType>::parameters() const
00110 {
00111 return static_cast<typename SensorType::Parameters&>(*sensor_parameters_);
00112 }
00113
00114 }
00115 #endif