octomap 1.5.0
|
00001 // $Id: octomap_types.h 383 2012-06-08 09:00:42Z ahornung $ 00002 00011 /* 00012 * Copyright (c) 2009, K. M. Wurm, A. Hornung, University of Freiburg 00013 * All rights reserved. 00014 * 00015 * Redistribution and use in source and binary forms, with or without 00016 * modification, are permitted provided that the following conditions are met: 00017 * 00018 * * Redistributions of source code must retain the above copyright 00019 * notice, this list of conditions and the following disclaimer. 00020 * * Redistributions in binary form must reproduce the above copyright 00021 * notice, this list of conditions and the following disclaimer in the 00022 * documentation and/or other materials provided with the distribution. 00023 * * Neither the name of the University of Freiburg nor the names of its 00024 * contributors may be used to endorse or promote products derived from 00025 * this software without specific prior written permission. 00026 * 00027 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00028 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00029 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00030 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00031 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00032 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 00033 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00034 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00035 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00036 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00037 * POSSIBILITY OF SUCH DAMAGE. 00038 */ 00039 00040 #ifndef OCTOMAP_TYPES_H 00041 #define OCTOMAP_TYPES_H 00042 00043 #include <vector> 00044 #include <list> 00045 00046 #include <octomap/math/Vector3.h> 00047 #include <octomap/math/Pose6D.h> 00048 #include <octomap/octomap_deprecated.h> 00049 00050 namespace octomap { 00051 00053 typedef octomath::Vector3 point3d; 00055 typedef octomath::Pose6D pose6d; 00056 00057 typedef std::vector<octomath::Vector3> point3d_collection; 00058 typedef std::list<octomath::Vector3> point3d_list; 00059 00061 typedef std::pair<point3d, double> OcTreeVolume; 00062 00063 } 00064 00065 //Macros for compiling with an without ROS (for output logging) 00066 #ifdef OCTOMAP_ROS 00067 #include <ros/ros.h> 00068 00069 #define OCTOMAP_DEBUG ROS_DEBUG 00070 #define OCTOMAP_DEBUG_STR ROS_DEBUG_STREAM 00071 #define OCTOMAP_WARNING ROS_WARN 00072 #define OCTOMAP_WARNING_STR ROS_WARN_STREAM 00073 #define OCTOMAP_ERROR ROS_ERROR 00074 #define OCTOMAP_ERROR_STR ROS_ERROR_STREAM 00075 00076 #else 00077 // no debug output if not in debug mode: 00078 #ifdef NDEBUG 00079 #ifndef OCTOMAP_NODEBUGOUT 00080 #define OCTOMAP_NODEBUGOUT 00081 #endif 00082 #endif 00083 00084 #ifdef OCTOMAP_NODEBUGOUT 00085 #define OCTOMAP_DEBUG(...) (void)0 00086 #define OCTOMAP_DEBUG_STR(...) (void)0 00087 #else 00088 #define OCTOMAP_DEBUG(...) fprintf(stderr, __VA_ARGS__), fflush(stderr) 00089 #define OCTOMAP_DEBUG_STR(args) std::cerr << args << std::endl 00090 #endif 00091 00092 #define OCTOMAP_WARNING(...) fprintf(stderr, "WARNING: "), fprintf(stderr, __VA_ARGS__), fflush(stderr) 00093 #define OCTOMAP_WARNING_STR(args) std::cerr << "WARNING: " << args << std::endl 00094 #define OCTOMAP_ERROR(...) fprintf(stderr, "ERROR: "), fprintf(stderr, __VA_ARGS__), fflush(stderr) 00095 #define OCTOMAP_ERROR_STR(args) std::cerr << "ERROR: " << args << std::endl 00096 #endif 00097 00098 00099 #endif