mdanceio 0.1.2

MDanceIO is a MMD(MikuMikuDance) compatible implementation targeting at browser through wasm.
Documentation
#[repr(C, align(16))]
#[derive(Debug, Clone, Copy, bytemuck::Pod, bytemuck::Zeroable)]
pub struct LineVertexUnit {
    pub position: [f32; 3],
    pub color: [u8; 4],
}

#[repr(C, align(16))]
#[derive(Debug, Clone, Copy, bytemuck::Pod, bytemuck::Zeroable)]
pub struct QuadVertexUnit {
    pub position: [f32; 4],
    pub texcoord: [f32; 4],
}

impl QuadVertexUnit {
    pub fn generate_quad_tri_strip() -> [QuadVertexUnit; 4] {
        Self::_generate_quad_tri_strip(-1f32, 1f32, 1f32, -1f32)
    }

    fn _generate_quad_tri_strip(minx: f32, miny: f32, maxx: f32, maxy: f32) -> [QuadVertexUnit; 4] {
        let (minu, minv, maxu, maxv) = (0.0f32, 0.0f32, 1.0f32, 1.0f32);
        [
            QuadVertexUnit {
                position: [minx, miny, 0f32, 0f32],
                texcoord: [minu, minv, 0f32, 0f32],
            },
            QuadVertexUnit {
                position: [minx, maxy, 0f32, 0f32],
                texcoord: [minu, maxv, 0f32, 0f32],
            },
            QuadVertexUnit {
                position: [maxx, miny, 0f32, 0f32],
                texcoord: [maxu, minv, 0f32, 0f32],
            },
            QuadVertexUnit {
                position: [maxx, maxy, 0f32, 0f32],
                texcoord: [maxu, maxv, 0f32, 0f32],
            },
        ]
    }
}