obj/obj.rs
1use draco_oxide::prelude::ConfigType;
2use draco_oxide::{
3 encode::{self, encode},
4 io::obj::load_obj,
5};
6use std::io::Write;
7
8fn main() -> Result<(), Box<dyn std::error::Error>> {
9 // Create mesh from an obj file, for example.
10 let mesh = load_obj("mesh.obj").unwrap();
11
12 // Create a buffer that we write the encoded data to.
13 // This time we use 'Vec<u8>' as the output buffer, but draco-oxide can stream-write to anything
14 // that implements draco_oxide::prelude::ByteWriter.
15 let mut buffer = Vec::new();
16
17 // Encode the mesh into the buffer.
18 encode(mesh, &mut buffer, encode::Config::default()).unwrap();
19
20 let mut file = std::fs::File::create("output.drc").unwrap();
21 file.write_all(&buffer)?;
22 Ok(())
23}