说明:
updateNode函数是octomap中常用的函数,在多个头文件中都有定义:
octomap::OccupancyOcTreeBase< NODE >
octomap::OccupancyOcTreeBase< ColorOcTreeNode >
octomap::OccupancyOcTreeBase< OcTreeNode >
octomap::OccupancyOcTreeBase< OcTreeNodeStamped >
在这些个头文件中,几乎都有多个定义,但可以根据参数个数、类型进行区分。下面以octomap::OccupancyOcTreeBase< NODE >实现的6个形式进行学习。其他头文件中,有相同参数形式的话,作用应该是一样的。
目录
updateNode() [1/6]
updateNode() [2/6]
updateNode() [3/6]
updateNode() [4/6]
updateNode() [5/6]
updateNode() [6/6]
template
NODE * octomap::OccupancyOcTreeBase< NODE >::updateNode ( const OcTreeKey & key,
bool occupied,
bool lazy_eval = false
)
集成占用测量。
key:要更新的NODE的OcTreeKey(八叉树键)
occupied:如果节点被测量为占用,则为 true,否则为 false
lazy_eval:更新后是否省略内部节点的更新(默认:false)。这加快了插入速度,但完成后您需要调用 updateInnerOccupancy()。
指向更新的节点的指针
template
NODE * octomap::OccupancyOcTreeBase< NODE >::updateNode ( const OcTreeKey & key,
float log_odds_update,
bool lazy_eval = false
)
通过 log_odds_update(log_odds的相对变化值)更改体素的 log_odds 值。
这仅在密钥处于最低八叉树级别时才有效----不对内部节点进行操作
key:要更新的节点的键
log_odds_update:要添加 (+) 到节点的 log_odds 值的值
lazy_eval:更新后是否省略内部节点的更新(默认:false)。这加快了插入速度,但完成后您需要调用 updateInnerOccupancy()。
指向更新的节点的指针
template
NODE * octomap::OccupancyOcTreeBase< NODE >::updateNode ( const point3d & value,
bool occupied,
bool lazy_eval = false
)
集成占用测量。
查找坐标对应的OcTreeKey--八叉树键,然后用它调用udpateNode()。
value:要更新的节点的 3d 坐标
occupied:如果节点被测量为被占用,则为 true,否则为 false
lazy_eval:更新后是否省略内部节点的更新(默认:false)。这加快了插入速度,但完成后您需要调用 updateInnerOccupancy()。
指向更新的节点的指针
template
NODE * octomap::OccupancyOcTreeBase< NODE >::updateNode ( const point3d & value,
float log_odds_update,
bool lazy_eval = false
)
通过 log_odds_update(log_odds相对变化两)更改体素的 log_odds 值。
查找坐标对应的OcTreeKey--八叉树键,然后调用updateNode()。
value:要更新的节点的 3d 坐标
log_odds_update:要添加 (+) 到节点的 log_odds 值的值
lazy_eval:更新后是否省略内部节点的更新(默认:false)。这加快了插入速度,但完成后您需要调用 updateInnerOccupancy()。
指向更新的节点的指针
template
NODE * octomap::OccupancyOcTreeBase< NODE >::updateNode ( double x,
double y,
double z,
bool occupied,
bool lazy_eval = false
)
集成占用测量。
查找坐标对应的OcTreeKey,然后用它调用udpateNode()。
x:
y:
z:
occupied:如果节点被测量为被占用,则为 true,否则为 false
lazy_eval:更新后是否省略内部节点的更新(默认:false)。这加快了插入速度,但完成后您需要调用 updateInnerOccupancy()。
指向更新的节点的指针
template
NODE * octomap::OccupancyOcTreeBase< NODE >::updateNode ( double x,
double y,
double z,
float log_odds_update,
bool lazy_eval = false
)
通过 log_odds_update(log_odds相对变化值)更改体素的 log_odds 值。
查找坐标对应的OcTreeKey,然后调用updateNode()。
x:
y:
z:
log_odds_update:要添加 (+) 到节点的 log_odds 值的值
lazy_eval:更新后是否省略内部节点的更新(默认:false)。这加快了插入速度,但完成后您需要调用 updateInnerOccupancy()。
指向更新的节点的指针