Utility template class for manipulating 3-dimensional vectors. More...
#include <D:/private/SFML/SFML/include/SFML/System/Vector3.hpp>
Public Member Functions | |
| constexpr | Vector3 ()=default |
| Default constructor. | |
| constexpr | Vector3 (T x, T y, T z) |
| Construct the vector from its coordinates. | |
| template<typename U> | |
| constexpr | operator Vector3< U > () const |
| Converts the vector to another type of vector. | |
| T | length () const |
| Length of the vector (floating-point). | |
| constexpr T | lengthSquared () const |
| Square of vector's length. | |
| Vector3 | normalized () const |
| Vector with same direction but length 1 (floating-point). | |
| constexpr T | dot (const Vector3 &rhs) const |
| Dot product of two 3D vectors. | |
| constexpr Vector3 | cross (const Vector3 &rhs) const |
| Cross product of two 3D vectors. | |
| constexpr Vector3 | componentWiseMul (const Vector3 &rhs) const |
| Component-wise multiplication of *this and rhs. | |
| constexpr Vector3 | componentWiseDiv (const Vector3 &rhs) const |
| Component-wise division of *this and rhs. | |
Public Attributes | |
| T | x {} |
| X coordinate of the vector. | |
| T | y {} |
| Y coordinate of the vector. | |
| T | z {} |
| Z coordinate of the vector. | |
Related Symbols | |
(Note that these are not member symbols.) | |
| template<typename T> | |
| constexpr Vector3< T > | operator- (const Vector3< T > &left) |
| Overload of unary operator-. | |
| template<typename T> | |
| constexpr Vector3< T > & | operator+= (Vector3< T > &left, const Vector3< T > &right) |
| Overload of binary operator+=. | |
| template<typename T> | |
| constexpr Vector3< T > & | operator-= (Vector3< T > &left, const Vector3< T > &right) |
| Overload of binary operator-=. | |
| template<typename T> | |
| constexpr Vector3< T > | operator+ (const Vector3< T > &left, const Vector3< T > &right) |
| Overload of binary operator+. | |
| template<typename T> | |
| constexpr Vector3< T > | operator- (const Vector3< T > &left, const Vector3< T > &right) |
| Overload of binary operator-. | |
| template<typename T> | |
| constexpr Vector3< T > | operator* (const Vector3< T > &left, T right) |
| Overload of binary operator*. | |
| template<typename T> | |
| constexpr Vector3< T > | operator* (T left, const Vector3< T > &right) |
| Overload of binary operator*. | |
| template<typename T> | |
| constexpr Vector3< T > & | operator*= (Vector3< T > &left, T right) |
| Overload of binary operator*=. | |
| template<typename T> | |
| constexpr Vector3< T > | operator/ (const Vector3< T > &left, T right) |
| Overload of binary operator/. | |
| template<typename T> | |
| constexpr Vector3< T > & | operator/= (Vector3< T > &left, T right) |
| Overload of binary operator/=. | |
| template<typename T> | |
| constexpr bool | operator== (const Vector3< T > &left, const Vector3< T > &right) |
| Overload of binary operator==. | |
| template<typename T> | |
| constexpr bool | operator!= (const Vector3< T > &left, const Vector3< T > &right) |
| Overload of binary operator!=. | |
Detailed Description
class sf::Vector3< T >
Utility template class for manipulating 3-dimensional vectors.
sf::Vector3 is a simple class that defines a mathematical vector with three coordinates (x, y and z).
It can be used to represent anything that has three dimensions: a size, a point, a velocity, etc.
The template parameter T is the type of the coordinates. It can be any type that supports arithmetic operations (+, -, /, *) and comparisons (==, !=), for example int or float. Note that some operations are only meaningful for vectors where T is a floating point type (e.g. float or double), often because results cannot be represented accurately with integers. The method documentation mentions "(floating-point)" in those cases.
You generally don't have to care about the templated form (sf::Vector3<T>), the most common specializations have special type aliases:
- sf::Vector3<float> is sf::Vector3f
- sf::Vector3<int> is sf::Vector3i
The sf::Vector3 class has a small and simple interface, its x, y and z members can be accessed directly (there are no accessors like setX(), getX()).
Usage example:
Note: for 2-dimensional vectors, see sf::Vector2.
Definition at line 40 of file Vector3.hpp.
Constructor & Destructor Documentation
◆ Vector3() [1/2]
|
constexprdefault |
Default constructor.
Creates a Vector3(0, 0, 0).
◆ Vector3() [2/2]
|
constexpr |
Member Function Documentation
◆ componentWiseDiv()
|
nodiscardconstexpr |
◆ componentWiseMul()
|
nodiscardconstexpr |
◆ cross()
|
nodiscardconstexpr |
Cross product of two 3D vectors.
◆ dot()
|
nodiscardconstexpr |
Dot product of two 3D vectors.
◆ length()
|
nodiscard |
Length of the vector (floating-point).
If you are not interested in the actual length, but only in comparisons, consider using lengthSquared().
◆ lengthSquared()
|
nodiscardconstexpr |
Square of vector's length.
Suitable for comparisons, more efficient than length().
◆ normalized()
|
nodiscard |
Vector with same direction but length 1 (floating-point).
- Precondition
- *this is no zero vector.
◆ operator Vector3< U >()
|
explicitconstexpr |
Converts the vector to another type of vector.
Friends And Related Symbol Documentation
◆ operator!=()
Overload of binary operator!=.
This operator compares strict difference between two vectors.
- Parameters
-
left Left operand (a vector) right Right operand (a vector)
- Returns
- true if left is not equal to right
◆ operator*() [1/2]
Overload of binary operator*.
- Parameters
-
left Left operand (a vector) right Right operand (a scalar value)
- Returns
- Member-wise multiplication by right
◆ operator*() [2/2]
Overload of binary operator*.
- Parameters
-
left Left operand (a scalar value) right Right operand (a vector)
- Returns
- Member-wise multiplication by left
◆ operator*=()
Overload of binary operator*=.
This operator performs a member-wise multiplication by right, and assigns the result to left.
- Parameters
-
left Left operand (a vector) right Right operand (a scalar value)
- Returns
- Reference to left
◆ operator+()
|
Overload of binary operator+.
- Parameters
-
left Left operand (a vector) right Right operand (a vector)
- Returns
- Member-wise addition of both vectors
◆ operator+=()
Overload of binary operator+=.
This operator performs a member-wise addition of both vectors, and assigns the result to left.
- Parameters
-
left Left operand (a vector) right Right operand (a vector)
- Returns
- Reference to left
◆ operator-() [1/2]
Overload of unary operator-.
- Parameters
-
left Vector to negate
- Returns
- Member-wise opposite of the vector
◆ operator-() [2/2]
|
Overload of binary operator-.
- Parameters
-
left Left operand (a vector) right Right operand (a vector)
- Returns
- Member-wise subtraction of both vectors
◆ operator-=()
Overload of binary operator-=.
This operator performs a member-wise subtraction of both vectors, and assigns the result to left.
- Parameters
-
left Left operand (a vector) right Right operand (a vector)
- Returns
- Reference to left
◆ operator/()
Overload of binary operator/.
- Parameters
-
left Left operand (a vector) right Right operand (a scalar value)
- Returns
- Member-wise division by right
◆ operator/=()
Overload of binary operator/=.
This operator performs a member-wise division by right, and assigns the result to left.
- Parameters
-
left Left operand (a vector) right Right operand (a scalar value)
- Returns
- Reference to left
◆ operator==()
Overload of binary operator==.
This operator compares strict equality between two vectors.
- Parameters
-
left Left operand (a vector) right Right operand (a vector)
- Returns
- true if left is equal to right
Member Data Documentation
◆ x
| T sf::Vector3< T >::x {} |
X coordinate of the vector.
Definition at line 130 of file Vector3.hpp.
◆ y
| T sf::Vector3< T >::y {} |
Y coordinate of the vector.
Definition at line 131 of file Vector3.hpp.
◆ z
| T sf::Vector3< T >::z {} |
Z coordinate of the vector.
Definition at line 132 of file Vector3.hpp.
The documentation for this class was generated from the following file: