146 lines
3.6 KiB
C++
146 lines
3.6 KiB
C++
#include "math.hpp"
|
|
#include <stdexcept> // 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
|