142 lines
3.5 KiB
Markdown
142 lines
3.5 KiB
Markdown
|
|
# Utils 工具库模块
|
|||
|
|
|
|||
|
|
这是一个独立的 Qt 工具库模块,包含了项目中常用的基础工具类和实用功能。
|
|||
|
|
|
|||
|
|
## 模块结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Utils/
|
|||
|
|
├── VrCommon/ # 核心接口和数据结构
|
|||
|
|
│ ├── Inc/ # 公共头文件
|
|||
|
|
│ │ ├── VrCommon.h
|
|||
|
|
│ │ ├── VrConfigCmd.h
|
|||
|
|
│ │ └── VrError.h
|
|||
|
|
│ └── Src/ # 源文件
|
|||
|
|
│
|
|||
|
|
├── VrUtils/ # 工具类库
|
|||
|
|
│ ├── Inc/ # 工具类头文件
|
|||
|
|
│ ├── Src/ # 工具类源文件
|
|||
|
|
│ ├── jsoncpp/ # JSON 解析库
|
|||
|
|
│ ├── log4cpp/ # 日志库
|
|||
|
|
│ ├── tinyxml2/ # XML 解析库
|
|||
|
|
│ ├── ini/ # INI 配置文件解析
|
|||
|
|
│ ├── MD5/ # MD5 加密
|
|||
|
|
│ └── crc/ # CRC 校验
|
|||
|
|
│
|
|||
|
|
├── CloudUtils/ # 点云工具
|
|||
|
|
│ ├── Inc/
|
|||
|
|
│ │ ├── LaserDataLoader.h
|
|||
|
|
│ │ └── PointCloudImageUtils.h
|
|||
|
|
│ └── Src/
|
|||
|
|
│
|
|||
|
|
├── DataUtils/ # 数据处理工具
|
|||
|
|
│ ├── CloudMathClac/ # 点云数学计算
|
|||
|
|
│ └── CoordinateTransform/ # 坐标转换
|
|||
|
|
│
|
|||
|
|
└── CloudView/ # 点云查看工具(独立应用)
|
|||
|
|
├── Inc/
|
|||
|
|
├── Src/
|
|||
|
|
└── resource/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 构建说明
|
|||
|
|
|
|||
|
|
### 作为子模块构建
|
|||
|
|
|
|||
|
|
在主项目的 .pro 文件中添加:
|
|||
|
|
|
|||
|
|
```qmake
|
|||
|
|
Utils.file = ../Utils/Utils.pro
|
|||
|
|
SUBDIRS += Utils
|
|||
|
|
|
|||
|
|
# 设置依赖关系
|
|||
|
|
YourModule.depends = Utils
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 独立构建
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd Utils
|
|||
|
|
qmake Utils.pro
|
|||
|
|
make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 模块说明
|
|||
|
|
|
|||
|
|
### VrCommon
|
|||
|
|
|
|||
|
|
核心接口和数据结构定义,包括:
|
|||
|
|
- 配置接口定义
|
|||
|
|
- 错误码定义
|
|||
|
|
- 配置命令数据结构
|
|||
|
|
|
|||
|
|
### VrUtils
|
|||
|
|
|
|||
|
|
通用工具类库,包括:
|
|||
|
|
- **日志工具**: 基于 log4cpp 的日志系统
|
|||
|
|
- **JSON 解析**: jsoncpp 库
|
|||
|
|
- **XML 解析**: tinyxml2 库
|
|||
|
|
- **INI 配置**: SimpleIni 库
|
|||
|
|
- **加密工具**: MD5、CRC 校验
|
|||
|
|
- **时间工具**: 时间格式化、NTP 同步
|
|||
|
|
- **网络工具**: 网络相关实用函数
|
|||
|
|
- **文件工具**: 文件操作相关函数
|
|||
|
|
- **字符串工具**: 字符串处理函数
|
|||
|
|
|
|||
|
|
### CloudUtils
|
|||
|
|
|
|||
|
|
点云数据处理工具,包括:
|
|||
|
|
- 激光数据加载器
|
|||
|
|
- 点云图像转换工具
|
|||
|
|
|
|||
|
|
### DataUtils
|
|||
|
|
|
|||
|
|
数据处理工具集,包括:
|
|||
|
|
- **CloudMathClac**: 点云数学计算(曲线拟合等)
|
|||
|
|
- **CoordinateTransform**: 坐标系转换工具
|
|||
|
|
|
|||
|
|
### CloudView
|
|||
|
|
|
|||
|
|
点云可视化查看工具(独立应用程序)
|
|||
|
|
|
|||
|
|
## 使用示例
|
|||
|
|
|
|||
|
|
### 在项目中引用
|
|||
|
|
|
|||
|
|
```qmake
|
|||
|
|
# 包含路径
|
|||
|
|
INCLUDEPATH += $$PWD/../Utils/VrCommon/Inc
|
|||
|
|
INCLUDEPATH += $$PWD/../Utils/VrUtils/Inc
|
|||
|
|
|
|||
|
|
# 链接库
|
|||
|
|
win32:CONFIG(release, debug|release): {
|
|||
|
|
LIBS += -L$$PWD/../Utils/VrCommon/release -lVrCommon
|
|||
|
|
LIBS += -L$$PWD/../Utils/VrUtils/release -lVrUtils
|
|||
|
|
}
|
|||
|
|
else:win32:CONFIG(debug, debug|release): {
|
|||
|
|
LIBS += -L$$PWD/../Utils/VrCommon/debug -lVrCommon
|
|||
|
|
LIBS += -L$$PWD/../Utils/VrUtils/debug -lVrUtils
|
|||
|
|
}
|
|||
|
|
else:unix:!macx {
|
|||
|
|
LIBS += -L$$PWD/../Utils/VrCommon -lVrCommon
|
|||
|
|
LIBS += -L$$PWD/../Utils/VrUtils -lVrUtils
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 依赖关系
|
|||
|
|
|
|||
|
|
- **VrUtils** 依赖 **VrCommon**
|
|||
|
|
- **CloudUtils** 依赖 **VrCommon** 和 **VrUtils**
|
|||
|
|
- **DataUtils** 依赖 **VrCommon**
|
|||
|
|
- **CloudView** 依赖 **VrCommon**、**VrUtils** 和 **CloudUtils**
|
|||
|
|
|
|||
|
|
## 编译要求
|
|||
|
|
|
|||
|
|
- Qt 5.x 或更高版本
|
|||
|
|
- C++11 或更高版本
|
|||
|
|
- 支持平台:Windows (MSVC/MinGW)、Linux (ARM/x86_64)
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
内部项目使用
|