octomap(5):octomap函数updateNode作用及参数理解

说明:

        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]


updateNode() [1/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()。

返回值:

        指向更新的节点的指针

updateNode() [2/6]

 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()。

返回值:

        指向更新的节点的指针

updateNode() [3/6]

 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()。

返回值:

        指向更新的节点的指针

updateNode() [4/6] 

 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()。

返回值:

        指向更新的节点的指针

 

updateNode() [5/6]

 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()。

返回值:

        指向更新的节点的指针

updateNode() [6/6]

 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()。

返回值:

        指向更新的节点的指针

你可能感兴趣的:(无人驾驶车辆学习,数据结构,八叉树,octomap,c++,地图构建)