《PCL》octree_key.h

2023-12-29 09:58
文章标签 pcl key octree

本文主要是介绍《PCL》octree_key.h,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

int 占据 2 byte 即 8 bit
故:1 为 0000001
Octree key :包含每个坐标轴的整数索引,以便寻找八叉树叶节点。

namespace pcl
{namespace octree{class OctreeKey{public:OctreeKey () : x (0), y (0), z (0){ }OctreeKey (unsigned int keyX, unsigned int keyY, unsigned int keyZ) :x (keyX), y (keyY), z (keyZ){ }OctreeKey (const OctreeKey& source){memcpy(key_, source.key_, sizeof(key_));}/// brief运算符==用于比较八叉树键。如果叶节点索引相同则返回“true”; 否则“假”。booloperator == (const OctreeKey& b) const{return ((b.x == this->x) && (b.y == this->y) && (b.z == this->z));}/// brief运算符<=用于比较八叉树键。/// 如果 key indices不大于b的 key indices,则返回“true”; 否则“假”。booloperator <= (const OctreeKey& b) const{return ((b.x >= this->x) && (b.y >= this->y) && (b.z >= this->z));}/// brief运算符> =用于比较八叉树键。/// 如果 key indices不小于b的 key indices,则返回“true”; 否则“假”。booloperator >= (const OctreeKey& b) const{return ((b.x <= this->x) && (b.y <= this->y) && (b.z <= this->z));}/// 将子节点推送到八叉树键/// param [in] childIndex要添加的子节点索引(0-7)inline voidpushBranch (unsigned char childIndex){this->x = (this->x << 1) | (!!(childIndex & (1 << 2)));this->y = (this->y << 1) | (!!(childIndex & (1 << 1)));this->z = (this->z << 1) | (!!(childIndex & (1 << 0)));}/// 从八叉树 key 弹出子节点inline voidpopBranch (){this->x >>= 1;this->y >>= 1;this->z >>= 1;}/// 使用depthMask获取子节点索引/// param [in] depthMask  在查询深度处设置单 bit 的 bit mask (比特掩码)/// return子节点索引inline unsigned chargetChildIdxWithDepthMask (unsigned int depthMask) const{return static_cast<unsigned char> (((!!(this->x & depthMask)) << 2)| ((!!(this->y & depthMask)) << 1)|  (!!(this->z & depthMask)));}/// 可以寻找的最大深度static const unsigned char maxDepth = static_cast<const unsigned char>(sizeof(uint32_t)*8);/// 寻找在 点(X, Y, Z)处体素的索引。union{struct{uint32_t x;      ///  typedef unsigned int       uint32_t;uint32_t y;uint32_t z;};uint32_t key_[3];};};}
}

这篇关于《PCL》octree_key.h的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/549162

相关文章

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

为 Key-Value 数据库实现MVCC 事务

ACID是软件领域使用最广泛的技术之一,它是关系数据库的基石,是企业级中间件不可或缺的部分,但通常通过黑盒的方式提供。但是在许多情况下,这种古老的事务方式已经不能够适应现代大规模系统和NoSQL数据库的需要了,现代系统要求更高的性能要求,更大的数据量,更高的可用性。在这种情况下,传统的事务模型被定制的事务或者半事务模型所取代,而在这些模型中事务性并不像以往那样被看重。   在本文中我们会讨论一

【UE4 C++】使用自定义的结构体做TMap中的Key

使用UE4的TMap TMap是UE4中一个基础的容器类(在一些其他的场合也叫作“Dictionary”),表明了【键】-【值】一一对应的关系。 比如,我想统计一个场景中每个Actor出现的次数,就可以创建一个Map来存储信息: TMap<AActor*, int> testMap; 尝试在UE4中使用自定义的结构体作为【键】,编译失败 我自定义的结构体如下: struct Test

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开

【SpringBoot】96、SpringBoot中使用RedisTemplate的scan方法查找所有的key

1、简介 Redis Scan 命令用于迭代数据库中的数据库键。SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标

redis 实现单位时间内错误记录 时间到key值就被清除------最近脑子不好使觉得还是写个博客试试

直接在客户端操作的, 所以需要redis的简单命令  去对比JAVA客户端jedis的命令就行   添加---set     格式 set  key  value  EX time(秒)   如果这个time不添加的话 ,那默认就是 永久 获取--get    格式 get key  ---查看剩余时间    格式 TTL key ---实现key实现自增: inrc key

ssh登录服务器报错“no matching host key type found. Their offer: ssh-rsa,ssh-dss”解决方法

这个错误表明你尝试使用 ssh 连接到远程服务器时,客户端和服务器之间没有匹配的 host key 类型。具体来说,远程服务器提供了 ssh-rsa 和 ssh-dss 类型的 host key,但你的 SSH 客户端配置可能不再支持这些较旧的算法。最近的 OpenSSH 版本默认禁用了不够安全的算法,如 ssh-rsa 和 ssh-dss。 解决方法 临时启用 ssh-rsa: 你可以在

github Host key verification failed

不是密钥问题,不是权限问题,只是在询问 (yes/no)的时候直接回车了,输入yes 再回车就ok了!

FUSEE: A Fully Memory-Disaggregated Key-Value Store——论文阅读

FAST 2023 Paper 论文阅读笔记整理 问题 分布式内存键值(KV)存储正在采用分离式内存(DM)体系结构以提高资源利用率。然而,现有的DM上的KV存储采用半分离式设计,在DM上存储KV对,但在单个元数据服务器上管理元数据,因此仍然在元数据服务器上遭受低资源效率的问题。 如图1a,Clover[60]采用半分离式设计,在计算节点(CN)上部署客户端,在内存节点(MN)上存储KV对,