aabb2d.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright (c), Recep Aslantas.
  3. *
  4. * MIT License (MIT), http://opensource.org/licenses/MIT
  5. * Full license can be found in the LICENSE file
  6. */
  7. #ifndef cglmc_aabb2d_h
  8. #define cglmc_aabb2d_h
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. #include "../cglm.h"
  13. /* DEPRECATED! use _diag */
  14. #define glmc_aabb2d_size(aabb) glmc_aabb2d_diag(aabb)
  15. CGLM_EXPORT
  16. void
  17. glmc_aabb2d_zero(vec2 aabb[2]);
  18. CGLM_EXPORT
  19. void
  20. glmc_aabb2d_copy(vec2 aabb[2], vec2 dest[2]);
  21. CGLM_EXPORT
  22. void
  23. glmc_aabb2d_transform(vec2 aabb[2], mat3 m, vec2 dest[2]);
  24. CGLM_EXPORT
  25. void
  26. glmc_aabb2d_merge(vec2 aabb1[2], vec2 aabb2[2], vec2 dest[2]);
  27. CGLM_EXPORT
  28. void
  29. glmc_aabb2d_crop(vec2 aabb[2], vec2 cropAabb[2], vec2 dest[2]);
  30. CGLM_EXPORT
  31. void
  32. glmc_aabb2d_crop_until(vec2 aabb[2],
  33. vec2 cropAabb[2],
  34. vec2 clampAabb[2],
  35. vec2 dest[2]);
  36. CGLM_EXPORT
  37. void
  38. glmc_aabb2d_invalidate(vec2 aabb[2]);
  39. CGLM_EXPORT
  40. bool
  41. glmc_aabb2d_isvalid(vec2 aabb[2]);
  42. CGLM_EXPORT
  43. float
  44. glmc_aabb2d_diag(vec2 aabb[2]);
  45. CGLM_EXPORT
  46. void
  47. glmc_aabb2d_sizev(vec2 aabb[2], vec2 dest);
  48. CGLM_EXPORT
  49. float
  50. glmc_aabb2d_radius(vec2 aabb[2]);
  51. CGLM_EXPORT
  52. void
  53. glmc_aabb2d_center(vec2 aabb[2], vec2 dest);
  54. CGLM_EXPORT
  55. bool
  56. glmc_aabb2d_aabb(vec2 aabb[2], vec2 other[2]);
  57. CGLM_EXPORT
  58. bool
  59. glmc_aabb2d_point(vec2 aabb[2], vec2 point);
  60. CGLM_EXPORT
  61. bool
  62. glmc_aabb2d_contains(vec2 aabb[2], vec2 other[2]);
  63. CGLM_EXPORT
  64. bool
  65. glmc_aabb2d_circle(vec2 aabb[2], vec3 s);
  66. #ifdef __cplusplus
  67. }
  68. #endif
  69. #endif /* cglmc_aabb2d_h */