#ifndef CG1_TRACER_OBJMODEL_H #define CG1_TRACER_OBJMODEL_H #include "primitive.h" #include "triangle.h" #include #include class ObjModel : public Primitive { public: explicit ObjModel(const std::shared_ptr &shader) : Primitive(shader) {} void loadObj(const std::string& fileName, Vector3d translation, Vector3d upVector); bool intersect(Ray &ray) const override; [[nodiscard]] float minimumBounds(int dimension) const override; [[nodiscard]] float maximumBounds(int dimension) const override; protected: std::vector faces; }; #endif //CG1_TRACER_OBJMODEL_H