30             return Vec3( v1.
y * v2.
z - v1.
z * v2.
y,
    31                          v1.
z * v2.
x - v1.
x * v2.
z,
    32                          v1.
x * v2.
y - v1.
y * v2.
x );
    46             return Vec3( v1.
x < v2.
x ? v1.
x : v2.
x,
    47                          v1.
y < v2.
y ? v1.
y : v2.
y,
    48                          v1.
z < v2.
z ? v1.
z : v2.
z );
    61             return Vec3( v1.
x > v2.
x ? v1.
x : v2.
x,
    62                          v1.
y > v2.
y ? v1.
y : v2.
y,
    63                          v1.
z > v2.
z ? v1.
z : v2.
z );
    76             return (v2 - v1).Length();
    89             const Vec3 sub = v2 - v1;
    90             return sub.
x * sub.
x + sub.
y * sub.
y + sub.
z * sub.
z;
   102             return v1.
x * v2.
x + v1.
y * v2.
y + v1.
z * v2.
z;
   118         Vec3( 
Vec3&& v ) noexcept = 
default;
   121         Vec3( 
const Vec3& other ) noexcept = 
default;
   130         Vec3( 
float ax, 
float ay, 
float az ) noexcept : 
x(ax), 
y(ay), 
z(az) {}
   143             const float inv = 1.0f / f;
   144             return Vec3(x * inv, y * inv, z * inv);
   155             return Vec3( x / v.
x, y / v.
y, z / v.
z );
   165             return Vec3( -x, -y, -z );
   176             return Vec3( x - v.
x, y - v.
y, z - v.
z );
   187             return Vec3( x + v.
x, y + v.
y, z + v.
z );
   198             return Vec3( x + f, y + f, z + f );
   254             const float inv = 1.0f / f;
   294             return Vec3( x * v.
x, y * v.
y, z * v.
z );
   305             return Vec3( x * f, y * f, z * f );
   317             const float len = 
Length();
   319             if( std::abs( len ) < 0.0001f )
   337             const float epsilon = 0.0001f;
   338             return std::abs( x - v2.
x ) < epsilon &&
   339             std::abs( y - v2.
y ) < epsilon &&
   340             std::abs( z - v2.
z ) < epsilon;
   344         float Length()
 const { 
return std::sqrt( x * x + y * y + z * z ); }
   372         Vec4( 
float ax, 
float ay, 
float az, 
float aw ) : x( ax ), y( ay ), z( az ), w( aw ) {}
   375         Vec4( 
Vec4&& v ) noexcept = 
default;
   378         Vec4( 
const Vec4& other ) noexcept = 
default;
   381         explicit Vec4(
const Vec3& v) : x(v.x), y(v.y), z(v.z), w(1) {}
   389         Vec4( 
const Vec3& v, 
float aW ) : x( v.x ), y( v.y ), z( v.z ), w(aW) {}
   396             const float epsilon = 0.0001f;
   397             return std::abs( x - v2.
x ) < epsilon &&
   398                    std::abs( y - v2.
y ) < epsilon &&
   399                    std::abs( z - v2.
z ) < epsilon &&
   400                    std::abs( w - v2.
w ) < epsilon;
   419             return Vec4(x * f, y * f, z * f, w * f);
   458             return x * v.
x + y * v.
y + z * v.
z + w * v.
w;
   462         float Length()
 const { 
return std::sqrt( x * x + y * y + z * z ); }
   469             const float len = 
Length();
   471             if (std::abs( len ) < 0.0001f)
   479             const float iLength = 1 / len;
 Vec3 & operator+=(const Vec3 &v)
Definition: Vec3.hpp:222
 
static Vec3 Reflect(const Vec3 &vec, const Vec3 &normal)
Definition: Vec3.hpp:112
 
float w
W coordinate. 
Definition: Vec3.hpp:360
 
