position.cpp
Go to the documentation of this file.
00001 /*********************************************************************
00002  * Software License Agreement (BSD License)
00003  *
00004  *  Copyright (c) 2009, Willow Garage
00005  *  All rights reserved.
00006  *
00007  *  Redistribution and use in source and binary forms, with or without
00008  *  modification, are permitted provided that the following conditions
00009  *  are met:
00010  *
00011  *   * Redistributions of source code must retain the above copyright
00012  *     notice, this list of conditions and the following disclaimer.
00013  *   * Redistributions in binary form must reproduce the above
00014  *     copyright notice, this list of conditions and the following
00015  *     disclaimer in the documentation and/or other materials provided
00016  *     with the distribution.
00017  *   * Neither the name of the Willow Garage nor the names of its
00018  *     contributors may be used to endorse or promote products derived
00019  *     from this software without specific prior written permission.
00020  *
00021  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00022  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00023  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00024  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00025  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00026  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00027  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00028  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029  *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00031  *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032  *  POSSIBILITY OF SUCH DAMAGE.
00033  *********************************************************************/
00034 
00035 #include <ias_descriptors_3d/position.h>
00036 
00037 using namespace std;
00038 
00039 // --------------------------------------------------------------
00040 /* See function definition */
00041 // --------------------------------------------------------------
00042 Position::Position()
00043 {
00044   ref_z_ = 0.0;
00045 
00046   result_size_ = 1;
00047   result_size_defined_ = true;
00048 }
00049 
00050 // --------------------------------------------------------------
00051 /* See function definition */
00052 // --------------------------------------------------------------
00053 void Position::clearShared()
00054 {
00055 }
00056 
00057 // --------------------------------------------------------------
00058 /* See function definition */
00059 // --------------------------------------------------------------
00060 std::string Position::getName() const
00061 {
00062   ostringstream oss;
00063   oss << "Position"; //Different values of z_ref do NOT induce different descriptor spaces.
00064   return oss.str();
00065 }
00066 
00067 // --------------------------------------------------------------
00068 /* See function definition */
00069 // --------------------------------------------------------------
00070 Position::Position(float ref_z)
00071 {
00072   ref_z_ = ref_z;
00073 
00074   result_size_ = 1;
00075   result_size_defined_ = true;
00076 }
00077 
00078 // --------------------------------------------------------------
00079 /* See function definition */
00080 // --------------------------------------------------------------
00081 int Position::precompute(const sensor_msgs::PointCloud& data,
00082                          cloud_kdtree::KdTree& data_kdtree,
00083                          const std::vector<const geometry_msgs::Point32*>& interest_pts)
00084 {
00085   return 0;
00086 }
00087 
00088 // --------------------------------------------------------------
00089 /* See function definition */
00090 // --------------------------------------------------------------
00091 int Position::precompute(const sensor_msgs::PointCloud& data,
00092                          cloud_kdtree::KdTree& data_kdtree,
00093                          const std::vector<const std::vector<int>*>& interest_region_indices)
00094 {
00095   return 0;
00096 }
00097 
00098 // --------------------------------------------------------------
00099 /* See function definition */
00100 // --------------------------------------------------------------
00101 void Position::doComputation(const sensor_msgs::PointCloud& data,
00102                              cloud_kdtree::KdTree& data_kdtree,
00103                              const std::vector<const geometry_msgs::Point32*>& interest_pts,
00104                              std::vector<std::vector<float> >& results)
00105 {
00106   // Record the z-coordinate for each interest point
00107   size_t nbr_interest_pts = interest_pts.size();
00108   for (size_t i = 0 ; i < nbr_interest_pts ; i++)
00109   {
00110     results[i].resize(result_size_);
00111     results[i][0] = (interest_pts[i])->z - ref_z_;
00112   }
00113 }
00114 
00115 // --------------------------------------------------------------
00116 /* See function definition */
00117 // --------------------------------------------------------------
00118 void Position::doComputation(const sensor_msgs::PointCloud& data,
00119                              cloud_kdtree::KdTree& data_kdtree,
00120                              const std::vector<const vector<int>*>& interest_region_indices,
00121                              std::vector<std::vector<float> >& results)
00122 {
00123   // Record the z-coordinate for each interest region's centroid
00124   geometry_msgs::Point32 region_centroid;
00125   size_t nbr_interest_regions = interest_region_indices.size();
00126   for (size_t i = 0 ; i < nbr_interest_regions ; i++)
00127   {
00128     cloud_geometry::nearest::computeCentroid(data, *(interest_region_indices[i]), region_centroid);
00129     results[i].resize(result_size_);
00130     results[i][0] = region_centroid.z - ref_z_;
00131   }
00132 }


ias_descriptors_3d
Author(s): Daniel Munoz/ dmunoz@willowgarage.com, Dejan Pangercic (patched version)
autogenerated on Mon Oct 6 2014 08:48:26