StevEngine
StevEngine is a customizable C++ game engine.
|
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. | |
Vector3 & | Normalize () |
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. | |
Vector3 & | operator+= (const Vector3 &other) |
Add-assign. | |
Vector3 & | operator-= (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. | |
Vector3 & | operator= (const JPH::Vec3 &other) |
Assign from Jolt float vector. | |
Vector3 & | operator= (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. | |
Vector3 & | operator= (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) | |
3D vector class
Represents a point or direction in 3D space. Provides common vector operations and utilities.
StevEngine::Utilities::Vector3::Vector3 | ( | double | x, |
double | y, | ||
double | z ) |
Create vector from components.
x | X component |
y | Y component |
z | Z component |
StevEngine::Utilities::Vector3::Vector3 | ( | const Vector3 & | from | ) |
Copy constructor.
from | Vector to copy |
StevEngine::Utilities::Vector3::Vector3 | ( | double | v | ) |
Create vector with all components equal.
v | Value for all components |
|
static |
Combine scale vectors by multiplication.
a | First scale |
b | Second scale |
Calculate cross product.
a | First vector |
b | Second vector |
Calculate distance between vectors.
a | First vector |
b | Second vector |
Calculate dot product.
a | First vector |
b | Second vector |
|
static |
Spherical interpolation between vectors.
a | Start vector |
b | End vector |
t | Interpolation factor (0-1) |