Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5153 IgorA 1
; Matrix & Vertex
2
 
3
align 4
4
an180f dd 180.0 ;константа для вычисления углов
5
 
6
struct M4
7
	m rd 4*4 ;float[4][4]
8
ends
9
 
10
; макрос облегчающий доступ к элементам матрицы M4
11
; для доступа к элементам 1-й индекс множится на 16, 2-й на 4:
12
; m[i1*16][i2*4], потом все пишется в регистр reg:
13
; reg <-- m[i1][i2]
14
macro M4_reg reg,m,i1,i2
15
{
16
	mov reg,i1 ;1-й индекс
17
	if i2 eq 0
18
		shl reg,4
19
	else
20
		shl reg,2
21
		add reg,i2 ;2-й индекс
22
		shl reg,2
23
	end if
24
	add reg,m ;указатель на начало матрицы
25
}
26
 
27
struct M3
28
	m rd 3*3 ;float[3][3]
29
ends
30
 
31
struct M34
32
	m rd 3*4 ;float[3][4]
33
ends
34
 
35
struct V3
36
	v rd 3 ;float[3]
37
ends
38
 
39
struct V4
40
	v rd 4 ;float[4]
41
ends
42