gtx_spline.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include <glm/vec2.hpp>
  2. #include <glm/vec3.hpp>
  3. #include <glm/vec4.hpp>
  4. #include <glm/gtx/spline.hpp>
  5. namespace catmullRom
  6. {
  7. int test()
  8. {
  9. int Error(0);
  10. glm::vec2 Result2 = glm::catmullRom(
  11. glm::vec2(0.0f, 0.0f),
  12. glm::vec2(1.0f, 0.0f),
  13. glm::vec2(1.0f, 1.0f),
  14. glm::vec2(0.0f, 1.0f), 0.5f);
  15. glm::vec3 Result3 = glm::catmullRom(
  16. glm::vec3(0.0f, 0.0f, 0.0f),
  17. glm::vec3(1.0f, 0.0f, 0.0f),
  18. glm::vec3(1.0f, 1.0f, 0.0f),
  19. glm::vec3(0.0f, 1.0f, 0.0f), 0.5f);
  20. glm::vec4 Result4 = glm::catmullRom(
  21. glm::vec4(0.0f, 0.0f, 0.0f, 1.0f),
  22. glm::vec4(1.0f, 0.0f, 0.0f, 1.0f),
  23. glm::vec4(1.0f, 1.0f, 0.0f, 1.0f),
  24. glm::vec4(0.0f, 1.0f, 0.0f, 1.0f), 0.5f);
  25. return Error;
  26. }
  27. }//catmullRom
  28. namespace hermite
  29. {
  30. int test()
  31. {
  32. int Error(0);
  33. glm::vec2 Result2 = glm::hermite(
  34. glm::vec2(0.0f, 0.0f),
  35. glm::vec2(1.0f, 0.0f),
  36. glm::vec2(1.0f, 1.0f),
  37. glm::vec2(0.0f, 1.0f), 0.5f);
  38. glm::vec3 Result3 = glm::hermite(
  39. glm::vec3(0.0f, 0.0f, 0.0f),
  40. glm::vec3(1.0f, 0.0f, 0.0f),
  41. glm::vec3(1.0f, 1.0f, 0.0f),
  42. glm::vec3(0.0f, 1.0f, 0.0f), 0.5f);
  43. glm::vec4 Result4 = glm::hermite(
  44. glm::vec4(0.0f, 0.0f, 0.0f, 1.0f),
  45. glm::vec4(1.0f, 0.0f, 0.0f, 1.0f),
  46. glm::vec4(1.0f, 1.0f, 0.0f, 1.0f),
  47. glm::vec4(0.0f, 1.0f, 0.0f, 1.0f), 0.5f);
  48. return Error;
  49. }
  50. }//catmullRom
  51. namespace cubic
  52. {
  53. int test()
  54. {
  55. int Error(0);
  56. glm::vec2 Result2 = glm::cubic(
  57. glm::vec2(0.0f, 0.0f),
  58. glm::vec2(1.0f, 0.0f),
  59. glm::vec2(1.0f, 1.0f),
  60. glm::vec2(0.0f, 1.0f), 0.5f);
  61. glm::vec3 Result3 = glm::cubic(
  62. glm::vec3(0.0f, 0.0f, 0.0f),
  63. glm::vec3(1.0f, 0.0f, 0.0f),
  64. glm::vec3(1.0f, 1.0f, 0.0f),
  65. glm::vec3(0.0f, 1.0f, 0.0f), 0.5f);
  66. glm::vec4 Result = glm::cubic(
  67. glm::vec4(0.0f, 0.0f, 0.0f, 1.0f),
  68. glm::vec4(1.0f, 0.0f, 0.0f, 1.0f),
  69. glm::vec4(1.0f, 1.0f, 0.0f, 1.0f),
  70. glm::vec4(0.0f, 1.0f, 0.0f, 1.0f), 0.5f);
  71. return Error;
  72. }
  73. }//catmullRom
  74. int main()
  75. {
  76. int Error(0);
  77. Error += catmullRom::test();
  78. Error += hermite::test();
  79. Error += cubic::test();
  80. return Error;
  81. }