| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #ifndef spline_h
- #define spline_h
- #include "cengine.h"
- #define MAX_SPLINE_POINTS 20
- typedef struct {
- int num_points;
- float y0d;
- float ynd;
- float x0d;
- float xnd;
- float x[MAX_SPLINE_POINTS];
- float y[MAX_SPLINE_POINTS];
- float yd[MAX_SPLINE_POINTS];
- float xd[MAX_SPLINE_POINTS];
- } spline;
- spline* spline_new();
- void spline_delete(spline* s);
- void spline_add_point(spline* s, vec2 p);
- vec2 spline_get_point(spline* s, int i);
- void spline_set_point(spline* s, int i, vec2 p);
- void spline_update(spline* s);
- void spline_print(spline* s);
- float spline_get_x(spline* s, float y);
- float spline_get_y(spline* s, float x);
- float spline_get_x_between(spline* s, int low, int high, float y);
- float spline_get_y_between(spline* s, int low, int high, float x);
- typedef struct {
- spline* rgb_spline;
- spline* r_spline;
- spline* g_spline;
- spline* b_spline;
- spline* a_spline;
- } color_curves;
- color_curves* color_curves_load(char* filename);
- void color_curves_delete(color_curves* cc);
- void color_curves_write_lut(color_curves* cc, char* filename);
- vec3 color_curves_map(color_curves* cc, vec3 in);
- #endif
|