Kaba class mat3 ed

...

Syntax ed

class mat3
    var e: f32[3][3]

    # functions
    func pure inverse() -> mat3
    func static pure rotation(ang: vec3) -> mat3
    func static pure rotation(ang: Quaternion) -> mat3
    func static pure scale(s_x: f32, s_y: f32, s_z: f32) -> mat3
    func static pure scale(s: vec3) -> mat3

    # operators
    func pure __str__() -> string        # str(mat3) -> string
    func mut __assign__(b: mat3)         # mat3 = mat3
    func pure __eq__(b: mat3) -> bool    # mat3 == mat3 -> bool
    func pure __neq__(b: mat3) -> bool   # mat3 __neq__ mat3 -> bool
    func pure __mul__(b: mat3) -> mat3   # mat3 * mat3 -> mat3
    func pure __mul__(b: vec3) -> vec3   # mat3 * vec3 -> vec3

    # constants
    let 0: mat3
    let ID: mat3

Functions ed

func pure inverse() -> mat3
...

func static pure rotation(ang: vec3) -> mat3
...

func static pure rotation(ang: Quaternion) -> mat3
...

func static pure scale(s_x: f32, s_y: f32, s_z: f32) -> mat3
...

func static pure scale(s: vec3) -> mat3
...

Elements ed

var e: f32[3][3]
...