#include <matrix.h>
Public Methods | |
| MATRIX () | |
| ~MATRIX () | |
| void | LoadIdentity () |
| void | CopyMatrix (float m[16]) |
| void | MultMatrix (float m[16]) |
| void | MatrixInverse () |
| void | MatrixFromAxisAngle (VECTOR axis, float theta) |
| void | QuatToMatrix (QUAT quat) |
Public Attributes | |
| float | Element [16] |
|
|
Definition at line 5 of file matrix.cpp. References LoadIdentity().
00006 {
00007 LoadIdentity();
00008 }
|
|
|
Definition at line 10 of file matrix.cpp.
00011 {
00012 }
|
|
|
Definition at line 37 of file matrix.cpp. References Element. Referenced by MatrixInverse().
00038 {
00039 Element[0 ] = m[0 ];
00040 Element[1 ] = m[1 ];
00041 Element[2 ] = m[2 ];
00042 Element[3 ] = m[3 ];
00043 Element[4 ] = m[4 ];
00044 Element[5 ] = m[5 ];
00045 Element[6 ] = m[6 ];
00046 Element[7 ] = m[7 ];
00047 Element[8 ] = m[8 ];
00048 Element[9 ] = m[9 ];
00049 Element[10] = m[10];
00050 Element[11] = m[11];
00051 Element[12] = m[12];
00052 Element[13] = m[13];
00053 Element[14] = m[14];
00054 Element[15] = m[15];
00055 }
|
|
|
Definition at line 14 of file matrix.cpp. References Element. Referenced by MATRIX(), and CAMERA::Reset().
00015 {
00016 Element[0]=1.0f;
00017 Element[1]=0.0f;
00018 Element[2]=0.0f;
00019 Element[3]=0.0f;
00020
00021 Element[4]=0.0f;
00022 Element[5]=1.0f;
00023 Element[6]=0.0f;
00024 Element[7]=0.0f;
00025
00026 Element[8]=0.0f;
00027 Element[9]=0.0f;
00028 Element[10]=1.0f;
00029 Element[11]=0.0f;
00030
00031 Element[12]=0.0f;
00032 Element[13]=0.0f;
00033 Element[14]=0.0f;
00034 Element[15]=1.0f;
00035 }
|
|
||||||||||||
|
Definition at line 167 of file matrix.cpp. References Element, QUAT::w, VECTOR::x, QUAT::x, VECTOR::y, QUAT::y, VECTOR::z, and QUAT::z.
00168 {
00169 QUAT q;
00170 float halfTheta = theta * 0.5;
00171 float cosHalfTheta = cos(halfTheta);
00172 float sinHalfTheta = sin(halfTheta);
00173 float xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz;
00174 q.x = axis.x * sinHalfTheta;
00175 q.y = axis.y * sinHalfTheta;
00176 q.z = axis.z * sinHalfTheta;
00177 q.w = cosHalfTheta;
00178 xs = q.x * 2; ys = q.y * 2; zs = q.z * 2;
00179 wx = q.w * xs; wy = q.w * ys; wz = q.w * zs;
00180 xx = q.x * xs; xy = q.x * ys; xz = q.x * zs;
00181 yy = q.y * ys; yz = q.y * zs; zz = q.z * zs;
00182 Element[0] = 1 - (yy + zz);
00183 Element[1] = xy - wz;
00184 Element[2] = xz + wy;
00185 Element[4] = xy + wz;
00186 Element[5] = 1 - (xx + zz);
00187 Element[6] = yz - wx;
00188 Element[8] = xz - wy;
00189 Element[9] = yz + wx;
00190 Element[10] = 1 - (xx + yy);
00191 Element[12] = Element[13] = Element[14] = Element[3] = Element[7] = Element[11] = 0;
00192 Element[15] = 1;
00193 }
|
|
|
Definition at line 144 of file matrix.cpp. References CopyMatrix(), and Element. Referenced by CAMERA::Apply().
00145 {
00146 MATRIX temp;
00147
00148 temp.CopyMatrix(this->Element);
00149
00150 Element[0 ] = temp.Element[0 ];
00151 Element[1 ] = temp.Element[4 ];
00152 Element[2 ] = temp.Element[8 ];
00153
00154 Element[4 ] = temp.Element[1 ];
00155 Element[5 ] = temp.Element[5 ];
00156 Element[6 ] = temp.Element[9 ];
00157
00158 Element[8 ] = temp.Element[2 ];
00159 Element[9 ] = temp.Element[6 ];
00160 Element[10] = temp.Element[10];
00161
00162 Element[12] *= -1.0f;
00163 Element[13] *= -1.0f;
00164 Element[14] *= -1.0f;
00165 }
|
|
|
|
|
|
Definition at line 195 of file matrix.cpp. References Element, QUAT::w, QUAT::x, QUAT::y, and QUAT::z. Referenced by CAMERA::Apply().
00196 {
00197 float wx, wy, wz, xx, yy, yz, xy, xz, zz, x2, y2, z2;
00198 // calculate coefficients
00199 x2 = quat.x + quat.x;
00200 y2 = quat.y + quat.y;
00201 z2 = quat.z + quat.z;
00202 xx = quat.x * x2;
00203 xy = quat.x * y2;
00204 xz = quat.x * z2;
00205 yy = quat.y * y2;
00206 yz = quat.y * z2;
00207 zz = quat.z * z2;
00208 wx = quat.w * x2;
00209 wy = quat.w * y2;
00210 wz = quat.w * z2;
00211 Element[0] = 1.0 - (yy + zz);
00212 Element[1] = xy - wz;
00213 Element[2] = xz + wy;
00214 Element[3] = 0.0;
00215 Element[4] = xy + wz;
00216 Element[5] = 1.0 - (xx + zz);
00217 Element[6] = yz - wx;
00218 Element[7] = 0.0;
00219 Element[8] = xz - wy;
00220 Element[9] = yz + wx;
00221 Element[10] = 1.0 - (xx + yy);
00222 Element[11] = 0.0;
00223 Element[12] = 0;
00224 Element[13] = 0;
00225 Element[14] = 0;
00226 Element[15] = 1;
00227 }
|
|
|
Definition at line 22 of file matrix.h. Referenced by CAMERA::Apply(), CopyMatrix(), DrawHalo(), DrawSplines(), LoadIdentity(), MatrixFromAxisAngle(), MatrixInverse(), and QuatToMatrix(). |
1.2.15