Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. static vec3 transformpoint(const vec3& src, const mat4& M)
  2. {
  3.     float a, b, c, w;
  4.     vec3 dst;
  5.  
  6.     a = src.cell[0] * M.cell[0] + src.cell[1] * M.cell[1] + src.cell[2] * M.cell[2] + M.cell[3];
  7.     b = src.cell[0] * M.cell[4] + src.cell[1] * M.cell[5] + src.cell[2] * M.cell[6] + M.cell[7];
  8.     c = src.cell[0] * M.cell[8] + src.cell[1] * M.cell[9] + src.cell[2] * M.cell[10] + M.cell[11];
  9.     w = src.cell[0] * M.cell[12] + src.cell[1] * M.cell[13] + src.cell[2] * M.cell[14] + M.cell[15];
  10.  
  11.     dst.x = a / w;
  12.     dst.y = b / w;
  13.     dst.z = c / w;
  14.  
  15.     return dst;
  16. }
  17.  
  18. static vec3 transformvector(const vec3& src, const mat4& M)
  19. {
  20.     float a, b, c;
  21.     vec3 dst;
  22.  
  23.     a = src[0] * M.cell[0] + src[1] * M.cell[1] + src[2] * M.cell[2];
  24.     b = src[0] * M.cell[4] + src[1] * M.cell[5] + src[2] * M.cell[6];
  25.     c = src[0] * M.cell[8] + src[1] * M.cell[9] + src[2] * M.cell[10];
  26.  
  27.     dst.x = a;
  28.     dst.y = b;
  29.     dst.z = c;
  30.    
  31.     return dst;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement