Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static vec3 transformpoint(const vec3& src, const mat4& M)
- {
- float a, b, c, w;
- vec3 dst;
- a = src.cell[0] * M.cell[0] + src.cell[1] * M.cell[1] + src.cell[2] * M.cell[2] + M.cell[3];
- b = src.cell[0] * M.cell[4] + src.cell[1] * M.cell[5] + src.cell[2] * M.cell[6] + M.cell[7];
- c = src.cell[0] * M.cell[8] + src.cell[1] * M.cell[9] + src.cell[2] * M.cell[10] + M.cell[11];
- w = src.cell[0] * M.cell[12] + src.cell[1] * M.cell[13] + src.cell[2] * M.cell[14] + M.cell[15];
- dst.x = a / w;
- dst.y = b / w;
- dst.z = c / w;
- return dst;
- }
- static vec3 transformvector(const vec3& src, const mat4& M)
- {
- float a, b, c;
- vec3 dst;
- a = src[0] * M.cell[0] + src[1] * M.cell[1] + src[2] * M.cell[2];
- b = src[0] * M.cell[4] + src[1] * M.cell[5] + src[2] * M.cell[6];
- c = src[0] * M.cell[8] + src[1] * M.cell[9] + src[2] * M.cell[10];
- dst.x = a;
- dst.y = b;
- dst.z = c;
- return dst;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement