rbx_mesh-0.3.0 has been yanked.
Roblox Mesh Parser
Mesh Example
Print the mesh vertices for any mesh version / vertex size
use rbx_mesh::{read_versioned,mesh::{VersionedMesh,SizeOfVertex2}};
let file=std::fs::File::open("torso.mesh")?;
let input=std::io::BufReader::new(file);
let versioned_mesh=read_versioned(input)?;
match versioned_mesh{
VersionedMesh::Version1(mesh)=>println!("{:?}",mesh.vertices),
VersionedMesh::Version2(mesh)=>{
match mesh.header.sizeof_vertex{
SizeOfVertex2::Full=>println!("{:?}",mesh.vertices),
SizeOfVertex2::Truncated=>println!("{:?}",mesh.vertices_truncated),
}
},
VersionedMesh::Version3(mesh)=>{
match mesh.header.sizeof_vertex{
SizeOfVertex2::Full=>println!("{:?}",mesh.vertices),
SizeOfVertex2::Truncated=>println!("{:?}",mesh.vertices_truncated),
}
},
VersionedMesh::Version4(mesh)=>println!("{:?}",mesh.vertices),
VersionedMesh::Version5(mesh)=>println!("{:?}",mesh.vertices),
}
Union Example
use rbx_mesh::{read_physics_data,PhysicsData,CSGPHS};
let file=std::fs::File::open("CSGPHS_3.data")?;
let input=std::io::BufReader::new(file);
let physics_data=read_physics_data(input)?;
match physics_data{
PhysicsData::CSGPHS(CSGPHS::Meshes(meshes))=>println!("CSGPHS::Meshes"),
PhysicsData::CSGK(csgk)=>println!("CSGK"),
PhysicsData::CSGPHS(CSGPHS::Block)=>println!("CSGPHS::Block"),
PhysicsData::CSGPHS(CSGPHS::PhysicsInfoMesh(physics_info_mesh))=>println!("CSGPHS::PhysicsInfoMesh"),
}
License