core_func_swizzle.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ///////////////////////////////////////////////////////////////////////////////////////////////////
  2. // OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
  3. ///////////////////////////////////////////////////////////////////////////////////////////////////
  4. // Created : 2011-10-16
  5. // Updated : 2011-10-16
  6. // Licence : This source is under MIT License
  7. // File : test/core/core_func_swizzle.cpp
  8. ///////////////////////////////////////////////////////////////////////////////////////////////////
  9. #define GLM_MESSAGES
  10. #define GLM_SWIZZLE
  11. #include <glm/glm.hpp>
  12. int test_ivec2_swizzle()
  13. {
  14. int Error = 0;
  15. glm::ivec2 A(1, 2);
  16. glm::ivec2 B = A.xy();
  17. glm::ivec2 C(0);
  18. C.xy() = B.xy();
  19. Error += A == B ? 0 : 1;
  20. Error += A == C ? 0 : 1;
  21. return Error;
  22. }
  23. int test_ivec3_swizzle()
  24. {
  25. int Error = 0;
  26. glm::ivec3 A(1, 2, 3);
  27. glm::ivec3 B = A.xyz();
  28. glm::ivec3 C(0);
  29. C.xyz() = B.xyz();
  30. Error += A == B ? 0 : 1;
  31. Error += A == C ? 0 : 1;
  32. return Error;
  33. }
  34. int test_ivec4_swizzle()
  35. {
  36. int Error = 0;
  37. glm::ivec4 A(1, 2, 3, 4);
  38. glm::ivec4 B = A.xyzw();
  39. glm::ivec4 C(0);
  40. C.xyzw() = B.xyzw();
  41. Error += A == B ? 0 : 1;
  42. Error += A == C ? 0 : 1;
  43. return Error;
  44. }
  45. int test_vec4_swizzle()
  46. {
  47. int Error = 0;
  48. glm::vec4 A(1, 2, 3, 4);
  49. glm::vec4 B = A.xyzw();
  50. glm::vec4 C(0);
  51. //C.xyzw() = B.xyzw();
  52. float f = glm::dot(C.wzyx(), C.xyzw());
  53. Error += A == B ? 0 : 1;
  54. Error += A == C ? 0 : 1;
  55. static_assert(sizeof(int) <= 4, "Test");
  56. return Error;
  57. }
  58. int main()
  59. {
  60. int Error = 0;
  61. Error += test_ivec2_swizzle();
  62. Error += test_ivec3_swizzle();
  63. Error += test_ivec4_swizzle();
  64. Error += test_vec4_swizzle();
  65. return Error;
  66. }