pub fn write<W>(mesh: &PolygonMesh, writer: W) -> Result<(), Error>where
W: Write,Expand description
Writes obj data to output stream
ยงExamples
use truck_polymesh::*;
let positions = vec![
Point3::new(0.0, 0.0, 0.0),
Point3::new(1.0, 0.0, 0.0),
Point3::new(0.0, 1.0, 0.0),
Point3::new(0.0, 0.0, 1.0),
Point3::new(1.0, 1.0, 0.0),
Point3::new(1.0, 0.0, 1.0),
Point3::new(0.0, 1.0, 1.0),
Point3::new(1.0, 1.0, 1.0),
];
let normals = vec![
Vector3::new(1.0, 0.0, 0.0),
Vector3::new(0.0, 1.0, 0.0),
Vector3::new(0.0, 0.0, 1.0),
Vector3::new(-1.0, 0.0, 0.0),
Vector3::new(0.0, -1.0, 0.0),
Vector3::new(0.0, 0.0, -1.0),
];
let faces = Faces::from_iter(&[
[(0, None, Some(5)), (1, None, Some(5)), (2, None, Some(5))],
[(4, None,Some(5)), (2, None, Some(5)), (1, None, Some(5))],
[(1, None, Some(4)), (0, None, Some(4)), (3, None, Some(4))],
[(1, None, Some(4)), (3, None, Some(4)), (5, None, Some(4))],
[(1, None, Some(0)), (5, None, Some(0)), (4, None, Some(0))],
[(4, None, Some(0)), (5, None, Some(0)), (7, None, Some(0))],
[(2, None, Some(1)), (4, None, Some(1)), (7, None, Some(1))],
[(2, None, Some(1)), (7, None, Some(1)), (6, None, Some(1))],
[(0, None, Some(3)), (2, None, Some(3)), (6, None, Some(3))],
[(0, None, Some(3)), (6, None, Some(3)), (3, None, Some(3))],
[(3, None, Some(2)), (6, None, Some(2)), (7, None, Some(2))],
[(3, None, Some(2)), (7, None, Some(2)), (5, None, Some(2))],
]);
let mesh = PolygonMesh::new(
StandardAttributes {
positions,
normals,
..Default::default()
},
faces,
);
obj::write(&mesh, std::fs::File::create("meshdata.obj").unwrap());