shape.hpp 512 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // shape.hpp
  3. // math
  4. //
  5. // Created by Sam Jaffe on 7/5/16.
  6. //
  7. #pragma once
  8. #include "vector/vector.hpp"
  9. #include "math_fwd.hpp"
  10. namespace math {
  11. struct line {
  12. vec2 first, second;
  13. };
  14. struct circle {
  15. vec2 center;
  16. float radius;
  17. };
  18. struct quad {
  19. vec2 ll, lr, ur, ul;
  20. };
  21. struct rectangle {
  22. operator quad() const;
  23. vec2 origin, size;
  24. };
  25. struct square {
  26. operator rectangle() const;
  27. operator quad() const;
  28. vec2 origin;
  29. float size;
  30. };
  31. }