#ifndef ENTITY_H #define ENTITY_H #include #include #include using std::vector; using std::queue; using std::pair; #include "ray.h" #include "ray_intersect.h" #include "lin_alg.h" #include "transform.h" #include "color.h" class Entity { public: virtual ~Entity() {} virtual RayIntersect CalcRayIntersect(Ray ray) = 0; virtual vector3d CalcNormal(Ray ray, RayIntersect& ri) = 0; virtual void PathCompress(const Transform&, queue >&, vector&)=0; virtual int IntersectionTest(Ray ray)=0; float kd, ks, ka, n; Color col; }; #endif