5 个不稳定版本
0.3.1 | 2023 年 5 月 21 日 |
---|---|
0.3.0 | 2023 年 3 月 23 日 |
0.2.1 | 2023 年 2 月 22 日 |
0.2.0 | 2023 年 2 月 22 日 |
0.1.0 | 2023 年 1 月 28 日 |
#1153 在 数据结构
53 每月下载量
在 cad_viewer 中使用
105KB
2.5K SLoC
cad_import - 简单 CAD 导入库
一个简单的库,用于将不同格式的 CAD 数据导入到统一的内存结构中。
本库的目标是
- 支持多种 3D 和 CAD 格式
- 简单设计和支持
- 在统一的内存结构中表示
支持格式
- 对象文件格式:扩展名=*.off, MIME 类型=model/vnd.off] (见 https://segeval.cs.princeton.edu/public/off_format.html)
- glTF RUNTIME 3D 资产交付:扩展名=*.gltf,*.glb, MIME 类型=model/gltf-binary,model/gltf+json] (见 https://www.khronos.org/gltf/)
变更日志
有关更改,请参阅 变更日志
lib.rs
:
cad_import
是一个用于加载各种 3D 和 CAD 文件格式的库。
该库由一个加载器管理器中注册的加载器列表和一个用于存储加载的 CAD/3D 数据的统一内存结构组成。
示例
以下代码将所有注册的加载器列表打印到控制台。
use cad_import::loader::Manager;
fn main() {
let manager = Manager::new();
for loader in manager.get_loader_list().iter() {
let extensions: Vec<String> = loader.get_extensions_mime_type_map().keys().map(|s| s.clone()).collect();
let extensions: String = extensions.join(",");
let mime_types: String = loader.get_mime_types().join(",");
println!(
"Loader {}: Extensions=[{}], Mime-Types=[{}] ",
loader.get_name(),
extensions,
mime_types
);
}
}
为了加载特定文件,请参阅以下代码
use cad_import::loader::Manager;
use std::{fs::File, path::Path};
use std::env;
fn main() {
let manager = Manager::new();
let mime_type = "model/vnd.off";
let loader = manager.get_loader_by_mime_type(mime_type).unwrap();
let args: Vec<String> = env::args().collect();
let args = &args[1..];
if args.len() != 2 {
println!("USAGE: <FILE-PATH>");
} else {
let file_path = Path::new(&args[1]);
let cad_data = loader.read_file(&file_path, mime_type);
}
}
依赖项
~7MB
~138K SLoC