4 个版本
0.1.3 | 2020 年 8 月 27 日 |
---|---|
0.1.2 | 2019 年 1 月 14 日 |
0.1.1 | 2017 年 10 月 30 日 |
0.1.0 | 2017 年 6 月 21 日 |
#479 在 解析器实现
39,201 每月下载量
用于 55 个 包(16 直接使用)
84KB
1.5K SLoC
Ply-rs
文档 |
Ply-rs 是一个用于读取和写入 PLY 文件格式(也称为多边形文件格式、斯坦福三角形格式)的小型库。该库支持所有三种子格式:ASCII、大端和小端。
它主要关注两点
- 易于快速上手。
- 如果你愿意自己做一些事情,性能很高。
入门
依赖
将以下内容添加到你的 Cargo.toml
[dependencies]
ply-rs = "0.1.3"
添加到你的根目录
extern crate ply_rs;
fn main() {}
读取 PLY 文件
这是读取 PLY 文件的最简单方法
extern crate ply_rs;
use ply_rs as ply;
/// Demonstrates simplest use case for reading from a file.
fn main() {
// set up a reader, in this case a file.
let path = "example_plys/greg_turk_example1_ok_ascii.ply";
let mut f = std::fs::File::open(path).unwrap();
// create a parser
let p = ply::parser::Parser::<ply::ply::DefaultElement>::new();
// use the parser: read the entire file
let ply = p.read_ply(&mut f);
// make sure it did work
assert!(ply.is_ok());
let ply = ply.unwrap();
// proof that data has been read
println!("Ply header: {:#?}", ply.header);
println!("Ply data: {:?}", ply.payload);
}
写入 PLY 文件
写入 PLY 文件的最简单示例
extern crate ply_rs;
use ply_rs::ply::{ Ply, DefaultElement };
use ply_rs::writer::{ Writer };
/// Demonstrates simplest use case for reading from a file.
fn main() {
// set up a target, could also be a file
let mut buf = Vec::<u8>::new();
// crete a ply objet
let mut ply = Ply::<DefaultElement>::new();
// set up a writer
let w = Writer::new();
let written = w.write_ply(&mut buf, &mut ply).unwrap();
println!("{} bytes written", written);
println!("buffer size: {}", buf.len());
// proof that data has been read
// We can use `from_utf8` since PLY files only contain ascii characters
let output = String::from_utf8(buf).unwrap();
println!("Written data:\n{}", output);
}
对于更复杂的示例,请参阅 示例。
依赖
~0.2–1.6MB
~22K SLoC