Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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.        
  43.