Go to the documentation of this file.
34 #ifndef OCTOMAP_OCTREE_KEY_H
35 #define OCTOMAP_OCTREE_KEY_H
47 #if defined(__GNUC__) && ! defined(_LIBCPP_VERSION)
48 #include <tr1/unordered_set>
49 #include <tr1/unordered_map>
51 namespace unordered_ns = std::tr1;
54 #include <unordered_set>
55 #include <unordered_map>
57 namespace unordered_ns = std;
87 return ((
k[0] == other[0]) && (
k[1] == other[1]) && (
k[2] == other[2]));
91 return( (
k[0] != other[0]) || (
k[1] != other[1]) || (
k[2] != other[2]) );
95 k[0] = other.
k[0];
k[1] = other.
k[1];
k[2] = other.
k[2];
115 return static_cast<size_t>(key.
k[0])
116 + 1447*
static_cast<size_t>(key.
k[1])
117 + 345637*
static_cast<size_t>(key.
k[2]);
129 typedef unordered_ns::unordered_set<OcTreeKey, OcTreeKey::KeyHash>
KeySet;
136 typedef unordered_ns::unordered_map<OcTreeKey, bool, OcTreeKey::KeyHash>
KeyBoolMap;
149 size_t dSize = other.
end() - other.
begin();
179 std::vector<OcTreeKey>
ray;
196 if (pos & 1) child_key[0] = parent_key[0] + center_offset_key;
197 else child_key[0] = parent_key[0] - center_offset_key - (center_offset_key ? 0 : 1);
199 if (pos & 2) child_key[1] = parent_key[1] + center_offset_key;
200 else child_key[1] = parent_key[1] - center_offset_key - (center_offset_key ? 0 : 1);
202 if (pos & 4) child_key[2] = parent_key[2] + center_offset_key;
203 else child_key[2] = parent_key[2] - center_offset_key - (center_offset_key ? 0 : 1);
209 if (key.
k[0] & (1 << depth))
212 if (key.
k[1] & (1 << depth))
215 if (key.
k[2] & (1 << depth))
std::vector< OcTreeKey >::const_iterator const_iterator
std::vector< OcTreeKey >::iterator end_of_ray
std::vector< OcTreeKey >::iterator iterator
std::vector< OcTreeKey >::reverse_iterator reverse_iterator
bool operator!=(const OcTreeKey &other) const
const_iterator end() const
const key_type & operator[](unsigned int i) const
OcTreeKey & operator=(const OcTreeKey &other)
unordered_ns::unordered_map< OcTreeKey, bool, OcTreeKey::KeyHash > KeyBoolMap
const_iterator begin() const
unordered_ns::unordered_set< OcTreeKey, OcTreeKey::KeyHash > KeySet
size_t operator()(const OcTreeKey &key) const
reverse_iterator rbegin()
Provides a hash function on Keys.
uint8_t computeChildIdx(const OcTreeKey &key, int depth)
generate child index (between 0 and 7) from key at given tree depth
bool operator==(const OcTreeKey &other) const
std::vector< OcTreeKey > ray
void computeChildKey(unsigned int pos, key_type center_offset_key, const OcTreeKey &parent_key, OcTreeKey &child_key)
OcTreeKey computeIndexKey(key_type level, const OcTreeKey &key)
OcTreeKey(key_type a, key_type b, key_type c)
const static size_t maxSize
KeyRay(const KeyRay &other)
void addKey(const OcTreeKey &k)
OcTreeKey(const OcTreeKey &other)
octomap
Author(s): Kai M. Wurm
, Armin Hornung
autogenerated on Tue Dec 12 2023 03:39:40