recognize +! and set-vector (#706)

"
This commit is contained in:
water111
2021-07-17 15:00:10 -04:00
committed by GitHub
parent 1e90da8e7c
commit 4989470828
48 changed files with 557 additions and 1038 deletions
@@ -222,12 +222,7 @@
;; Used lq/sq
(defun vector3s-matrix*! ((dst vector3s) (vec vector3s) (mat matrix))
(let ((temp-vec3 (new-stack-vector0)))
(let ((v1-0 temp-vec3))
(set! (-> v1-0 x) (-> vec x))
(set! (-> v1-0 y) (-> vec y))
(set! (-> v1-0 z) (-> vec z))
(set! (-> v1-0 w) 1.0)
)
(set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0)
(vector-matrix*! temp-vec3 temp-vec3 mat)
(set! (-> dst x) (-> temp-vec3 x))
(set! (-> dst y) (-> temp-vec3 y))
@@ -240,12 +235,7 @@
;; Used lq/sq
(defun vector3s-rotate*! ((dst vector3s) (vec vector3s) (mat matrix))
(let ((temp-vec3 (new-stack-vector0)))
(let ((v1-0 temp-vec3))
(set! (-> v1-0 x) (-> vec x))
(set! (-> v1-0 y) (-> vec y))
(set! (-> v1-0 z) (-> vec z))
(set! (-> v1-0 w) 1.0)
)
(set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0)
(vector-rotate*! temp-vec3 temp-vec3 mat)
(set! (-> dst x) (-> temp-vec3 x))
(set! (-> dst y) (-> temp-vec3 y))
@@ -733,11 +723,12 @@
(sin-vec (new 'stack-no-clear 'vector))
(cos-vec (new 'stack-no-clear 'vector))
)
(let ((v1-0 sincos-input))
(set! (-> v1-0 x) (-> rots-deg x))
(set! (-> v1-0 y) (- (-> rots-deg y) (-> rots-deg z)))
(set! (-> v1-0 z) (-> rots-deg z))
(set! (-> v1-0 w) 1.0)
(set-vector!
sincos-input
(-> rots-deg x)
(- (-> rots-deg y) (-> rots-deg z))
(-> rots-deg z)
1.0
)
(vector-sincos! sin-vec cos-vec sincos-input)
(let ((cos-y (-> cos-vec y))
@@ -1090,12 +1090,7 @@
(s5-0 (new 'stack-no-clear 'vector))
)
(quaternion->matrix gp-0 arg0)
(let ((v1-1 s5-0))
(set! (-> v1-1 x) 0.0)
(set! (-> v1-1 y) 0.0)
(set! (-> v1-1 z) 1.0)
(set! (-> v1-1 w) 1.0)
)
(set-vector! s5-0 0.0 0.0 1.0 1.0)
(vector-matrix*! s5-0 s5-0 gp-0)
(vector-y-angle s5-0)
)
@@ -319,13 +319,13 @@
)
(cond
((>= max-step step-len)
(set! (-> vec x) (+ (-> vec x) x-step))
(set! (-> vec z) (+ (-> vec z) z-step))
(+! (-> vec x) x-step)
(+! (-> vec z) z-step)
)
(else
(let ((f2-6 (/ max-step step-len)))
(set! (-> vec x) (+ (-> vec x) (* f2-6 x-step)))
(set! (-> vec z) (+ (-> vec z) (* f2-6 z-step)))
(+! (-> vec x) (* f2-6 x-step))
(+! (-> vec z) (* f2-6 z-step))
)
)
)
@@ -349,13 +349,13 @@
)
(cond
((>= max-step step-len)
(set! (-> vec y) (+ (-> vec y) y-step))
(set! (-> vec z) (+ (-> vec z) z-step))
(+! (-> vec y) y-step)
(+! (-> vec z) z-step)
)
(else
(let ((step-scale (/ max-step step-len)))
(set! (-> vec y) (+ (-> vec y) (* step-scale y-step)))
(set! (-> vec z) (+ (-> vec z) (* step-scale z-step)))
(+! (-> vec y) (* step-scale y-step))
(+! (-> vec z) (* step-scale z-step))
)
)
)
@@ -385,15 +385,15 @@
)
(cond
((>= max-step step-len)
(set! (-> vec x) (+ (-> vec x) x-step))
(set! (-> vec y) (+ (-> vec y) y-step))
(set! (-> vec z) (+ (-> vec z) z-step))
(+! (-> vec x) x-step)
(+! (-> vec y) y-step)
(+! (-> vec z) z-step)
)
(else
(let ((step-scale (/ max-step step-len)))
(set! (-> vec x) (+ (-> vec x) (* step-scale x-step)))
(set! (-> vec y) (+ (-> vec y) (* step-scale y-step)))
(set! (-> vec z) (+ (-> vec z) (* step-scale z-step)))
(+! (-> vec x) (* step-scale x-step))
(+! (-> vec y) (* step-scale y-step))
(+! (-> vec z) (* step-scale z-step))
)
)
)
@@ -1185,11 +1185,12 @@
;; definition for function rand-vu-sphere-point!
(defun rand-vu-sphere-point! ((arg0 vector) (arg1 float))
(let ((s4-0 arg0))
(set! (-> s4-0 x) (rand-vu-float-range -1.0 1.0))
(set! (-> s4-0 y) (rand-vu-float-range -1.0 1.0))
(set! (-> s4-0 z) (rand-vu-float-range -1.0 1.0))
(set! (-> s4-0 w) 1.0)
(set-vector!
arg0
(rand-vu-float-range -1.0 1.0)
(rand-vu-float-range -1.0 1.0)
(rand-vu-float-range -1.0 1.0)
1.0
)
(vector-normalize! arg0 (rand-vu-float-range 0.0 arg1))
)