StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
StevEngine::Utilities::Vector3 Class Reference

3D vector class More...

#include <utilities/Vector3.hpp>

Public Member Functions

 Vector3 (double x, double y, double z)
 Create vector from components.
 
 Vector3 (const Vector3 &from)
 Copy constructor.
 
 Vector3 (double v)
 Create vector with all components equal.
 
 Vector3 ()
 Create zero vector.
 
Vector3 Get () const
 Get copy of this vector.
 
double Magnitude () const
 Get vector length.
 
Vector3Normalize ()
 Normalize this vector.
 
Vector3 Normalized () const
 Get normalized copy.
 
Vector3 operator+ (const Vector3 &other) const
 Addition.
 
Vector3 operator- (const Vector3 &other) const
 Subtraction.
 
Vector3 operator- () const
 Negation.
 
Vector3operator+= (const Vector3 &other)
 Add-assign.
 
Vector3operator-= (const Vector3 &other)
 Subtract-assign.
 
Vector3 operator* (const double &other) const
 Scalar multiplication.
 
Vector3 operator/ (const double &other) const
 Scalar division.
 
bool operator== (const Vector3 &other) const
 Equality comparison.
 
 operator Vector2 () const
 Convert to Vector2.
 
 operator std::string () const
 Convert to string.
 
const float * data () const
 Get raw float array.
 
 operator JPH::DVec3 () const
 Convert to Jolt double vector.
 
 operator JPH::Vec3 () const
 Convert to Jolt float vector.
 
Vector3operator= (const JPH::Vec3 &other)
 Assign from Jolt float vector.
 
Vector3operator= (const JPH::DVec3 &other)
 Assign from Jolt double vector.
 
 Vector3 (const JPH::Vec3 &other)
 Create from Jolt float vector.
 
 Vector3 (const JPH::DVec3 &other)
 Create from Jolt double vector.
 
 operator aiVector3D () const
 Convert to Assimp vector.
 
Vector3operator= (const aiVector3D &other)
 Assign from Assimp vector.
 
 Vector3 (const aiVector3D &other)
 Create from Assimp vector.
 

Static Public Member Functions

static double Distance (const Vector3 &a, const Vector3 &b)
 Calculate distance between vectors.
 
static Vector3 Cross (const Vector3 &a, const Vector3 &b)
 Calculate cross product.
 
static double Dot (const Vector3 &a, const Vector3 &b)
 Calculate dot product.
 
static Vector3 CombineScale (const Vector3 &a, const Vector3 &b)
 Combine scale vectors by multiplication.
 
static Vector3 Slerp (const Vector3 &a, const Vector3 &b, double t)
 Spherical interpolation between vectors.
 

Public Attributes

double X
 
double Y
 
double Z
 Vector components.
 

Static Public Attributes

static const Vector3 up = Vector3(0,1,0)
 Up vector (0,1,0)
 
static const Vector3 right = Vector3(1,0,0)
 Right vector (1,0,0)
 
static const Vector3 forward = Vector3(0,0,-1)
 Forward vector (0,0,-1)
 
static const Vector3 identity = Vector3(1.0)
 One vector (1,1,1)
 
static const Vector3 zero = Vector3(0.0)
 Zero vector (0,0,0)
 

Detailed Description

3D vector class

Represents a point or direction in 3D space. Provides common vector operations and utilities.

Constructor & Destructor Documentation

◆ Vector3() [1/3]

StevEngine::Utilities::Vector3::Vector3 ( double x,
double y,
double z )

Create vector from components.

Parameters
xX component
yY component
zZ component

◆ Vector3() [2/3]

StevEngine::Utilities::Vector3::Vector3 ( const Vector3 & from)

Copy constructor.

Parameters
fromVector to copy

◆ Vector3() [3/3]

StevEngine::Utilities::Vector3::Vector3 ( double v)

Create vector with all components equal.

Parameters
vValue for all components

Member Function Documentation

◆ CombineScale()

Vector3 StevEngine::Utilities::Vector3::CombineScale ( const Vector3 & a,
const Vector3 & b )
static

Combine scale vectors by multiplication.

Parameters
aFirst scale
bSecond scale
Returns
Combined scale

◆ Cross()

Vector3 StevEngine::Utilities::Vector3::Cross ( const Vector3 & a,
const Vector3 & b )
static

Calculate cross product.

Parameters
aFirst vector
bSecond vector
Returns
Cross product vector

◆ Distance()

double StevEngine::Utilities::Vector3::Distance ( const Vector3 & a,
const Vector3 & b )
static

Calculate distance between vectors.

Parameters
aFirst vector
bSecond vector
Returns
Distance between points

◆ Dot()

double StevEngine::Utilities::Vector3::Dot ( const Vector3 & a,
const Vector3 & b )
static

Calculate dot product.

Parameters
aFirst vector
bSecond vector
Returns
Dot product

◆ Slerp()

Vector3 StevEngine::Utilities::Vector3::Slerp ( const Vector3 & a,
const Vector3 & b,
double t )
static

Spherical interpolation between vectors.

Parameters
aStart vector
bEnd vector
tInterpolation factor (0-1)
Returns
Interpolated vector

The documentation for this class was generated from the following files: