BNM 2.4.0
 
Loading...
Searching...
No Matches
BNM::Structures::Unity::Vector3 Struct Reference

Public Member Functions

constexpr Vector3 (float x, float y, float z)
 
 operator Vector2 & ()
 
 operator Vector2 () const
 
float * GetPtr ()
 
const float * GetPtr () const
 
float & operator[] (int i)
 
const float & operator[] (int i) const
 
void Normalize ()
 
void Scale (Vector3 scale)
 
std::string str ()
 
Vector3 orthogonal () const
 
float magnitude () const
 
Vector3 normalized () const
 
float sqrMagnitude () const
 
Vector3 normalizedEuler (bool is180=true) const
 
bool operator== (Vector3 v) const
 
bool operator!= (Vector3 v) const
 
Vector3operator+= (Vector3 inV)
 
Vector3operator-= (Vector3 inV)
 
Vector3operator*= (float s)
 
Vector3operator/= (float s)
 
Vector3operator/= (Vector3 inV)
 
Vector3 operator- () const
 

Static Public Member Functions

static float Angle (Vector3 from, Vector3 to)
 
static float AngleBetween (Vector3 from, Vector3 to)
 
static Vector3 ClampMagnitude (Vector3 vector, float maxLength)
 
static Vector3 Cross (Vector3 lhs, Vector3 rhs)
 
static float Component (Vector3 a, Vector3 b)
 
static float Distance (Vector3 a, Vector3 b)
 
static float Dot (Vector3 lhs, Vector3 rhs)
 
static Vector3 FromSpherical (float rad, float theta, float phi)
 
static Vector3 FromString (const std::string &str)
 
static Vector3 Lerp (Vector3 from, Vector3 to, float t)
 
static Vector3 LerpUnclamped (Vector3 from, Vector3 to, float t)
 
static float Magnitude (Vector3 vector)
 
static Vector3 Max (Vector3 lhs, Vector3 rhs)
 
static Vector3 Min (Vector3 lhs, Vector3 rhs)
 
static Vector3 MoveTowards (Vector3 current, Vector3 target, float maxDistanceDelta)
 
static float NormalizeAngle (float f, bool is180=true)
 
static Vector3 NormalizeEuler (Vector3 vector, bool is180=true)
 
static Vector3 Normalize (Vector3 value)
 
static Vector3 Orthogonal (Vector3 vector)
 
static void OrthoNormalize (Vector3 &normal, Vector3 &tangent)
 
static void OrthoNormalize (Vector3 &normal, Vector3 &tangent, Vector3 &binormal)
 
static void OrthoNormalizeFast (Vector3 &normal, Vector3 &tangent, Vector3 &binormal)
 
static Vector3 OrthoNormalVectorFast (const Vector3 &n)
 
static Vector3 Project (Vector3 a, Vector3 b)
 
static Vector3 ProjectOnPlane (Vector3 vector, Vector3 planeNormal)
 
static Vector3 Reflect (Vector3 inDirection, Vector3 inNormal)
 
static Vector3 RotateTowards (Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta)
 
static Vector3 Scale (Vector3 a, Vector3 b)
 
static float SignedAngle (Vector3 from, Vector3 to, Vector3 axis)
 
static Vector3 Slerp (Vector3 a, Vector3 b, float t)
 
static Vector3 SlerpUnclamped (Vector3 a, Vector3 b, float t)
 
static Vector3 SmoothDamp (Vector3 current, Vector3 target, Vector3 &currentVelocity, float smoothTime, float maxSpeed, float deltaTime)
 
static float SqrMagnitude (Vector3 vector)
 
static void ToSpherical (Vector3 vector, float &rad, float &theta, float &phi)
 

Public Attributes

union { 
 
   struct { 
 
      float   x 
 
      float   y 
 
      float   z 
 
   }  
 
   float   data [3] {0.f, 0.f, 0.f} 
 
};  
 

Static Public Attributes

static constexpr const float kEpsilon = 1E-05f
 
static constexpr const float kEpsilonNormalSqrt = 1E-15f
 
static const Vector3 positiveInfinity
 
static const Vector3 negativeInfinity
 
static const Vector3 back
 
static const Vector3 down
 
static const Vector3 forward
 
static const Vector3 left
 
static const Vector3 one
 
static const Vector3 right
 
static const Vector3 up
 
static const Vector3 zero
 

Friends

Vector3 operator+ (Vector3 lhs, Vector3 rhs)
 
Vector3 operator- (Vector3 lhs, Vector3 rhs)
 
Vector3 operator* (Vector3 v, float s)
 
Vector3 operator* (float s, Vector3 v)
 
Vector3 operator* (Vector3 lhs, Vector3 rhs)
 
Vector3 operator/ (Vector3 v, float s)
 
Vector3 operator/ (Vector3 lhs, Vector3 rhs)