bspparser

Crates.iobspparser
lib.rsbspparser
version0.10.1
created_at2024-06-25 15:14:40.144154+00
updated_at2025-02-13 17:06:26.160601+00
descriptionParse Quake .bsp files
homepage
repositoryhttps://github.com/vikpe/bspparser
max_upload_size
id1283408
size38,374
Viktor Persson (vikpe)

documentation

README

bspparser Test crates docs.rs

Parse Quake .bsp files

Usage

let file = &mut fs::File::open("tests/files/povdmm4.bsp")?;
let bsp = BspFile::parse(file)?;
println!("{:?}", bsp.entities);
[
    {
        "wad": "gfx/base.wad", 
        "worldtype": "2", 
        "sounds": "6", 
        "message": "The Abandoned Base", 
        "classname": "worldspawn"
    },
    {
        "classname": "light_fluoro",
        "origin": "264 -32 88"
    }
    // ...
]

Fields

pub struct BspFile {
    pub version: BspVersion,
    pub header: BspHeader,
    pub edge_list: Vec<i32>,
    pub edges: Vec<Edge>,
    pub entities: Vec<HashMap<String, String>>,
    pub faces: Vec<Face>,
    pub lightmaps: Vec<u8>,
    pub models: Vec<Model>,
    pub planes: Vec<Plane>,
    pub texture_info: Vec<TextureInfo>,
    pub textures: Vec<Texture>,
    pub vertices: Vec<Vertex>,
}

Helpers

pub fn get_face_texture(bsp: &BspFile, face: &Face) -> Texture
pub fn get_face_vertices(bsp: &BspFile, face: &Face) -> Vec<Vertex>
pub fn get_face_vertice_indexes(bsp: &BspFile, face: &Face) -> Vec<u32>
pub fn read_texture_image<R>( reader: &mut R, texture: &Texture, scale: TextureScale, ) -> Result<TextureImage>
Commit count: 33

cargo fmt