first render
[retroray] / src / material.h
1 /*
2 RetroRay - integrated standalone vintage modeller/renderer
3 Copyright (C) 2023  John Tsiombikas <nuclear@mutantstargoat.com>
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <https://www.gnu.org/licenses/>.
17 */
18 #ifndef MATERIAL_H_
19 #define MATERIAL_H_
20
21 #include "cgmath/cgmath.h"
22 #include "texture.h"
23
24 struct material {
25         char *name;
26         cgm_vec3 kd, ks, ke;
27         float shin;
28         float refl, trans, ior;
29
30         struct texture *texmap;
31 };
32
33 void mtl_init(struct material *mtl);
34 void mtl_destroy(struct material *mtl);
35
36 void mtl_set_name(struct material *mtl, const char *name);
37
38 #endif  /* MATERIAL_H_ */