rw-parser-rs 1.0.0

A high-performance, native Rust parser for RenderWare files (.dff, .txd, .ifp).
Documentation
use serde::Serialize;

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwVector2 {
    pub x: f32,
    pub y: f32,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwVector3 {
    pub x: f32,
    pub y: f32,
    pub z: f32,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwVector4 {
    pub x: f32,
    pub y: f32,
    pub z: f32,
    pub t: f32,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwQuaternion {
    pub x: f32,
    pub y: f32,
    pub z: f32,
    pub w: f32,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwMatrix3 {
    pub right: RwVector3,
    pub up: RwVector3,
    pub at: RwVector3,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwMatrix4 {
    pub right: RwVector4,
    pub up: RwVector4,
    pub at: RwVector4,
    pub transform: RwVector4,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
pub struct RwColor {
    pub r: u8,
    pub g: u8,
    pub b: u8,
    pub a: u8,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwTextureCoordinate {
    pub u: f32,
    pub v: f32,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwTriangle {
    pub vector: RwVector3,
    pub material_id: u16,
}

#[derive(Debug, Clone, Copy, PartialEq, Serialize)]
pub struct RwSphere {
    pub vector: RwVector3,
    pub radius: f32,
}