8 个版本
0.1.7 | 2020年6月10日 |
---|---|
0.1.6 | 2020年6月3日 |
0.1.2 | 2020年5月31日 |
#1726 在 解析器实现
每月下载量:41
27KB
615 代码行
自述文件
这是一个用 Rust 编写的 c3d 文件格式解析器/读取器。C3d 是在运动捕捉领域广泛使用的生物力学数据格式。
解析器根据 c3d.org 规范和来自 py-c3d 的 Python 解析器编写。
功能
- 目前仅支持解析。
- 在读取头部/参数块之后,由于适配器实现了迭代器特质,可以读取 (frame_index, points_data, analog_data),无需预先复制所有数据部分。
- 根据规范正确解析错误估计和摄像机观测信息。
- 在消费读取器时,如果设置了相应的参数,模拟数据将根据设置进行偏移和缩放。
使用方法
use c3d_rs::C3dAdapter;
let mut file = File::open("somefile")?;
let mut buf: Vec<u8> = vec![];
file.read_to_end(&mut buf)?;
let mut cursor = Cursor::new(buf)
/// adapter accepts impl Read + Seek.
let adapter = C3dAdapter::new(&mut file)?.construct()?;
let adapter = C3dAdapter::new(&mut buf[..])?.construct()?;
/// read labels into Vec<String> with whitespace stripped.
let point_labels: Vec<String> = adapter.get_points_labels().unwrap();
let adapter_labels: Vec<String> = adapter.get_adapter_labels().unwrap();
/// reading (frame, ponts, analog) from iterator
for (frame_idx, points_data, optional_analog_data) in adapter.reader()?.into_iter() {
}
/// working with vendor specific parameter.
let param = adapter.parameter.unwrap().get("GROUP:PARAMETER").unwrap();
依赖关系
~0.4–1MB
~21K SLoC