pcl_cloud_algos_point_types.hpp
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2010, Hozefa Indorewala <indorewala@ias.in.tum.de>
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 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 namespace pcl
00031 {
00032 
00033   struct PointXYZINormalScanLine
00034   {
00035     PCL_ADD_POINT4D;
00036     float intensities;
00037     PCL_ADD_NORMAL4D;
00038     // represents the index of one XYZ triplet
00039     float index;
00040     // represents one complete 2D scan 
00041     float line;
00042     EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00043   } EIGEN_ALIGN16;
00044   inline std::ostream& operator<<(std::ostream& os, const PointXYZINormalScanLine& p)
00045   {
00046     os << "("<<p.x<<","<<p.y<<","<<p.z<<" - "<<p.intensities<<" - "<<p.normal[0]<<","<<p.normal[1]<<","<<p.normal[2]<<" - "<<p.index<<" - "<<p.line<<")";
00047     return os;
00048   }
00049 
00050   struct ColorCHLACSignature981
00051   {
00052     float histogram[981];
00053   };
00054   inline std::ostream& operator << (std::ostream& os, const ColorCHLACSignature981& p)
00055   {
00056     for (int i = 0; i < 981; ++i)
00057       os << (i == 0 ? "(" : "") << p.histogram[i] << (i < 980 ? ", " : ")");
00058     return (os);
00059   }
00060 
00061   struct ColorCHLACSignature117
00062   {
00063     float histogram[117];
00064   };
00065   inline std::ostream& operator << (std::ostream& os, const ColorCHLACSignature117& p)
00066   {
00067     for (int i = 0; i < 117; ++i)
00068       os << (i == 0 ? "(" : "") << p.histogram[i] << (i < 116 ? ", " : ")");
00069     return (os);
00070   }
00071 
00072   struct GRSDSignature21
00073   {
00074     float histogram[21];
00075   };
00076   inline std::ostream& operator << (std::ostream& os, const GRSDSignature21& p)
00077   {
00078     for (int i = 0; i < 21; ++i)
00079       os << (i == 0 ? "(" : "") << p.histogram[i] << (i < 20 ? ", " : ")");
00080     return (os);
00081   }
00082 
00083   struct GRSDSignature325
00084   {
00085     float histogram[325];
00086   };
00087   inline std::ostream& operator << (std::ostream& os, const GRSDSignature325& p)
00088   {
00089     for (int i = 0; i < 325; ++i)
00090       os << (i == 0 ? "(" : "") << p.histogram[i] << (i < 324 ? ", " : ")");
00091     return (os);
00092   }
00093 
00094   struct PlusGRSDSignature110
00095   {
00096     float histogram[110];
00097   };
00098   inline std::ostream& operator << (std::ostream& os, const PlusGRSDSignature110& p)
00099   {
00100     for (int i = 0; i < 110; ++i)
00101       os << (i == 0 ? "(" : "") << p.histogram[i] << (i < 109 ? ", " : ")");
00102     return (os);
00103   }
00104 
00105 
00106 struct PointNormalRADII
00107 {
00108   PCL_ADD_POINT4D;    // This adds the members x,y,z which can also be accessed using the point (which is float[4])                                                              
00109   PCL_ADD_NORMAL4D;   // This adds the member normal[3] which can also be accessed using the point (which is float[4])                                                           
00110   float curvature, r_min, r_max;
00111   
00112   EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00113 } EIGEN_ALIGN16;
00114 inline std::ostream& operator << (std::ostream& os, const PointNormalRADII& p)
00115 {
00116   os << "(" << p.x << "," << p.y << "," << p.z << " - " << p.normal[0] << "," << p.normal[1] << "," << p.normal[2] << " - " << p.curvature << " - " << p.r_min << "," << p.r_max << ")";
00117   return (os);
00118 }
00119   
00120 }  // End namespace
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends Defines


pcl_cloud_algos
Author(s): Nico Blodow, Dejan Pangercic, Zoltan-Csaba Marton
autogenerated on Sun Oct 6 2013 12:05:19