| 332 | } |
| 333 | |
| 334 | bool GetMxbInverse(float* mout, float* vout, |
| 335 | const float* m_, const float* v_) |
| 336 | { |
| 337 | float m[16]; |
| 338 | float v[4]; |
| 339 | memcpy(m, m_, 16*sizeof(float)); |
| 340 | memcpy(v, v_, 4*sizeof(float)); |
| 341 | |
| 342 | if(!GetM44Inverse(mout, m)) return false; |
| 343 | |
| 344 | for(int i=0; i<4; ++i) |
| 345 | { |
| 346 | v[i] = -v[i]; |
| 347 | } |
| 348 | GetM44V4Product(vout, mout, v); |
| 349 | |
| 350 | return true; |
| 351 | } |
| 352 | |
| 353 | //------------------------------------------------------------------------------ |
| 354 | // |