mirror of
https://github.com/open-goal/jak-project
synced 2026-09-03 02:14:07 -04:00
recognize vector, matrix, quaternion constructors in a better way (#630)
* recognize vector, matrix, quaternion constructors in a better way * fix bad bug
This commit is contained in:
@@ -772,10 +772,7 @@
|
||||
;; Used lq/sq
|
||||
(defun matrix-rotate-yx! ((dst matrix) (rot-y-deg float) (rot-x-deg float))
|
||||
(matrix-rotate-y! dst rot-y-deg)
|
||||
(let* ((t9-1 matrix-rotate-x!)
|
||||
(a0-2 (new-stack-matrix0))
|
||||
(a1-2 (t9-1 a0-2 rot-x-deg))
|
||||
)
|
||||
(let ((a1-2 (matrix-rotate-x! (new-stack-matrix0) rot-x-deg)))
|
||||
(matrix*! dst a1-2 dst)
|
||||
)
|
||||
dst
|
||||
|
||||
@@ -924,13 +924,16 @@
|
||||
(defun
|
||||
quaternion-rotate-local-x!
|
||||
((arg0 quaternion) (arg1 quaternion) (arg2 float))
|
||||
(let ((t9-0 quaternion-vector-angle!)
|
||||
(a0-1 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(set! (-> a0-1 vec quad) (the-as uint128 0))
|
||||
(let ((a2-1 (t9-0 a0-1 (new 'static 'vector :x 1.0 :w 1.0) arg2)))
|
||||
(quaternion-normalize! (quaternion*! arg0 arg1 a2-1))
|
||||
(let
|
||||
((a2-1
|
||||
(quaternion-vector-angle!
|
||||
(new-stack-quaternion0)
|
||||
(new 'static 'vector :x 1.0 :w 1.0)
|
||||
arg2
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 arg1 a2-1))
|
||||
)
|
||||
)
|
||||
|
||||
@@ -939,13 +942,16 @@
|
||||
(defun
|
||||
quaternion-rotate-local-y!
|
||||
((arg0 quaternion) (arg1 quaternion) (arg2 float))
|
||||
(let ((t9-0 quaternion-vector-angle!)
|
||||
(a0-1 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(set! (-> a0-1 vec quad) (the-as uint128 0))
|
||||
(let ((a2-1 (t9-0 a0-1 (new 'static 'vector :y 1.0 :w 1.0) arg2)))
|
||||
(quaternion-normalize! (quaternion*! arg0 arg1 a2-1))
|
||||
(let
|
||||
((a2-1
|
||||
(quaternion-vector-angle!
|
||||
(new-stack-quaternion0)
|
||||
(new 'static 'vector :y 1.0 :w 1.0)
|
||||
arg2
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 arg1 a2-1))
|
||||
)
|
||||
)
|
||||
|
||||
@@ -954,58 +960,64 @@
|
||||
(defun
|
||||
quaternion-rotate-local-z!
|
||||
((arg0 quaternion) (arg1 quaternion) (arg2 float))
|
||||
(let ((t9-0 quaternion-vector-angle!)
|
||||
(a0-1 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(set! (-> a0-1 vec quad) (the-as uint128 0))
|
||||
(let ((a2-1 (t9-0 a0-1 (new 'static 'vector :z 1.0 :w 1.0) arg2)))
|
||||
(quaternion-normalize! (quaternion*! arg0 arg1 a2-1))
|
||||
(let
|
||||
((a2-1
|
||||
(quaternion-vector-angle!
|
||||
(new-stack-quaternion0)
|
||||
(new 'static 'vector :z 1.0 :w 1.0)
|
||||
arg2
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 arg1 a2-1))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function quaternion-rotate-y!
|
||||
;; Used lq/sq
|
||||
(defun quaternion-rotate-y! ((arg0 quaternion) (arg1 quaternion) (arg2 float))
|
||||
(let ((t9-0 quaternion-vector-angle!)
|
||||
(a0-1 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(set! (-> a0-1 vec quad) (the-as uint128 0))
|
||||
(let ((a1-2 (t9-0 a0-1 (new 'static 'vector :y 1.0 :w 1.0) arg2)))
|
||||
(quaternion-normalize! (quaternion*! arg0 a1-2 arg1))
|
||||
(let
|
||||
((a1-2
|
||||
(quaternion-vector-angle!
|
||||
(new-stack-quaternion0)
|
||||
(new 'static 'vector :y 1.0 :w 1.0)
|
||||
arg2
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 a1-2 arg1))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function quaternion-rotate-x!
|
||||
;; Used lq/sq
|
||||
(defun quaternion-rotate-x! ((arg0 quaternion) (arg1 quaternion) (arg2 float))
|
||||
(let ((s4-0 quaternion-vector-angle!)
|
||||
(s3-0 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(set! (-> s3-0 vec quad) (the-as uint128 0))
|
||||
(let* ((t9-0 vector-x-quaternion!)
|
||||
(a0-1 (new-stack-vector0))
|
||||
(a1-3 (s4-0 s3-0 (t9-0 a0-1 arg1) arg2))
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 a1-3 arg1))
|
||||
(let
|
||||
((a1-3
|
||||
(quaternion-vector-angle!
|
||||
(new-stack-quaternion0)
|
||||
(vector-x-quaternion! (new-stack-vector0) arg1)
|
||||
arg2
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 a1-3 arg1))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function quaternion-rotate-z!
|
||||
;; Used lq/sq
|
||||
(defun quaternion-rotate-z! ((arg0 quaternion) (arg1 quaternion) (arg2 float))
|
||||
(let ((s4-0 quaternion-vector-angle!)
|
||||
(s3-0 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(set! (-> s3-0 vec quad) (the-as uint128 0))
|
||||
(let* ((t9-0 vector-z-quaternion!)
|
||||
(a0-1 (new-stack-vector0))
|
||||
(a1-3 (s4-0 s3-0 (t9-0 a0-1 arg1) arg2))
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 a1-3 arg1))
|
||||
(let
|
||||
((a1-3
|
||||
(quaternion-vector-angle!
|
||||
(new-stack-quaternion0)
|
||||
(vector-z-quaternion! (new-stack-vector0) arg1)
|
||||
arg2
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! arg0 a1-3 arg1))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user