Eigen::Vector3d Vec3
Definition: Vec3.h:11
Class for individual rays.
Definition: ray.h:9
Virtual class for shapes.
Definition: shape.h:12
friend std::ostream & operator<<(std::ostream &out, const shape &shp)
Printer.
Definition: shape.h:22
virtual std::string print_str() const =0
String for printing the object.
virtual void intersect(ray &r)=0
Operate the intersection of ray r with shape.
virtual Vec3 normal(const ray &r)=0
Compute the normal of shape at current ray r position.