X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fmatrix.cpp;h=54dbdff6ca0c2355105a523c54352c543bb13458;hp=311958ab99542574edfe3cda35059d0eade1b24b;hb=3efe3bab1c8290bd49a957ebec0ad97e58a35fcf;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266 diff --git a/source/core/matrix.cpp b/source/core/matrix.cpp index 311958ab..54dbdff6 100644 --- a/source/core/matrix.cpp +++ b/source/core/matrix.cpp @@ -1,7 +1,6 @@ -#include #include +#include #include -#include "error.h" #include "matrix.h" using namespace std; @@ -66,10 +65,10 @@ Matrix Matrix::ortho(float l, float r, float b, float t, float n, float f) Matrix result; result(0, 0) = 2/(r-l); result(1, 1) = 2/(t-b); - result(2, 2) = -2/(f-n); + result(2, 2) = -1/(f-n); result(0, 3) = -(r+l)/(r-l); result(1, 3) = -(t+b)/(t-b); - result(2, 3) = -(f+n)/(f-n); + result(2, 3) = 0.5f-0.5f*(f+n)/(f-n); return result; } @@ -98,9 +97,9 @@ Matrix Matrix::frustum(float l, float r, float b, float t, float n, float f) result(1, 1) = 2*n/(t-b); result(0, 2) = (r+l)/(r-l); result(1, 2) = (t+b)/(t-b); - result(2, 2) = -(f+n)/(f-n); + result(2, 2) = -f/(f-n); result(3, 2) = -1; - result(2, 3) = -2*f*n/(f-n); + result(2, 3) = -f*n/(f-n); result(3, 3) = 0; return result; }