Kaba class vec3 ed

...

Syntax ed

class vec3
    var x: f32
    var y: f32
    var z: f32

    # constructors
    func mut __init__(x: f32, y: f32, z: f32)

    # functions
    func pure ang2dir() -> vec3
    func pure dir2ang() -> vec3
    func pure dir2ang2(up: vec3) -> vec3
    func pure length() -> f32
    func pure length_fuzzy() -> f32
    func pure length_sqr() -> f32
    func pure normalized() -> vec3
    func pure ortho() -> vec3
    func static pure cross(v1: vec3, v2: vec3) -> vec3
    func static pure dot(v1: vec3, v2: vec3) -> f32

    # operators
    func pure __length__() -> f32        # len(vec3) -> f32
    func pure __str__() -> string        # str(vec3) -> string
    func mut __assign__(b: vec3)         # vec3 = vec3
    func pure __eq__(b: vec3) -> bool    # vec3 == vec3 -> bool
    func pure __neq__(b: vec3) -> bool   # vec3 __neq__ vec3 -> bool
    func pure __add__(b: vec3) -> vec3   # vec3 + vec3 -> vec3
    func pure __sub__(b: vec3) -> vec3   # vec3 - vec3 -> vec3
    func pure __mul__(b: vec3) -> f32    # vec3 * vec3 -> f32
    func pure __mul__(b: f32) -> vec3    # vec3 * f32 -> vec3
    func pure __div__(b: f32) -> vec3    # vec3 / f32 -> vec3
    func mut __iadd__(b: vec3)           # vec3 += vec3
    func mut __isub__(b: vec3)           # vec3 -= vec3
    func mut __imul__(b: f32)            # vec3 *= f32
    func mut __idiv__(b: f32)            # vec3 /= f32
    func pure __neg__() -> vec3          # - vec3 -> vec3

    # constants
    let 0: vec3
    let EX: vec3
    let EY: vec3
    let EZ: vec3
    let O: vec3

Functions ed

func pure ang2dir() -> vec3
...

func pure dir2ang() -> vec3
...

func pure dir2ang2(up: vec3) -> vec3
...

func pure length() -> f32
...

func pure length_fuzzy() -> f32
...

func pure length_sqr() -> f32
...

func pure normalized() -> vec3
...

func pure ortho() -> vec3
...

func static pure cross(v1: vec3, v2: vec3) -> vec3
...

func static pure dot(v1: vec3, v2: vec3) -> f32
...

Elements ed

var x: f32
...

var y: f32
...

var z: f32
...