sensor_model.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2013, Willow Garage, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above
14  * copyright notice, this list of conditions and the following
15  * disclaimer in the documentation and/or other materials provided
16  * with the distribution.
17  * * Neither the name of Willow Garage nor the names of its
18  * contributors may be used to endorse or promote products derived
19  * from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  *********************************************************************/
34 
35 /* Author: Suat Gedikli */
36 
37 #ifndef MOVEIT_MESH_FILTER_SENSOR_MODEL_
38 #define MOVEIT_MESH_FILTER_SENSOR_MODEL_
39 
41 #include <Eigen/Eigen>
42 
43 namespace mesh_filter
44 {
45 // forward declarations
46 class GLRenderer;
47 
53 {
54 public:
56 
61  class Parameters
62  {
63  public:
71  Parameters(unsigned width, unsigned height, float near_clipping_plane_distance, float far_clipping_plane_distance);
72 
74  virtual ~Parameters();
75 
83  virtual void setRenderParameters(GLRenderer& renderer) const = 0;
84 
89  virtual void setFilterParameters(GLRenderer& renderer) const = 0;
90 
95  virtual Parameters* clone() const = 0;
96 
101  virtual const Eigen::Vector3f& getPaddingCoefficients() const = 0;
102 
107  virtual void transformModelDepthToMetricDepth(float* depth) const;
108 
113  virtual void transformFilteredDepthToMetricDepth(float* depth) const;
114 
120  void setImageSize(unsigned width, unsigned height);
121 
127  void setDepthRange(float near, float far);
128 
133  unsigned getWidth() const;
134 
139  unsigned getHeight() const;
140 
145  float getNearClippingPlaneDistance() const;
146 
151  float getFarClippingPlaneDistance() const;
152 
153  protected:
155  unsigned width_;
156 
158  unsigned height_;
159 
162 
165  };
166 
170  virtual ~SensorModel();
171 };
172 } // namespace mesh_filter
173 
174 #endif
virtual void setFilterParameters(GLRenderer &renderer) const =0
sets the specific Filter Renderer parameters
virtual ~SensorModel()
virtual destructor
void setDepthRange(float near, float far)
sets the clipping range
virtual const Eigen::Vector3f & getPaddingCoefficients() const =0
returns sensor dependent padding coefficients
Parameters(unsigned width, unsigned height, float near_clipping_plane_distance, float far_clipping_plane_distance)
Constructor taking core parameters that are required for all sensors.
unsigned width_
width of depth maps generated by the sensor
Definition: sensor_model.h:155
float far_clipping_plane_distance_
distance of far clipping plane
Definition: sensor_model.h:161
Abstracts the OpenGL frame buffer objects, and provides an interface to render meshes, and retrieve the color and depth ap from opengl.
Definition: gl_renderer.h:58
unsigned getHeight() const
returns the height of depth maps
unsigned getWidth() const
returns the width of depth maps
float near_clipping_plane_distance_
distance of near clipping plane
Definition: sensor_model.h:164
Abstract Interface defining Sensor Parameters.
Definition: sensor_model.h:61
virtual void transformModelDepthToMetricDepth(float *depth) const
transforms depth values from rendered model to metric depth values
virtual void transformFilteredDepthToMetricDepth(float *depth) const
transforms depth values from filtered depth to metric depth values
virtual void setRenderParameters(GLRenderer &renderer) const =0
method that sets required parameters for the renderer. Each sensor usually has its own shaders with s...
float getFarClippingPlaneDistance() const
returns the distance to the far clipping plane
float getNearClippingPlaneDistance() const
returns distance to the near clipping plane
void setImageSize(unsigned width, unsigned height)
sets the image size
virtual Parameters * clone() const =0
polymorphic clone method
unsigned height_
height of depth maps generated by the sensor
Definition: sensor_model.h:158
virtual ~Parameters()
virtual destructor
MOVEIT_CLASS_FORWARD(Parameters)
Abstract Interface defining a sensor model for mesh filtering.
Definition: sensor_model.h:52


perception
Author(s): Ioan Sucan , Jon Binney , Suat Gedikli
autogenerated on Thu Oct 18 2018 02:47:34