-
Notifications
You must be signed in to change notification settings - Fork 0
/
color.h
70 lines (57 loc) · 1.39 KB
/
color.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/**
* Samuel Sweet
* CS 5600-1 Assignment 5
*
* Represents floating-point (32bpc) color.
*/
#ifndef COLOR_H
#define COLOR_H
typedef struct _Color {
float red;
float green;
float blue;
float alpha;
} Color;
inline void initColor(Color* color, float red, float green, float blue, float alpha)
{
color->red = red;
color->green = green;
color->blue = blue;
color->alpha = alpha;
}
inline void copyColor(Color* src, Color* dest)
{
dest->red = src->red;
dest->green = src->green;
dest->blue = src->blue;
dest->alpha = src->alpha;
}
inline Color addColor(Color* first, Color* second)
{
Color sumColor;
initColor(&sumColor, first->red+second->red,
first->green+second->green,
first->blue+second->blue,
first->alpha+second->alpha);
return sumColor;
}
inline Color multColor(Color* first, Color* second)
{
Color sumColor;
initColor(&sumColor, first->red*second->red,
first->green*second->green,
first->blue*second->blue,
first->alpha*second->alpha);
return sumColor;
}
inline Color scalarMultColor(float scalar, Color* first)
{
Color multColor;
initColor(&multColor,
scalar*first->red,
scalar*first->green,
scalar*first->blue,
scalar*first->alpha);
return multColor;
}
#endif /* COLOR_H */