86 lines
1.3 KiB
C++
86 lines
1.3 KiB
C++
|
#include <std_include.hpp>
|
||
|
#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;
|
||
|
}
|
||
|
}
|