math_fwd.hpp 723 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // vector_typedefs.hpp
  3. // math
  4. //
  5. // Created by Sam Jaffe on 7/5/16.
  6. //
  7. #pragma once
  8. #include <cstddef>
  9. #include <cstdint>
  10. namespace math {
  11. namespace vector {
  12. template <typename, size_t> class vector;
  13. }
  14. namespace matrix {
  15. template <typename, size_t, size_t> class matrix;
  16. template <typename T, size_t N> using square_matrix = matrix<T, N, N>;
  17. }
  18. }
  19. namespace math {
  20. using vec2i = vector::vector<int, 2>;
  21. using vec2 = vector::vector<float, 2>;
  22. using vec3 = vector::vector<float, 3>;
  23. using rgba = vector::vector<uint8_t, 4>;
  24. using matr4 = matrix::matrix<float, 4, 4>;
  25. namespace dim2 {
  26. using point = vec2;
  27. struct line;
  28. struct circle;
  29. struct quad;
  30. struct rectangle;
  31. struct square;
  32. }
  33. struct degree;
  34. struct radian;
  35. }