Go to the documentation of this file.
   34 #ifndef OCTOMAP_OCCUPANCY_OCTREE_BASE_H 
   35 #define OCTOMAP_OCCUPANCY_OCTREE_BASE_H 
   97                    double maxrange=-1., 
bool lazy_eval = 
false, 
bool discretize = 
false);
 
  118                    double maxrange=-1., 
bool lazy_eval = 
false, 
bool discretize = 
false);
 
  132     virtual void insertPointCloud(
const ScanNode& scan, 
double maxrange=-1., 
bool lazy_eval = 
false, 
bool discretize = 
false);
 
  170      virtual NODE* 
setNodeValue(
const point3d& value, 
float log_odds_value, 
bool lazy_eval = 
false);
 
  184      virtual NODE* 
setNodeValue(
double x, 
double y, 
double z, 
float log_odds_value, 
bool lazy_eval = 
false);
 
  196      virtual NODE* 
updateNode(
const OcTreeKey& key, 
float log_odds_update, 
bool lazy_eval = 
false);
 
  208      virtual NODE* 
updateNode(
const point3d& value, 
float log_odds_update, 
bool lazy_eval = 
false);
 
  222      virtual NODE* 
updateNode(
double x, 
double y, 
double z, 
float log_odds_update, 
bool lazy_eval = 
false);
 
  245     virtual NODE* 
updateNode(
const point3d& value, 
bool occupied, 
bool lazy_eval = 
false);
 
  259     virtual NODE* 
updateNode(
double x, 
double y, 
double z, 
bool occupied, 
bool lazy_eval = 
false);
 
  303                  bool ignoreUnknownCells=
false, 
double maxRange=-1.0) 
const;
 
  317                  point3d& intersection, 
double delta=0.0) 
const;
 
  329                 bool getNormals(
const point3d& point, std::vector<point3d>& normals, 
bool unknownStatus=
true) 
const;
 
  436     std::ostream& 
writeBinaryNode(std::ostream &s, 
const NODE* node) 
const;
 
  480                            unsigned int depth, 
const float& log_odds_update, 
bool lazy_eval = 
false);
 
  483                            unsigned int depth, 
const float& log_odds_value, 
bool lazy_eval = 
false);
 
  506 #include "octomap/OccupancyOcTreeBase.hxx" 
  
void updateInnerOccupancy()
virtual bool insertRay(const point3d &origin, const point3d &end, double maxrange=-1.0, bool lazy_eval=false)
virtual void nodeToMaxLikelihood(NODE *occupancyNode) const
converts the node to the maximum likelihood value according to the tree's parameter for "occupancy"
point3d getBBXMax() const
virtual NODE * updateNode(const OcTreeKey &key, float log_odds_update, bool lazy_eval=false)
virtual NODE * setNodeValue(const OcTreeKey &key, float log_odds_value, bool lazy_eval=false)
virtual bool castRay(const point3d &origin, const point3d &direction, point3d &end, bool ignoreUnknownCells=false, double maxRange=-1.0) const
KeyBoolMap::const_iterator changedKeysBegin() const
virtual void toMaxLikelihood()
const unsigned int tree_max_val
bool isChangeDetectionEnabled() const
virtual ~OccupancyOcTreeBase()
virtual void updateNodeLogOdds(NODE *occupancyNode, const float &update) const
update logodds value of node by adding to the current value.
void toMaxLikelihoodRecurs(NODE *node, unsigned int depth, unsigned int max_depth)
unordered_ns::unordered_map< OcTreeKey, bool, OcTreeKey::KeyHash > KeyBoolMap
const unsigned int tree_depth
Maximum tree depth is fixed to 16 currently.
OccupancyOcTreeBase(double resolution)
Default constructor, sets resolution of leafs.
void updateInnerOccupancyRecurs(NODE *node, unsigned int depth)
point3d getBBXBounds() const
void resetChangeDetection()
Reset the set of changed keys. Call this after you obtained all changed nodes.
This class represents a three-dimensional vector.
virtual void insertPointCloudRays(const Pointcloud &scan, const point3d &sensor_origin, double maxrange=-1., bool lazy_eval=false)
unordered_ns::unordered_set< OcTreeKey, OcTreeKey::KeyHash > KeySet
void computeUpdate(const Pointcloud &scan, const octomap::point3d &origin, KeySet &free_cells, KeySet &occupied_cells, double maxrange)
point3d getBBXMin() const
NODE * updateNodeRecurs(NODE *node, bool node_just_created, const OcTreeKey &key, unsigned int depth, const float &log_odds_update, bool lazy_eval=false)
bool integrateMissOnRay(const point3d &origin, const point3d &end, bool lazy_eval=false)
void setBBXMax(const point3d &max)
sets the maximum for a query bounding box to use
NODE * setNodeValueRecurs(NODE *node, bool node_just_created, const OcTreeKey &key, unsigned int depth, const float &log_odds_value, bool lazy_eval=false)
bool use_change_detection
std::ostream & writeBinaryNode(std::ostream &s, const NODE *node) const
point3d getBBXCenter() const
std::istream & readBinaryData(std::istream &s)
KeyBoolMap::const_iterator changedKeysEnd() const
Iterator to traverse all keys of changed nodes.
virtual bool getRayIntersection(const point3d &origin, const point3d &direction, const point3d ¢er, point3d &intersection, double delta=0.0) const
void enableChangeDetection(bool enable)
track or ignore changes while inserting scans (default: ignore)
size_t numChangesDetected() const
Number of changes since last reset.
void computeDiscreteUpdate(const Pointcloud &scan, const octomap::point3d &origin, KeySet &free_cells, KeySet &occupied_cells, double maxrange)
std::istream & readBinaryNode(std::istream &s, NODE *node)
bool inBBX(const point3d &p) const
bool use_bbx_limit
use bounding box for queries (needs to be set)?
const iterator end() const
void setBBXMin(const point3d &min)
sets the minimum for a query bounding box to use
virtual void integrateMiss(NODE *occupancyNode) const
integrate a "miss" measurement according to the tree's sensor model
This class represents a tree-dimensional pose of an object.
void useBBXLimit(bool enable)
use or ignore BBX limit (default: ignore)
virtual void integrateHit(NODE *occupancyNode) const
integrate a "hit" measurement according to the tree's sensor model
bool getNormals(const point3d &point, std::vector< point3d > &normals, bool unknownStatus=true) const
double resolution
in meters
KeyBoolMap changed_keys
Set of leaf keys (lowest level) which changed since last resetChangeDetection.
virtual void insertPointCloud(const Pointcloud &scan, const octomap::point3d &sensor_origin, double maxrange=-1., bool lazy_eval=false, bool discretize=false)
std::ostream & writeBinaryData(std::ostream &s) const
octomap
Author(s): Kai M. Wurm 
, Armin Hornung 
autogenerated on Mon Apr 21 2025 02:39:48