19#define SCL_VEC_XYZ(v) SCL_VEC_XY(v), (v).GetZ()
28 template<
typename T>
friend class matr4;
32 T X { 0 },
Y { 0 },
Z { 0 };
159 return X *
X +
Y *
Y +
Z *
Z;
181 return (*
this - Other).Length();
215 return X * Other.
X +
Y * Other.
Y +
Z * Other.
Z;
226 return vec3(
Y * Other.
Z - Other.
Y *
Z,
227 Z * Other.
X - Other.
Z *
X,
228 X * Other.
Y - Other.
X *
Y);
240 return X == Other.
X &&
Y == Other.
Y &&
Z == Other.
Z;
262 return vec3(
X + Other.
X,
Y + Other.
Y,
Z + Other.
Z);
287 return vec3(
X + Scalar,
314 return vec3(
X - Other.
X,
Y - Other.
Y,
Z - Other.
Z);
339 return vec3(
X - Scalar,
366 return vec3(
X * Other.
X,
Y * Other.
Y,
Z * Other.
Z);
391 return vec3(
X * Scalar,
418 return vec3(
X / Other.
X,
Y / Other.
Y,
Z / Other.
Z);
443 return vec3(
X / Scalar,
const vec3 operator/(float Scalar) const
const vec3 & operator*=(const vec3 &Other)
T Distacnce(const vec3 &Other) const
const vec3 operator-(float Scalar) const
vec3 & operator=(const vec3 &Other)
T Dot(const vec3 &Other) const
const vec3 & operator+=(const vec3 &Other)
T & operator[](int Index)
static vec3 Max(const vec3 &A, const vec3 &B)
const vec3 operator*(const vec3 &Other) const
const vec3 operator-(const vec3 &Other) const
static vec3 Rnd(T Min=0, T Max=1)
const vec3 & operator-=(const vec3 &Other)
const vec3 operator*(float Scalar) const
const vec3 operator+(float Scalar) const
const vec3 operator+(const vec3 &Other) const
const vec3 operator-() const
bool operator==(const vec3 &Other) const
const vec3 & operator+=(float Scalar)
const vec3 & operator/=(float Scalar)
vec3 Cross(const vec3 &Other) const
const vec3 & operator-=(float Scalar)
const vec3 operator/(const vec3 &Other) const
const vec3 & operator*=(float Scalar)
const vec3 & operator/=(const vec3 &Other)
static vec3 Min(const vec3 &A, const vec3 &B)