diff --git a/RayTracer/shape/Shape.h b/RayTracer/shape/Shape.h
index d4f0e704a5c8e54d180371c167cfbe30fd175739..2a3c3e403d240c16f1961697c5dc8b2506095828 100644
--- a/RayTracer/shape/Shape.h
+++ b/RayTracer/shape/Shape.h
@@ -10,6 +10,8 @@ namespace shapes {
 class Shape {
    public:
 	virtual std::optional<cam::Hit> intersect(const cam::Ray& r) const = 0;
+	virtual std::pair<float, float> texture_coordinates(
+	    const util::Vec3& pos) const = 0;
 	virtual util::AxisAlignedBoundingBox bounds() const = 0;
 };
 }  // namespace shapes
\ No newline at end of file