Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions vari/matrices/matrix2/consing.lisp
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
(in-package :rtg-math.matrix2)

;; All matrices are stored in column-major format, but when you
;; write them (like in m!) then you write them in row-major format.
;; All matrices are stored in column-major format.

;;----------------------------------------------------------------

Expand Down Expand Up @@ -29,8 +28,8 @@
;;----------------------------------------------------------------

(varjo:v-defun from-rows ((row-1 :vec2) (row-2 :vec2))
(make (x row-1) (y row-1)
(x row-2) (y row-2)))
(make (x row-1) (x row-2)
(y row-1) (y row-2)))

;;----------------------------------------------------------------

Expand Down
27 changes: 13 additions & 14 deletions vari/matrices/matrix3/consing.lisp
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
(in-package :rtg-math.matrix3)

;; All matrices are stored in column-major format, but when you
;; write them (like in m!) then you write them in row-major format.
;; All matrices are stored in column-major format

;;----------------------------------------------------------------

Expand Down Expand Up @@ -29,9 +28,9 @@
;;----------------------------------------------------------------

(varjo:v-defun from-rows ((row-1 :vec3) (row-2 :vec3) (row-3 :vec3))
(make (x row-1) (y row-1) (z row-1)
(x row-2) (y row-2) (z row-2)
(x row-3) (y row-3) (z row-3)))
(make (x row-1) (x row-2) (x row-3)
(y row-1) (y row-2) (y row-3)
(z row-1) (z row-2) (z row-3)))

;;----------------------------------------------------------------

Expand Down Expand Up @@ -165,25 +164,25 @@
(let ((s-a (sin angle))
(c-a (cos angle)))
(make 1.0 0.0 0.0
0.0 c-a (cl:- s-a)
0.0 s-a c-a)))
0.0 c-a s-a
0.0 (cl:- s-a) c-a)))

;;----------------------------------------------------------------

(varjo:v-defun rotation-y ((angle :float))
(let ((s-a (sin angle))
(c-a (cos angle)))
(make c-a 0.0 s-a
(make c-a 0.0 (cl:- s-a)
0.0 1.0 0.0
(cl:- s-a) 0.0 c-a)))
s-a 0.0 c-a)))

;;----------------------------------------------------------------

(varjo:v-defun rotation-z ((angle :float))
(let ((s-a (sin angle))
(c-a (cos angle)))
(make c-a (cl:- s-a) 0.0
s-a c-a 0.0
(make c-a s-a 0.0
(cl:- s-a) c-a 0.0
0.0 0.0 1.0)))

;;----------------------------------------------------------------
Expand All @@ -205,9 +204,9 @@
(gyz (cl:* g y z))
(gzz (cl:* g z z)))
(make
(cl:+ gxx c) (cl:- gxy (cl:* s z)) (cl:+ gxz (cl:* s y))
(cl:+ gxy (cl:* s z)) (cl:+ gyy c) (cl:- gyz (cl:* s x))
(cl:- gxz (cl:* s y)) (cl:+ gyz (cl:* s x)) (cl:+ gzz c)))))
(cl:+ gxx c) (cl:+ gxy (cl:* s z)) (cl:- gxz (cl:* s y))
(cl:- gxy (cl:* s z)) (cl:+ gyy c) (cl:+ gyz (cl:* s x))
(cl:+ gxz (cl:* s y)) (cl:- gyz (cl:* s x)) (cl:+ gzz c)))))

;;----------------------------------------------------------------

Expand Down
54 changes: 27 additions & 27 deletions vari/matrices/matrix4/consing.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@
(row-2 :vec4)
(row-3 :vec4)
(row-4 :vec4))
(make (x row-1) (y row-1) (z row-1) (w row-1)
(x row-2) (y row-2) (z row-2) (w row-2)
(x row-3) (y row-3) (z row-3) (w row-3)
(x row-4) (y row-4) (z row-4) (w row-4)))
(make (x row-1) (x row-2) (x row-3) (x row-4)
(y row-1) (y row-2) (y row-3) (y row-4)
(z row-1) (z row-2) (z row-3) (z row-4)
(w row-1) (w row-2) (w row-3) (w row-4)))

