hxa

Crates.iohxa
lib.rshxa
version0.2.2
sourcesrc
created_at2023-03-10 19:02:48.758076
updated_at2023-03-23 03:21:50.898531
descriptionFunctions and Structs to parse HxA mesh data as specified by Eskil Steenberg
homepage
repositoryhttps://github.com/fcrisafulli-dev/hxa
max_upload_size
id806647
size26,207
Francesco Crisafulli (fcrisafulli-dev)

documentation

README

Rust HxA mesh parser

Description

This is a WIP parser for the mesh format specified by Eskil Steenberg.
Link to HxA GitHub

Features

  • Loading HxA files into Rust structures
  • Searching through HxA Rust structures to obtain data

Examples

To load a hxa file use the from() function and pass a filepath.

use hxa;
let my_hxa = hxa::HXAFile::from("Cube.hxa");

You can parse this as is, or use the find functions to quickly obtain data:

use hxa::conventions::{hard,soft};

let model_geometry = my_hxa.get_first_geometry()
    .expect("Expected to find a geometry node").0;

let vertex_stack = &model_geometry.vertex_stack;

let vertex_positions = vertex_stack
    .find(hard::BASE_VERTEX_LAYER_NAME)
    .expect("Expected to find a vertex layer")
    .as_vec_f32();

let vertex_normals = vertex_stack
    .find(soft::LAYER_NORMALS)
    .expect("Expected to find a normal layer")
    .as_vec_f32();

Missing features

  • Several parsing types are not implemented, however the essental ones are.
Commit count: 21

cargo fmt