wrap.cpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. //#include "../precompiled.hpp"
  2. #include "../../glm/glm.hpp"
  3. #include "../../glm/gtc/half_float.hpp"
  4. #include "../../glm/gtc/double_float.hpp"
  5. #include "../../glm/img/wrap.hpp"
  6. namespace glm{
  7. namespace test
  8. {
  9. static float const epsilon = 0.001f;
  10. bool main_img_wrap()
  11. {
  12. bool Success = true;
  13. // mirrorRepeat
  14. {
  15. float A = mirrorRepeat(0.0f); // 0.0f
  16. Success = Success && (A - 0.0f) < epsilon;
  17. assert(Success);
  18. float B = mirrorRepeat(0.2f); // 0.2f
  19. Success = Success && (B - 0.2f) < epsilon;
  20. assert(Success);
  21. float C = mirrorRepeat(0.5f); // 0.5f
  22. Success = Success && (C - 0.5f) < epsilon;
  23. assert(Success);
  24. float D = mirrorRepeat(1.0f); // 1.0f
  25. Success = Success && (D - 1.0f) < epsilon;
  26. assert(Success);
  27. float E = mirrorRepeat(1.2f); // 0.8f
  28. Success = Success && (E - 0.8f) < epsilon;
  29. assert(Success);
  30. float F = mirrorRepeat(1.5f); // 0.5f
  31. Success = Success && (F - 0.5f) < epsilon;
  32. assert(Success);
  33. float G = mirrorRepeat(1.6f); // 0.4f
  34. Success = Success && (G - 0.4f) < epsilon;
  35. assert(Success);
  36. float H = mirrorRepeat(2.0f); // 0.0f
  37. Success = Success && (H - 0.0f) < epsilon;
  38. assert(Success);
  39. float I = mirrorRepeat(2.1f); // 0.1f
  40. Success = Success && (I - 0.1f) < epsilon;
  41. assert(Success);
  42. float J = mirrorRepeat(3.0f); // 1.0f
  43. Success = Success && (J - 1.0f) < epsilon;
  44. assert(Success);
  45. float K = mirrorRepeat(3.9f); // 0.1f
  46. Success = Success && (K - 0.1f) < epsilon;
  47. assert(Success);
  48. float L = mirrorRepeat(4.2f); // 0.2f
  49. Success = Success && (L - 0.2f) < epsilon;
  50. assert(Success);
  51. float M = mirrorRepeat(3.9f); // 0.1f
  52. Success = Success && (M - 0.1f) < epsilon;
  53. assert(Success);
  54. float N = mirrorRepeat(4.2f); // 0.2f
  55. Success = Success && (N - 0.2f) < epsilon;
  56. assert(Success);
  57. float O = mirrorRepeat(5.2f); // 0.8f
  58. Success = Success && (O - 0.8f) < epsilon;
  59. assert(Success);
  60. float P = mirrorRepeat(5.8f); // 0.2f
  61. Success = Success && (P - 0.2f) < epsilon;
  62. assert(Success);
  63. float Q = mirrorRepeat(6.2f); // 0.2f
  64. Success = Success && (Q - 0.2f) < epsilon;
  65. assert(Success);
  66. float R = mirrorRepeat(6.8f); // 0.8f
  67. Success = Success && (R - 0.8f) < epsilon;
  68. assert(Success);
  69. float S = mirrorRepeat(7.0f); // 1.0f
  70. Success = Success && (S - 1.0f) < epsilon;
  71. assert(Success);
  72. }
  73. {
  74. glm::vec2 A = mirrorRepeat(glm::vec2(0.0f)); // 0.0f
  75. Success = Success && glm::all(glm::lessThan((A - 0.0f), glm::vec2(epsilon)));
  76. assert(Success);
  77. glm::vec3 B = mirrorRepeat(glm::vec3(0.2f)); // 0.2f
  78. Success = Success && glm::all(glm::lessThan((B - 0.2f), glm::vec3(epsilon)));
  79. assert(Success);
  80. glm::vec4 C = mirrorRepeat(glm::vec4(1.2f)); // 0.8f
  81. Success = Success && glm::all(glm::lessThan((C - 0.8f), glm::vec4(epsilon)));
  82. assert(Success);
  83. }
  84. {
  85. glm::hvec2 A = mirrorRepeat(glm::hvec2(0.0f)); // 0.0f
  86. Success = Success && glm::all(glm::lessThan((A - glm::half(0.0f)), glm::hvec2(epsilon)));
  87. assert(Success);
  88. glm::hvec3 B = mirrorRepeat(glm::hvec3(0.2f)); // 0.2f
  89. Success = Success && glm::all(glm::lessThan((B - glm::half(0.2f)), glm::hvec3(epsilon)));
  90. assert(Success);
  91. glm::hvec4 C = mirrorRepeat(glm::hvec4(1.2f)); // 0.8f
  92. Success = Success && glm::all(glm::lessThan((C - glm::half(0.8f)), glm::hvec4(epsilon)));
  93. assert(Success);
  94. }
  95. {
  96. glm::dvec2 A = mirrorRepeat(glm::dvec2(0.0f)); // 0.0f
  97. Success = Success && glm::all(glm::lessThan((A - double(0.0f)), glm::dvec2(epsilon)));
  98. assert(Success);
  99. glm::dvec3 B = mirrorRepeat(glm::dvec3(0.2f)); // 0.2f
  100. Success = Success && glm::all(glm::lessThan((B - double(0.2f)), glm::dvec3(epsilon)));
  101. assert(Success);
  102. glm::dvec4 C = mirrorRepeat(glm::dvec4(1.2f)); // 0.8f
  103. Success = Success && glm::all(glm::lessThan((C - double(0.8f)), glm::dvec4(epsilon)));
  104. assert(Success);
  105. }
  106. return Success;
  107. }
  108. }//namespace test
  109. }//namespace glm