#include #include "vector.hpp" namespace scripting { vector::vector(const float* value) { for (auto i = 0; i < 3; ++i) { this->value_[i] = value[i]; } } vector::vector(const game::vec3_t& value) : vector(&value[0]) { } vector::vector(const float x, const float y, const float z) { this->value_[0] = x; this->value_[1] = y; this->value_[2] = z; } vector::operator game::vec3_t&() { return this->value_; } vector::operator const game::vec3_t&() const { return this->value_; } game::vec_t& vector::operator[](const size_t i) { if (i >= 3) { throw std::runtime_error("Out of bounds."); } return this->value_[i]; } const game::vec_t& vector::operator[](const size_t i) const { if (i >= 3) { throw std::runtime_error("Out of bounds."); } return this->value_[i]; } float vector::get_x() const { return this->operator[](0); } float vector::get_y() const { return this->operator[](1); } float vector::get_z() const { return this->operator[](2); } void vector::set_x(const float value) { this->operator[](0) = value; } void vector::set_y(const float value) { this->operator[](1) = value; } void vector::set_z(const float value) { this->operator[](2) = value; } }