Vector2i.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <TerrainRenderer/Vector2i.h>
  9. #include <AzCore/Casting/numeric_cast.h>
  10. namespace Terrain
  11. {
  12. Vector2i::Vector2i(int32_t x, int32_t y)
  13. : m_x(x)
  14. , m_y(y)
  15. {}
  16. Vector2i::Vector2i(uint32_t value)
  17. : m_x(aznumeric_cast<int32_t>(value))
  18. , m_y(aznumeric_cast<int32_t>(value))
  19. {}
  20. Vector2i::Vector2i(int32_t value)
  21. : m_x(value)
  22. , m_y(value)
  23. {}
  24. AZ::Vector2 Vector2i::ToVector2()
  25. {
  26. return AZ::Vector2(aznumeric_cast<float>(m_x), aznumeric_cast<float>(m_y));
  27. }
  28. Vector2i Vector2i::operator+(const Vector2i& rhs) const
  29. {
  30. Vector2i returnPoint = *this;
  31. returnPoint += rhs;
  32. return returnPoint;
  33. }
  34. Vector2i& Vector2i::operator+=(const Vector2i& rhs)
  35. {
  36. m_x += rhs.m_x;
  37. m_y += rhs.m_y;
  38. return *this;
  39. }
  40. Vector2i Vector2i::operator-(const Vector2i& rhs) const
  41. {
  42. return *this + -rhs;
  43. }
  44. Vector2i& Vector2i::operator-=(const Vector2i& rhs)
  45. {
  46. return *this += -rhs;
  47. }
  48. Vector2i Vector2i::operator-() const
  49. {
  50. return {-m_x, -m_y};
  51. }
  52. Vector2i Vector2i::operator*(const Vector2i& rhs) const
  53. {
  54. Vector2i returnPoint = *this;
  55. returnPoint *= rhs;
  56. return returnPoint;
  57. }
  58. Vector2i& Vector2i::operator*=(const Vector2i& rhs)
  59. {
  60. m_x *= rhs.m_x;
  61. m_y *= rhs.m_y;
  62. return *this;
  63. }
  64. Vector2i Vector2i::operator/(const Vector2i& rhs) const
  65. {
  66. Vector2i returnPoint = *this;
  67. returnPoint /= rhs;
  68. return returnPoint;
  69. }
  70. Vector2i& Vector2i::operator/=(const Vector2i& rhs)
  71. {
  72. m_x /= rhs.m_x;
  73. m_y /= rhs.m_y;
  74. return *this;
  75. }
  76. bool Vector2i::operator==(const Vector2i& rhs) const
  77. {
  78. return rhs.m_x == m_x && rhs.m_y == m_y;
  79. }
  80. bool Vector2i::operator!=(const Vector2i& rhs) const
  81. {
  82. return !(*this == rhs);
  83. }
  84. }