diff --git a/Skeleton.cpp b/Skeleton.cpp index fb4e53da72316e8763dbbeb9bbd980d72bd61e43..e8d76196a70dd313e77ef1b8f1b33549bf5ac752 100644 --- a/Skeleton.cpp +++ b/Skeleton.cpp @@ -42,8 +42,6 @@ int objIndex[12][5]{ {5, 6, 19, 10, 14} }; -enum MaterialType { ROUGH, REFLECTIVE }; - struct Hit; struct Ray; struct Light; @@ -53,14 +51,13 @@ struct Material { vec3 ka, kd, ks; float shininess; vec3 F0; - MaterialType type; - Material(MaterialType t): type(t) {} + Material() {} virtual void trace(const Scene& scene, const Hit& hit, const Ray& ray, const std::vector<Light*>& lights, int depth, vec3& outRadiance) = 0; }; struct RoughMaterial: Material { - RoughMaterial(vec3 _kd, vec3 _ks, float _shininess): Material(ROUGH) { + RoughMaterial(vec3 _kd, vec3 _ks, float _shininess) { ka = _kd * M_PI; kd = _kd; ks = _ks; @@ -75,7 +72,7 @@ vec3 operator/(const vec3& num, const vec3& denom) { } struct ReflectiveMaterial: Material { - ReflectiveMaterial(vec3 n, vec3 kappa): Material(REFLECTIVE) { + ReflectiveMaterial(vec3 n, vec3 kappa) { vec3 one(1, 1, 1); F0 = ((n - one)*(n - one) + kappa*kappa) / ((n + one)*(n + one) + kappa*kappa); }