position.cpp 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #if defined(Hiro_Position)
  2. Position::Position() {
  3. setPosition(0, 0);
  4. }
  5. Position::Position(float x, float y) {
  6. setPosition(x, y);
  7. }
  8. Position::operator bool() const {
  9. return state.x || state.y;
  10. }
  11. auto Position::operator==(const Position& source) const -> bool {
  12. return x() == source.x() && y() == source.y();
  13. }
  14. auto Position::operator!=(const Position& source) const -> bool {
  15. return !operator==(source);
  16. }
  17. auto Position::reset() -> type& {
  18. return setPosition(0, 0);
  19. }
  20. auto Position::setPosition(Position position) -> type& {
  21. return setPosition(position.x(), position.y());
  22. }
  23. auto Position::setPosition(float x, float y) -> type& {
  24. state.x = x;
  25. state.y = y;
  26. return *this;
  27. }
  28. auto Position::setX(float x) -> type& {
  29. state.x = x;
  30. return *this;
  31. }
  32. auto Position::setY(float y) -> type& {
  33. state.y = y;
  34. return *this;
  35. }
  36. auto Position::x() const -> float {
  37. return state.x;
  38. }
  39. auto Position::y() const -> float {
  40. return state.y;
  41. }
  42. #endif