37 lines
582 B
C
37 lines
582 B
C
#ifndef _COLOR_MATH_H
|
|
#define _COLOR_MATH_H
|
|
|
|
#include "math.h"
|
|
#include "time.h"
|
|
|
|
// These are macros so they can be applied to constants
|
|
#define DEGREES(rad) ((rad) * 180.0 / M_PI)
|
|
#define RADIANS(deg) ((deg) * M_PI / 180.0)
|
|
|
|
enum sun_condition {
|
|
NORMAL,
|
|
MIDNIGHT_SUN,
|
|
POLAR_NIGHT,
|
|
SUN_CONDITION_LAST
|
|
};
|
|
|
|
struct sun {
|
|
time_t dawn;
|
|
time_t sunrise;
|
|
time_t sunset;
|
|
time_t dusk;
|
|
};
|
|
|
|
struct rgb {
|
|
double r, g, b;
|
|
};
|
|
|
|
struct xyz {
|
|
double x, y, z;
|
|
};
|
|
|
|
enum sun_condition calc_sun(struct tm *tm, double latitude, struct sun *sun);
|
|
struct rgb calc_whitepoint(int temp);
|
|
|
|
#endif
|