OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "../../include/fxcrt/fx_basic.h" | 7 #include "../../include/fxcrt/fx_basic.h" |
8 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ | 8 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
9 #include <sys/types.h> | 9 #include <sys/types.h> |
10 #include <dirent.h> | 10 #include <dirent.h> |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 #else | 459 #else |
460 return '/'; | 460 return '/'; |
461 #endif | 461 #endif |
462 } | 462 } |
463 | 463 |
464 CFX_Matrix_3by3 CFX_Matrix_3by3::Inverse() | 464 CFX_Matrix_3by3 CFX_Matrix_3by3::Inverse() |
465 { | 465 { |
466 FX_FLOAT det = a*(e*i - f*h) - b*(i*d - f*g) + c*(d*h - e*g); | 466 FX_FLOAT det = a*(e*i - f*h) - b*(i*d - f*g) + c*(d*h - e*g); |
467 if (FXSYS_fabs(det) < 0.0000001) | 467 if (FXSYS_fabs(det) < 0.0000001) |
468 return CFX_Matrix_3by3(); | 468 return CFX_Matrix_3by3(); |
469 else | 469 |
470 return CFX_Matrix_3by3( | 470 return CFX_Matrix_3by3( |
471 (e*i - f*h) / det, | 471 (e*i - f*h) / det, |
472 -(b*i - c*h) / det, | 472 -(b*i - c*h) / det, |
473 (b*f - c*e) / det, | 473 (b*f - c*e) / det, |
474 -(d*i - f*g) / det, | 474 -(d*i - f*g) / det, |
475 (a*i - c*g) / det, | 475 (a*i - c*g) / det, |
476 -(a*f - c*d) / det, | 476 -(a*f - c*d) / det, |
477 (d*h - e*g) / det, | 477 (d*h - e*g) / det, |
478 -(a*h - b*g) / det, | 478 -(a*h - b*g) / det, |
479 (a*e - b*d) / det | 479 (a*e - b*d) / det |
480 ); | 480 ); |
481 } | 481 } |
482 | 482 |
483 CFX_Matrix_3by3 CFX_Matrix_3by3::Multiply(const CFX_Matrix_3by3 &m) | 483 CFX_Matrix_3by3 CFX_Matrix_3by3::Multiply(const CFX_Matrix_3by3 &m) |
484 { | 484 { |
485 return CFX_Matrix_3by3( | 485 return CFX_Matrix_3by3( |
486 a*m.a + b*m.d + c*m.g, | 486 a*m.a + b*m.d + c*m.g, |
487 a*m.b + b*m.e + c*m.h, | 487 a*m.b + b*m.e + c*m.h, |
488 a*m.c + b*m.f + c*m.i, | 488 a*m.c + b*m.f + c*m.i, |
489 d*m.a + e*m.d + f*m.g, | 489 d*m.a + e*m.d + f*m.g, |
490 d*m.b + e*m.e + f*m.h, | 490 d*m.b + e*m.e + f*m.h, |
491 d*m.c + e*m.f + f*m.i, | 491 d*m.c + e*m.f + f*m.i, |
492 g*m.a + h*m.d + i*m.g, | 492 g*m.a + h*m.d + i*m.g, |
493 g*m.b + h*m.e + i*m.h, | 493 g*m.b + h*m.e + i*m.h, |
494 g*m.c + h*m.f + i*m.i | 494 g*m.c + h*m.f + i*m.i |
495 ); | 495 ); |
496 } | 496 } |
497 | 497 |
498 CFX_Vector_3by1 CFX_Matrix_3by3::TransformVector(const CFX_Vector_3by1 &v) | 498 CFX_Vector_3by1 CFX_Matrix_3by3::TransformVector(const CFX_Vector_3by1 &v) |
499 { | 499 { |
500 return CFX_Vector_3by1( | 500 return CFX_Vector_3by1( |
501 a * v.a + b * v.b + c * v.c, | 501 a * v.a + b * v.b + c * v.c, |
502 d * v.a + e * v.b + f * v.c, | 502 d * v.a + e * v.b + f * v.c, |
503 g * v.a + h * v.b + i * v.c | 503 g * v.a + h * v.b + i * v.c |
504 ); | 504 ); |
505 } | 505 } |
OLD | NEW |