diff --git a/RayTracer/tools/Vec3.cpp b/RayTracer/tools/Vec3.cpp
index 1bd26e71137ee87390a826293078aa22037336bb..5cd548bdb33e741179d7c1488d150d930300c51b 100644
--- a/RayTracer/tools/Vec3.cpp
+++ b/RayTracer/tools/Vec3.cpp
@@ -7,6 +7,8 @@ Vec3::Vec3(std::array<float, 3> const& arr) : arr(arr) {
 }
 Vec3::Vec3(float x, float y, float z) : arr(std::array<float, 3>({x, y, z})) {
 }
+Vec3::Vec3(float xyz) : arr(std::array<float, 3>({xyz, xyz, xyz})) {
+}
 Vec3::Vec3() : arr(std::array<float, 3>({})) {
 }
 // Operator
diff --git a/RayTracer/tools/Vec3.h b/RayTracer/tools/Vec3.h
index 97c999e27370a202d7ff19159bfc1e298f31a4da..4653f12d9778407685de96f842261db63c8b240a 100644
--- a/RayTracer/tools/Vec3.h
+++ b/RayTracer/tools/Vec3.h
@@ -10,6 +10,7 @@ class Vec3 {
 	// Constructor
 	Vec3(std::array<float, 3> const& arr);
 	Vec3(float x, float y, float z);
+	Vec3(float xyz);
 	Vec3();
 	// Operator
 	friend std::ostream& operator<<(std::ostream& os, const util::Vec3& rhs);