00001
00002
00003
00004
00005
00006
00007 #ifndef __J2K__Matrix22_CPP__
00008 #define __J2K__Matrix22_CPP__
00009
00010 #include <j2k/Fred/Games/Matrix22.hpp>
00011
00012
00013 inline JMatrix22::JMatrix22() {
00014 clear();
00015 }
00016
00017 inline JMatrix22::~JMatrix22() { }
00018
00019 inline JMatrix22::JMatrix22( const Matrix22& src ) {
00020 for( int i = 0; i < 4; i++ ) {
00021 m[i] = src.m[i];
00022 }
00023 }
00024
00025 inline void JMatrix22::clear() {
00026 for( int i = 0; i < 4; i++ ) {
00027 m[i] = 0.0;
00028 }
00029 }
00030
00031 inline void JMatrix22::print() {
00032 printf("| %-+7.2f %-+7.2f|\n", m[0], m[2] );
00033 printf("| %-+7.2f %-+7.2f|\n\n", m[1], m[3] );
00034 }
00035
00036 inline void JMatrix22::identity() {
00037 m[0] = 1;
00038 m[1] = 0;
00039 m[2] = 0;
00040 m[3] = 1;
00041 }
00042
00043
00044 JMatrix22 JMatrix22::rotz( double rad ) {
00045 JMatrix22 ret;
00046 double c = cos(rad);
00047 double s = sin(rad);
00048
00049 ret.m[0] = c;
00050 ret.m[1] = -s;
00051 ret.m[2] = s;
00052 ret.m[3] = c;
00053
00054 return ret;
00055 }
00056
00057 JMatrix22 JMatrix22::mult( const JMatrix22& mat ) {
00058 JMatrix22 ret;
00059
00060 ret.m[0] = m[0] * mat.m[0] + m[1] * mat.m[2];
00061 ret.m[1] = m[0] * mat.m[1] + m[1] * mat.m[3];
00062 ret.m[2] = m[2] * mat.m[0] + m[3] * mat.m[2];
00063 ret.m[3] = m[2] * mat.m[1] + m[3] * mat.m[3];
00064
00065 return ret;
00066 }
00067
00068 JVector2 JMatrix22::mult( const JVector2& vect ) {
00069 Vector2 ret;
00070
00071 ret.v[0] = m[0] * vect.v[0] + m[1] * vect.v[1];
00072 ret.v[1] = m[2] * vect.v[0] + m[3] * vect.v[1];
00073
00074 return ret;
00075 }
00076
00077 #endif