(varjo:v-defun from-rows-v3 ((row-1 :vec3) (row-2 :vec3) (row-3 :vec3))
(make (x row-1) (y row-1) (z row-1) 0f0
(x row-2) (y row-2) (z row-2) 0f0
(x row-3) (y row-3) (z row-3) 0f0
(make (x row-1) (x row-2) (x row-3) 0f0
(y row-1) (y row-2) (y row-3) 0f0
(z row-1) (z row-2) (z row-3) 0f0
0f0 0f0 0f0 1f0))

;;----------------------------------------------------------------
Expand Down Expand Up @@ -229,25 +229,25 @@

(varjo:v-defun translation ((vec-a :vec3))
(make
1f0 0f0 0f0 (x vec-a)
0f0 1f0 0f0 (y vec-a)
0f0 0f0 1f0 (z vec-a)
0f0 0f0 0f0 1f0))
1f0 0f0 0f0 0.0
0f0 1f0 0f0 0.0
0f0 0f0 1f0 0.0
(x vec-a) (y vec-a) (z vec-a) 1f0))

(varjo:v-defun translation ((vec-a :vec4))
(make
1f0 0f0 0f0 (x vec-a)
0f0 1f0 0f0 (y vec-a)
0f0 0f0 1f0 (z vec-a)
0f0 0f0 0f0 1f0))
1f0 0f0 0f0 0.0
0f0 1f0 0f0 0.0
0f0 0f0 1f0 0.0
(x vec-a) (y vec-a) (z vec-a) 1f0))

;;----------------------------------------------------------------

(varjo:v-defun rotation-from-mat3 ((m-a :mat3))
(make
(m3:melm m-a 0 0) (m3:melm m-a 0 1) (m3:melm m-a 0 2) 0f0
(m3:melm m-a 1 0) (m3:melm m-a 1 1) (m3:melm m-a 1 2) 0f0
(m3:melm m-a 2 0) (m3:melm m-a 2 1) (m3:melm m-a 2 2) 0f0
(m3:melm m-a 0 0) (m3:melm m-a 1 0) (m3:melm m-a 2 0) 0f0
(m3:melm m-a 0 1) (m3:melm m-a 1 1) (m3:melm m-a 2 1) 0f0
(m3:melm m-a 0 2) (m3:melm m-a 1 2) (m3:melm m-a 2 2) 0f0
0f0 0f0 0f0 1f0))

;;----------------------------------------------------------------
Expand Down Expand Up @@ -292,27 +292,27 @@
(let ((s-a (sin angle))
(c-a (cos angle)))
(make 1f0 0f0 0f0 0f0
0f0 c-a (cl:- s-a) 0f0
0f0 s-a c-a 0f0
0f0 c-a s-a 0f0
0f0 (cl:- s-a) c-a 0f0
0f0 0f0 0f0 1f0)))

;;----------------------------------------------------------------

(varjo:v-defun rotation-y ((angle :float))
(let ((s-a (sin angle))
(c-a (cos angle)))
(make c-a 0f0 s-a 0f0
(make c-a 0f0 (cl:- s-a) 0f0
0f0 1f0 0f0 0f0
(cl:- s-a) 0f0 c-a 0f0
s-a 0f0 c-a 0f0
0f0 0f0 0f0 1f0)))

;;----------------------------------------------------------------

(varjo:v-defun rotation-z ((angle :float))
(let ((s-a (sin angle))
(c-a (cos angle)))
(make c-a (cl:- s-a) 0f0 0f0
s-a c-a 0f0 0f0
(make c-a s-a 0f0 0f0
(cl:- s-a) c-a 0f0 0f0
0f0 0f0 1f0 0f0
0f0 0f0 0f0 1f0)))

Expand All @@ -332,9 +332,9 @@
(gyz (cl:* g y z))
(gzz (cl:* g z z)))
(make
(cl:+ gxx c) (cl:- gxy (cl:* s z)) (cl:+ gxz (cl:* s y)) 0f0
(cl:+ gxy (cl:* s z)) (cl:+ gyy c) (cl:- gyz (cl:* s x)) 0f0
(cl:- gxz (cl:* s y)) (cl:+ gyz (cl:* s x)) (cl:+ gzz c) 0f0
(cl:+ gxx c) (cl:+ gxy (cl:* s z)) (cl:- gxz (cl:* s y)) 0f0
(cl:- gxy (cl:* s z)) (cl:+ gyy c) (cl:+ gyz (cl:* s x)) 0f0
(cl:+ gxz (cl:* s y)) (cl:- gyz (cl:* s x)) (cl:+ gzz c) 0f0
0f0 0f0 0f0 1f0))))

;;----------------------------------------------------------------
Expand Down