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) {}
 
  141         Vec3 operator/( 
float f )
 const 
  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
 
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
 
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
 
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