/* * DoRayMe - a quick and dirty Raytracer * Sphere header * * Created by Manoƫl Trapier * Copyright (c) 2020 986-Studio. * */ #ifndef DORAYME_SPHERE_H #define DORAYME_SPHERE_H #include #include #include #include #include class Sphere : public Shape { protected: Intersect localIntersect(Ray r); Tuple localNormalAt(Tuple point, Intersection *hit = nullptr); public: Sphere() : Shape(Shape::SPHERE) { stats.addSphere(); }; /* All sphere are at (0, 0, 0) and radius 1 in the object space */ void dumpMe(FILE *fp); }; /* Mostly for test purposes */ class GlassSphere : public Sphere { public: GlassSphere() : Sphere() { this->material.transparency = 1.0; this->material.refractiveIndex = 1.5; }; }; #endif /* DORAYME_SPHERE_H */