Matrix2.cpp 679 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. #include "../Precompiled.h"
  4. #include "../Math/Matrix2.h"
  5. #include <cstdio>
  6. #include "../DebugNew.h"
  7. namespace Urho3D
  8. {
  9. const Matrix2 Matrix2::ZERO(
  10. 0.0f, 0.0f,
  11. 0.0f, 0.0f);
  12. const Matrix2 Matrix2::IDENTITY;
  13. Matrix2 Matrix2::Inverse() const
  14. {
  15. float det = m00_ * m11_ -
  16. m01_ * m10_;
  17. float invDet = 1.0f / det;
  18. return Matrix2(
  19. m11_, -m01_,
  20. -m10_, m00_
  21. ) * invDet;
  22. }
  23. String Matrix2::ToString() const
  24. {
  25. char tempBuffer[MATRIX_CONVERSION_BUFFER_LENGTH];
  26. sprintf(tempBuffer, "%g %g %g %g", m00_, m01_, m10_, m11_);
  27. return String(tempBuffer);
  28. }
  29. }