gtx_wrap.cpp 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #define GLM_ENABLE_EXPERIMENTAL
  2. #include <glm/gtx/wrap.hpp>
  3. #include <glm/ext/scalar_relational.hpp>
  4. #include <glm/ext/vector_relational.hpp>
  5. namespace clamp
  6. {
  7. static int test()
  8. {
  9. int Error(0);
  10. float A = glm::clamp(0.5f);
  11. Error += glm::equal(A, 0.5f, 0.00001f) ? 0 : 1;
  12. float B = glm::clamp(0.0f);
  13. Error += glm::equal(B, 0.0f, 0.00001f) ? 0 : 1;
  14. float C = glm::clamp(1.0f);
  15. Error += glm::equal(C, 1.0f, 0.00001f) ? 0 : 1;
  16. float D = glm::clamp(-0.5f);
  17. Error += glm::equal(D, 0.0f, 0.00001f) ? 0 : 1;
  18. float E = glm::clamp(1.5f);
  19. Error += glm::equal(E, 1.0f, 0.00001f) ? 0 : 1;
  20. glm::vec2 K = glm::clamp(glm::vec2(0.5f));
  21. Error += glm::all(glm::equal(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
  22. glm::vec3 L = glm::clamp(glm::vec3(0.5f));
  23. Error += glm::all(glm::equal(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
  24. glm::vec4 M = glm::clamp(glm::vec4(0.5f));
  25. Error += glm::all(glm::equal(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
  26. glm::vec1 N = glm::clamp(glm::vec1(0.5f));
  27. Error += glm::all(glm::equal(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
  28. return Error;
  29. }
  30. }//namespace clamp
  31. namespace repeat
  32. {
  33. static int test()
  34. {
  35. int Error(0);
  36. float A = glm::repeat(0.5f);
  37. Error += glm::equal(A, 0.5f, 0.00001f) ? 0 : 1;
  38. float B = glm::repeat(0.0f);
  39. Error += glm::equal(B, 0.0f, 0.00001f) ? 0 : 1;
  40. float C = glm::repeat(1.0f);
  41. Error += glm::equal(C, 0.0f, 0.00001f) ? 0 : 1;
  42. float D = glm::repeat(-0.5f);
  43. Error += glm::equal(D, 0.5f, 0.00001f) ? 0 : 1;
  44. float E = glm::repeat(1.5f);
  45. Error += glm::equal(E, 0.5f, 0.00001f) ? 0 : 1;
  46. float F = glm::repeat(0.9f);
  47. Error += glm::equal(F, 0.9f, 0.00001f) ? 0 : 1;
  48. glm::vec2 K = glm::repeat(glm::vec2(0.5f));
  49. Error += glm::all(glm::equal(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
  50. glm::vec3 L = glm::repeat(glm::vec3(0.5f));
  51. Error += glm::all(glm::equal(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
  52. glm::vec4 M = glm::repeat(glm::vec4(0.5f));
  53. Error += glm::all(glm::equal(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
  54. glm::vec1 N = glm::repeat(glm::vec1(0.5f));
  55. Error += glm::all(glm::equal(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
  56. return Error;
  57. }
  58. }//namespace repeat
  59. namespace mirrorClamp
  60. {
  61. static int test()
  62. {
  63. int Error(0);
  64. float A = glm::mirrorClamp(0.5f);
  65. Error += glm::equal(A, 0.5f, 0.00001f) ? 0 : 1;
  66. float B = glm::mirrorClamp(0.0f);
  67. Error += glm::equal(B, 0.0f, 0.00001f) ? 0 : 1;
  68. float C = glm::mirrorClamp(1.1f);
  69. Error += glm::equal(C, 0.1f, 0.00001f) ? 0 : 1;
  70. float D = glm::mirrorClamp(-0.5f);
  71. Error += glm::equal(D, 0.5f, 0.00001f) ? 0 : 1;
  72. float E = glm::mirrorClamp(1.5f);
  73. Error += glm::equal(E, 0.5f, 0.00001f) ? 0 : 1;
  74. float F = glm::mirrorClamp(0.9f);
  75. Error += glm::equal(F, 0.9f, 0.00001f) ? 0 : 1;
  76. float G = glm::mirrorClamp(3.1f);
  77. Error += glm::equal(G, 0.1f, 0.00001f) ? 0 : 1;
  78. float H = glm::mirrorClamp(-3.1f);
  79. Error += glm::equal(H, 0.1f, 0.00001f) ? 0 : 1;
  80. float I = glm::mirrorClamp(-0.9f);
  81. Error += glm::equal(I, 0.9f, 0.00001f) ? 0 : 1;
  82. glm::vec2 K = glm::mirrorClamp(glm::vec2(0.5f));
  83. Error += glm::all(glm::equal(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
  84. glm::vec3 L = glm::mirrorClamp(glm::vec3(0.5f));
  85. Error += glm::all(glm::equal(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
  86. glm::vec4 M = glm::mirrorClamp(glm::vec4(0.5f));
  87. Error += glm::all(glm::equal(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
  88. glm::vec1 N = glm::mirrorClamp(glm::vec1(0.5f));
  89. Error += glm::all(glm::equal(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
  90. return Error;
  91. }
  92. }//namespace mirrorClamp
  93. namespace mirrorRepeat
  94. {
  95. static int test()
  96. {
  97. int Error(0);
  98. float A = glm::mirrorRepeat(0.5f);
  99. Error += glm::equal(A, 0.5f, 0.00001f) ? 0 : 1;
  100. float B = glm::mirrorRepeat(0.0f);
  101. Error += glm::equal(B, 0.0f, 0.00001f) ? 0 : 1;
  102. float C = glm::mirrorRepeat(1.0f);
  103. Error += glm::equal(C, 1.0f, 0.00001f) ? 0 : 1;
  104. float D = glm::mirrorRepeat(-0.5f);
  105. Error += glm::equal(D, 0.5f, 0.00001f) ? 0 : 1;
  106. float E = glm::mirrorRepeat(1.5f);
  107. Error += glm::equal(E, 0.5f, 0.00001f) ? 0 : 1;
  108. float F = glm::mirrorRepeat(0.9f);
  109. Error += glm::equal(F, 0.9f, 0.00001f) ? 0 : 1;
  110. float G = glm::mirrorRepeat(3.0f);
  111. Error += glm::equal(G, 1.0f, 0.00001f) ? 0 : 1;
  112. float H = glm::mirrorRepeat(-3.0f);
  113. Error += glm::equal(H, 1.0f, 0.00001f) ? 0 : 1;
  114. float I = glm::mirrorRepeat(-1.0f);
  115. Error += glm::equal(I, 1.0f, 0.00001f) ? 0 : 1;
  116. glm::vec2 K = glm::mirrorRepeat(glm::vec2(0.5f));
  117. Error += glm::all(glm::equal(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
  118. glm::vec3 L = glm::mirrorRepeat(glm::vec3(0.5f));
  119. Error += glm::all(glm::equal(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
  120. glm::vec4 M = glm::mirrorRepeat(glm::vec4(0.5f));
  121. Error += glm::all(glm::equal(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
  122. glm::vec1 N = glm::mirrorRepeat(glm::vec1(0.5f));
  123. Error += glm::all(glm::equal(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
  124. return Error;
  125. }
  126. }//namespace mirrorRepeat
  127. int main()
  128. {
  129. int Error(0);
  130. Error += clamp::test();
  131. Error += repeat::test();
  132. Error += mirrorClamp::test();
  133. Error += mirrorRepeat::test();
  134. return Error;
  135. }