splines.h 590 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include <vector>
  3. #include <glm/vec2.hpp>
  4. #include <glm/vec3.hpp>
  5. #include <string>
  6. #include <easing.h>
  7. constexpr static int MAX_SPLINES_COUNT = 20;
  8. struct Spline
  9. {
  10. glm::vec2 points[MAX_SPLINES_COUNT] = {{0,0}, {1,1}};
  11. int size = 2;
  12. void addSpline();
  13. void removeSpline();
  14. float applySpline(float p);
  15. std::string saveSettings(int tabs);
  16. void sanitize();
  17. };
  18. glm::vec2 lerp(glm::vec2 a, glm::vec2 b, float r);
  19. glm::dvec3 lerp(glm::dvec3 a, glm::dvec3 b, float r);
  20. float applySpline(float p, glm::vec2 *points, size_t s);
  21. float applySpline(float p, Spline &s);