Commit c7e55d79 authored by Javier V. Gomez's avatar Javier V. Gomez Committed by Florent Lamiraux florent@laas.fr
Browse files

Octomap <1.8.0 compatible but not working

parent b7ce8b11
...@@ -80,6 +80,11 @@ if (OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS) ...@@ -80,6 +80,11 @@ if (OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS)
include_directories(${OCTOMAP_INCLUDE_DIRS}) include_directories(${OCTOMAP_INCLUDE_DIRS})
link_directories(${OCTOMAP_LIBRARY_DIRS}) link_directories(${OCTOMAP_LIBRARY_DIRS})
set(FCL_HAVE_OCTOMAP 1) set(FCL_HAVE_OCTOMAP 1)
string(REPLACE "." ";" VERSION_LIST ${OCTOMAP_VERSION})
list(GET VERSION_LIST 0 OCTOMAP_MAJOR_VERSION)
list(GET VERSION_LIST 1 OCTOMAP_MINOR_VERSION)
list(GET VERSION_LIST 2 OCTOMAP_PATCH_VERSION)
message(STATUS "FCL uses Octomap") message(STATUS "FCL uses Octomap")
else() else()
message(STATUS "FCL does not use Octomap") message(STATUS "FCL does not use Octomap")
......
...@@ -56,4 +56,20 @@ namespace fcl ...@@ -56,4 +56,20 @@ namespace fcl
} }
#if FCL_HAVE_OCTOMAP
#define OCTOMAP_MAJOR_VERSION @OCTOMAP_MAJOR_VERSION@
#define OCTOMAP_MINOR_VERSION @OCTOMAP_MINOR_VERSION@
#define OCTOMAP_PATCH_VERSION @OCTOMAP_PATCH_VERSION@
#define OCTOMAP_VERSION_AT_LEAST(x,y,z) \
(OCTOMAP_MAJOR_VERSION > x || (OCTOMAP_MAJOR_VERSION >= x && \
(OCTOMAP_MINOR_VERSION > y || (OCTOMAP_MINOR_VERSION >= y && \
OCTOMAP_PATCH_VERSION >= z))))
#define OCTOMAP_VERSION_AT_MOST(x,y,z) \
(OCTOMAP_MAJOR_VERSION < x || (OCTOMAP_MAJOR_VERSION <= x && \
(OCTOMAP_MINOR_VERSION < y || (OCTOMAP_MINOR_VERSION <= y && \
OCTOMAP_PATCH_VERSION <= z))))
#endif // FCL_HAVE_OCTOMAP
#endif #endif
...@@ -190,25 +190,41 @@ public: ...@@ -190,25 +190,41 @@ public:
/// @return ptr to child number childIdx of node /// @return ptr to child number childIdx of node
OcTreeNode* getNodeChild(OcTreeNode* node, unsigned int childIdx) OcTreeNode* getNodeChild(OcTreeNode* node, unsigned int childIdx)
{ {
#if OCTOMAP_VERSION_AT_LEAST(1,8,0)
return tree->getNodeChild(node, childIdx); return tree->getNodeChild(node, childIdx);
#else
return node->getChild(childIdx);
#endif
} }
/// @return const ptr to child number childIdx of node /// @return const ptr to child number childIdx of node
const OcTreeNode* getNodeChild(const OcTreeNode* node, unsigned int childIdx) const const OcTreeNode* getNodeChild(const OcTreeNode* node, unsigned int childIdx) const
{ {
#if OCTOMAP_VERSION_AT_LEAST(1,8,0)
return tree->getNodeChild(node, childIdx); return tree->getNodeChild(node, childIdx);
#else
return node->getChild(childIdx);
#endif
} }
/// @brief return true if the child at childIdx exists /// @brief return true if the child at childIdx exists
bool nodeChildExists(const OcTreeNode* node, unsigned int childIdx) const bool nodeChildExists(const OcTreeNode* node, unsigned int childIdx) const
{ {
#if OCTOMAP_VERSION_AT_LEAST(1,8,0)
return tree->nodeChildExists(node, childIdx); return tree->nodeChildExists(node, childIdx);
#else
return node->childExists(childIdx);
#endif
} }
/// @brief return true if node has at least one child /// @brief return true if node has at least one child
bool nodeHasChildren(const OcTreeNode* node) const bool nodeHasChildren(const OcTreeNode* node) const
{ {
#if OCTOMAP_VERSION_AT_LEAST(1,8,0)
return tree->nodeHasChildren(node); return tree->nodeHasChildren(node);
#else
return node->hasChildren();
#endif
} }
/// @brief return object type, it is an octree /// @brief return object type, it is an octree
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment