gtx_wrap.cpp 5.4 KB

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