(import "oo.slime") (define-package math (define pi 3.14159265) (define (abs x) (if (> x 0) x (- x))) (define (sqrt x) (** x 0.5)) ;; (define-class vector3 (x y z) ;; (define (get-x) x) ;; (define (get-y) y) ;; (define (get-z) z) ;; (define (set-x new-x) (mutate x new-x)) ;; (define (set-y new-y) (mutate y new-y)) ;; (define (set-z new-z) (mutate z new-z)) ;; (define (length) ;; (** (+ (* x x) (* y y) (* z z)) 0.5)) ;; (define (scale fac) ;; (mutate x (* fac x)) ;; (mutate y (* fac y)) ;; (mutate z (* fac z)) ;; fac) ;; (define (add other) ;; (make-vector3 ;; (+ x (other get-x)) ;; (+ y (other get-y)) ;; (+ z (other get-z)))) ;; (define (subtract other) ;; (make-vector3 ;; (- x (other get-x)) ;; (- y (other get-y)) ;; (- z (other get-z)))) ;; (define (scalar-product other) ;; (+ (* x (other get-x)) ;; (* y (other get-y)) ;; (* z (other get-z)))) ;; (define (cross-product other) ;; (make-vector3 ;; (- (* y (other get-z)) (* z (other get-y))) ;; (- (* z (other get-x)) (* x (other get-z))) ;; (- (* x (other get-y)) (* y (other get-x))))) ;; (define (print) ;; (printf :sep "" "[vector3] (" x y z ")")) ;; ) )