3#ifndef _USE_MATH_DEFINES
4#define _USE_MATH_DEFINES
39 for (
unsigned int i = 0; i < 3; ++i)
45 explicit Vec3f(
const float v[3])
53 for (
int i = 0; i < 3; i++)
83 operator const float*()
const
106 float s = vec[0] * v.vec[0];
107 for (
int i = 1; i < 3; i++)
109 s += vec[i] * v.vec[i];
117 return vec[0] * v[0] + vec[1] * v[1] + vec[2] * v[2];
123 return Vec3f(vec[1] * v.vec[2] - vec[2] * v.vec[1],
124 vec[2] * v.vec[0] - vec[0] * v.vec[2],
125 vec[0] * v.vec[1] - vec[1] * v.vec[0]);
137 return (
float)std::sqrt(
dot(*
this));
154 return ((*
this - v).
sqrLength() <= tolerance);
160 for (
int i = 0; i < 3; i++)
161 if (v1.vec[i] != v2.vec[i])
171 for (
int i = 0; i < 3; i++)
172 if (v1.vec[i] >= v2.vec[i])
182 for (
int i = 0; i < 3; i++)
183 if (v1.vec[i] > v2.vec[i])
193 for (
int i = 0; i < 3; i++)
194 if (v1.vec[i] <= v2.vec[i])
204 for (
int i = 0; i < 3; i++)
205 if (v1.vec[i] < v2.vec[i])
221 for (
int i = 0; i < 3; i++)
231 for (
int i = 0; i < 3; i++)
241 for (
int i = 0; i < 3; i++)
251 for (
int i = 0; i < 3; i++)
261 for (
int i = 0; i < 3; i++)
270 return Vec3f(v) *= s;
276 return Vec3f(v) *= s;
282 return Vec3f(v) /= s;
288 return Vec3f(v1) += v2;
294 return Vec3f(v1) -= v2;
308 return Vec3f(vec[0] * v.vec[0], vec[1] * v.vec[1], vec[2] * v.vec[2]);
316 for (
int i = 0; i < 3; i++)
318 vec[i] = (
float)v[i];
326 for (
int i = 0; i < 3; i++)
Vec3f & setValue(const float v[3])
Vec3f & operator-=(const Vec3f &v)
Vec3f & setValue(float x, float y, float z)
Vec3f & operator/=(float s)
bool equals(const Vec3f &v, float tolerance) const
friend Vec3f operator*(float s, const Vec3f &v)
Vec3f(const GfxTL::Vector3Df &v)
friend Vec3f operator-(const Vec3f &v1)
friend bool operator!=(const Vec3f &v1, const Vec3f &v2)
Vec3f(float x, float y, float z)
friend Vec3f operator/(const Vec3f &v, float s)
friend bool operator>(const Vec3f &v1, const Vec3f &v2)
const float * getValue() const
Vec3f & setValue(const Vec3f &v)
Vec3f & operator+=(const Vec3f &v)
Vec3f cross(const Vec3f &v) const
friend bool operator>=(const Vec3f &v1, const Vec3f &v2)
friend Vec3f operator+(const Vec3f &v1, const Vec3f &v2)
friend Vec3f operator*(const Vec3f &v, float s)
Vec3f & operator*=(float s)
friend bool operator==(const Vec3f &v1, const Vec3f &v2)
friend bool operator<=(const Vec3f &v1, const Vec3f &v2)
friend Vec3f operator-(const Vec3f &v1, const Vec3f &v2)
friend bool operator<(const Vec3f &v1, const Vec3f &v2)
float dot(const float *v) const
Vec3f operator*(const Vec3f &v) const
float dot(const Vec3f &v) const
void getValue(float &x, float &y, float &z) const
void getValue(Vec3f &v) const
VectorXD< 3, float > Vector3Df
This file offers overloads of toIce() and fromIce() functions for STL container types.
double dot(const Point &x, const Point &y)