Vec3(float ax, float ay, float az) noexcept
Definition: Vec3.hpp:130
 
Vec4 operator*(float f) const 
Definition: Vec3.hpp:417
 
float x
X coordinate. 
Definition: Vec3.hpp:15
 
Vec3 operator+(float f) const 
Definition: Vec3.hpp:196
 
static float DistanceSquared(const Vec3 &v1, const Vec3 &v2)
Definition: Vec3.hpp:87
 
Vec3 operator/(float f) const 
Definition: Vec3.hpp:141
 
Definition: AudioClip.hpp:4
 
static Vec3 Min2(const Vec3 &v1, const Vec3 &v2)
Definition: Vec3.hpp:44
 
4-component vector. 
Definition: Vec3.hpp:351
 
Vec3 & operator=(const Vec3 &v)
Definition: Vec3.hpp:284
 
Vec3 operator*(const Vec3 &v) const 
Definition: Vec3.hpp:292
 
float x
X coordinate. 
Definition: Vec3.hpp:354
 
static Vec3 Max2(const Vec3 &v1, const Vec3 &v2)
Definition: Vec3.hpp:59
 
Vec3 operator+(const Vec3 &v) const 
Definition: Vec3.hpp:185
 
float Dot(const Vec4 &v) const 
Definition: Vec3.hpp:456
 
Vec3 & operator*=(float f)
Definition: Vec3.hpp:237
 
Vec3 & operator*=(const Vec3 &v)
Definition: Vec3.hpp:269
 
float y
Y coordinate. 
Definition: Vec3.hpp:356
 
float Length() const 
Definition: Vec3.hpp:462
 
static float Distance(const Vec3 &v1, const Vec3 &v2)
Definition: Vec3.hpp:74
 
3-component vector. 
Definition: Vec3.hpp:12
 
Vec3 operator*(float f) const 
Definition: Vec3.hpp:303
 
Vec3 & operator/=(float f)
Definition: Vec3.hpp:252
 
Vec3 operator-(const Vec3 &v) const 
Definition: Vec3.hpp:174
 
Vec4 & operator-=(const Vec4 &v)
Definition: Vec3.hpp:441
 
float z
Z coordinate. 
Definition: Vec3.hpp:19
 
Vec4(const Vec3 &v, float aW)
Definition: Vec3.hpp:389
 
static Vec3 Cross(const Vec3 &v1, const Vec3 &v2)
Cross product. 
Definition: Vec3.hpp:28
 
Vec3 operator/(const Vec3 &v) const 
Definition: Vec3.hpp:153
 
Vec3 & operator-=(const Vec3 &v)
Definition: Vec3.hpp:207
 
Vec3 operator-() const 
Definition: Vec3.hpp:163
 
Vec4(const Vec3 &v)
Definition: Vec3.hpp:381
 
bool IsAlmost(const Vec3 &v2) const 
Definition: Vec3.hpp:335
 
Vec4(float ax, float ay, float az, float aw)
Definition: Vec3.hpp:372
 
Vec4 & operator=(const Vec4 &v)
Definition: Vec3.hpp:409
 
static float Dot(const Vec3 &v1, const Vec3 &v2)
Definition: Vec3.hpp:100
 
Vec4 & operator+=(const Vec4 &v)
Definition: Vec3.hpp:427
 
void Normalize()
Definition: Vec3.hpp:467
 
Vec3 & operator=(Vec3 &&) noexcept=default
Move assignment. 
 
Vec3 Normalized() const 
Definition: Vec3.hpp:311
 
float y
Y coordinate. 
Definition: Vec3.hpp:17
 
float Length() const 
Definition: Vec3.hpp:344
 
bool IsAlmost(const Vec4 &v2) const 
Definition: Vec3.hpp:394
 
float z
Z coordinate. 
Definition: Vec3.hpp:358
 
void Zero()
Resets this vector's values to 0. 
Definition: Vec3.hpp:347