Raytracer
Loading...
Searching...
No Matches
Kinds.hpp
1#ifndef __ARG_KINDS_HPP__
2#define __ARG_KINDS_HPP__
3
4namespace Raytracer::Arguments
5{
6 enum class ArgumentKind {
7 /* Textures */
8 ARG_SOLID_COLOR,
9 ARG_SOLID_RGB,
10 ARG_NOISE,
11 ARG_IMAGE,
12 ARG_CHECKER_TEXTURE,
13 ARG_CHECKER_COLOR,
14 /* Effects */
15 ARG_ROTATE_X,
16 ARG_ROTATE_Y,
17 ARG_ROTATE_Z,
18 ARG_SMOKE_TEXTURE,
19 ARG_SMOKE_COLOR,
20 ARG_TRANSLATE,
21 /* Materials */
22 ARG_LAMBERTIAN_COLOR,
23 ARG_LAMBERTIAN_TEXTURE,
24 ARG_DIELECTRIC,
25 ARG_DIELECTRIC_COLOR,
26 ARG_DIFFUSE_LIGHT_COLOR,
27 ARG_DIFFUSE_LIGHT_TEXTURE,
28 ARG_ISOTROPIC_COLOR,
29 ARG_ISOTROPIC_TEXTURE,
30 ARG_METAL,
31 /* Shapes */
32 ARG_CONE,
33 ARG_CYLINDER,
34 ARG_PLANE,
35 ARG_QUAD,
36 ARG_SPHERE,
37 ARG_SPHERE_MOVING,
38 ARG_BOX,
39 };
40}
41
42#define ARG_KIND(k) \
43 ArgumentKind kind() const override \
44 { \
45 return k; \
46 }
47
48#endif /* __ARG_KINDS_HPP__ */