#include "math.hpp" #include // Include for std::out_of_range namespace basalt::shared::math { #pragma region Triangle Index& Triangle::operator[](size_t index) { switch (index) { case 0: return i; case 1: return j; case 2: return k; default: throw std::out_of_range("Triangle index out of range"); } } const Index& Triangle::operator[](size_t index) const { switch (index) { case 0: return i; case 1: return j; case 2: return k; default: throw std::out_of_range("Triangle index out of range"); } } #pragma endregion #pragma region Vector3 FloatPoint& Vector3::operator[](size_t index) { switch (index) { case 0: return x; case 1: return y; case 2: return z; default: throw std::out_of_range("Vector3 index out of range"); } } const FloatPoint& Vector3::operator[](size_t index) const { switch (index) { case 0: return x; case 1: return y; case 2: return z; default: throw std::out_of_range("Vector3 index out of range"); } } #pragma endregion #pragma region Quaternion FloatPoint& Quaternion::operator[](size_t index) { switch (index) { case 0: return x; case 1: return y; case 2: return z; case 3: return w; default: throw std::out_of_range("Quaternion index out of range"); } } const FloatPoint& Quaternion::operator[](size_t index) const { switch (index) { case 0: return x; case 1: return y; case 2: return z; case 3: return w; default: throw std::out_of_range("Quaternion index out of range"); } } #pragma endregion // //#pragma region Vector4 // // FloatPoint& Vector4::operator[](size_t index) { // switch (index) { // case 0: // return x; // case 1: // return y; // case 2: // return z; // case 3: // return w; // default: // throw std::out_of_range("Vector4 index out of range"); // } // } // // const FloatPoint& Vector4::operator[](size_t index) const { // switch (index) { // case 0: // return x; // case 1: // return y; // case 2: // return z; // case 3: // return w; // default: // throw std::out_of_range("Vector4 index out of range"); // } // } // //#pragma endregion // //#pragma region Matrix4x4 // // Vector4& Matrix4x4::operator[](size_t index) { // return data.at(index); // } // // const Vector4& Matrix4x4::operator[](size_t index) const { // return data.at(index); // } // //#pragma endregion } // namespace basalt::shared::math