ASW Lib
A.D.S. Games SDL Wrapper Library. A library targeted at Allegro4 users who want to switch to SDL3 and use modern c++.
Loading...
Searching...
No Matches
asw::Vec3< T > Class Template Reference

A 3D vector in space. More...

#include <geometry.h>

Public Member Functions

 Vec3 ()
 Default constructor for the Vec3 class.
 
 Vec3 (T x, T y, T z)
 Constructor for the Vec3 class.
 
angle (const Vec3 &other) const
 Get angle between two vectors (in 3D space).
 
distance (const Vec3 &other) const
 Get distance between two vectors.
 
dot (const Vec3 &other) const
 Calculate the dot product of two vectors.
 
Vec3 cross (const Vec3 &other) const
 Calculate the cross product of two vectors.
 
magnitude () const
 Calculate the magnitude of the vector.
 
Vec3 operator+ (const Vec3 &other) const
 Addition operator for the Vec3 class.
 
Vec3 operator- (const Vec3 &other) const
 Subtraction operator for the Vec3 class.
 
Vec3 operator* (const T scalar) const
 Multiplication operator for the Vec3 class.
 
Vec3 operator/ (const T scalar) const
 Division operator for the Vec3 class.
 
Vec3operator+= (const Vec3 &other)
 Addition assignment operator for the Vec3 class.
 
Vec3operator-= (const Vec3 &other)
 Subtraction assignment operator for the Vec3 class.
 
Vec3operator*= (const T scalar)
 Multiplication assignment operator for the Vec3 class.
 
Vec3operator/= (const T scalar)
 Division assignment operator for the Vec3 class.
 
bool operator== (const Vec3 &other) const
 Equality operator for the Vec3 class.
 
bool operator!= (const Vec3 &other) const
 Inequality operator for the Vec3 class.
 

Public Attributes

x {0}
 The x component of the vector.
 
y {0}
 The y component of the vector.
 
z {0}
 The z component of the vector.
 

Detailed Description

template<typename T>
class asw::Vec3< T >

A 3D vector in space.

This class represents a 3D vector in space. It is used to represent points, directions, and sizes.

Definition at line 193 of file geometry.h.

Constructor & Destructor Documentation

◆ Vec3() [1/2]

template<typename T >
asw::Vec3< T >::Vec3 ( )
inline

Default constructor for the Vec3 class.

Definition at line 197 of file geometry.h.

◆ Vec3() [2/2]

template<typename T >
asw::Vec3< T >::Vec3 ( T x,
T y,
T z )
inline

Constructor for the Vec3 class.

Parameters
xThe x component of the vector.
yThe y component of the vector.
zThe z component of the vector.

Definition at line 205 of file geometry.h.

Member Function Documentation

◆ angle()

template<typename T >
T asw::Vec3< T >::angle ( const Vec3< T > & other) const
inline

Get angle between two vectors (in 3D space).

Returns
The angle of the vector in radians.

Definition at line 211 of file geometry.h.

◆ cross()

template<typename T >
Vec3 asw::Vec3< T >::cross ( const Vec3< T > & other) const
inline

Calculate the cross product of two vectors.

Parameters
otherThe vector to cross with.
Returns
Vec3 The cross product of the vectors.

Definition at line 241 of file geometry.h.

◆ distance()

template<typename T >
T asw::Vec3< T >::distance ( const Vec3< T > & other) const
inline

Get distance between two vectors.

Returns
The distance between the vectors.

Definition at line 221 of file geometry.h.

◆ dot()

template<typename T >
T asw::Vec3< T >::dot ( const Vec3< T > & other) const
inline

Calculate the dot product of two vectors.

Parameters
otherThe vector to dot with.
Returns
T The dot product of the vectors.

Definition at line 232 of file geometry.h.

◆ magnitude()

template<typename T >
T asw::Vec3< T >::magnitude ( ) const
inline

Calculate the magnitude of the vector.

Returns
T The magnitude of the vector.

Definition at line 250 of file geometry.h.

◆ operator!=()

template<typename T >
bool asw::Vec3< T >::operator!= ( const Vec3< T > & other) const
inline

Inequality operator for the Vec3 class.

Parameters
otherThe vector to compare.
Returns
bool True if the vectors are not equal.

Definition at line 350 of file geometry.h.

◆ operator*()

template<typename T >
Vec3 asw::Vec3< T >::operator* ( const T scalar) const
inline

Multiplication operator for the Vec3 class.

Parameters
scalarThe scalar to multiply by.
Returns
Vec3 The scaled vector.

Definition at line 275 of file geometry.h.

◆ operator*=()

template<typename T >
Vec3 & asw::Vec3< T >::operator*= ( const T scalar)
inline

Multiplication assignment operator for the Vec3 class.

Parameters
scalarThe scalar to multiply by.
Returns
Vec3& The scaled vector.

Definition at line 317 of file geometry.h.

◆ operator+()

template<typename T >
Vec3 asw::Vec3< T >::operator+ ( const Vec3< T > & other) const
inline

Addition operator for the Vec3 class.

Parameters
otherThe vector to add.
Returns
Vec3 The sum of the vectors.

Definition at line 257 of file geometry.h.

◆ operator+=()

template<typename T >
Vec3 & asw::Vec3< T >::operator+= ( const Vec3< T > & other)
inline

Addition assignment operator for the Vec3 class.

Parameters
otherThe vector to add.
Returns
Vec3& The sum of the vectors.

Definition at line 293 of file geometry.h.

◆ operator-()

template<typename T >
Vec3 asw::Vec3< T >::operator- ( const Vec3< T > & other) const
inline

Subtraction operator for the Vec3 class.

Parameters
otherThe vector to subtract.
Returns
Vec3 The difference of the vectors.

Definition at line 266 of file geometry.h.

◆ operator-=()

template<typename T >
Vec3 & asw::Vec3< T >::operator-= ( const Vec3< T > & other)
inline

Subtraction assignment operator for the Vec3 class.

Parameters
otherThe vector to subtract.
Returns
Vec3& The difference of the vectors.

Definition at line 305 of file geometry.h.

◆ operator/()

template<typename T >
Vec3 asw::Vec3< T >::operator/ ( const T scalar) const
inline

Division operator for the Vec3 class.

Parameters
scalarThe scalar to divide by.
Returns
Vec3 The scaled vector.

Definition at line 284 of file geometry.h.

◆ operator/=()

template<typename T >
Vec3 & asw::Vec3< T >::operator/= ( const T scalar)
inline

Division assignment operator for the Vec3 class.

Parameters
scalarThe scalar to divide by.
Returns
Vec3& The scaled vector.

Definition at line 329 of file geometry.h.

◆ operator==()

template<typename T >
bool asw::Vec3< T >::operator== ( const Vec3< T > & other) const
inline

Equality operator for the Vec3 class.

Parameters
otherThe vector to compare.
Returns
bool True if the vectors are equal.

Definition at line 341 of file geometry.h.

Member Data Documentation

◆ x

template<typename T >
T asw::Vec3< T >::x {0}

The x component of the vector.

Definition at line 355 of file geometry.h.

◆ y

template<typename T >
T asw::Vec3< T >::y {0}

The y component of the vector.

Definition at line 358 of file geometry.h.

◆ z

template<typename T >
T asw::Vec3< T >::z {0}

The z component of the vector.

Definition at line 361 of file geometry.h.


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