30 #ifndef MCL_3DL_VEC3_H 31 #define MCL_3DL_VEC3_H 41 Vec3(
const float x,
const float y,
const float z)
89 return x_ == q.
x_ && y_ == q.
y_ && z_ == q.
z_;
105 return Vec3(-x_, -y_, -z_);
109 return Vec3(x_ * s, y_ * s, z_ * s);
113 return Vec3(x_ / s, y_ / s, z_ / s);
137 return x_ * q.
x_ + y_ * q.
y_ + z_ * q.
z_;
142 z_ * q.
x_ - x_ * q.
z_,
143 x_ * q.
y_ - y_ * q.
x_);
151 return sqrtf(
dot(*
this));
155 return *
this /
norm();
160 #endif // MCL_3DL_VEC3_H
Vec3 & operator+=(const Vec3 &q)
Vec3(const float x, const float y, const float z)
float dot(const Vec3 &q) const
bool operator!=(const Vec3 &q) const
Vec3 times(const Vec3 &q) const
Vec3 operator/(const float &s) const
Vec3 cross(const Vec3 &q) const
Vec3 & operator*=(const float &s)
float operator[](const size_t i) const
bool operator==(const Vec3 &q) const
float & operator[](const size_t i)
Vec3 operator-(const Vec3 &q) const
Vec3 & operator-=(const Vec3 &q)
Vec3 & operator/=(const float &s)
Vec3 operator+(const Vec3 &q) const
Vec3 operator*(const float &s) const