SFML 2.5.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Public Attributes | Related Functions | List of all members
sf::Vector3< T > Class Template Reference
System module

Utility template class for manipulating 3-dimensional vectors. More...

`#include <Vector3.hpp>`

## Public Member Functions
| Vector3 ()
| Default constructor. More...
| Vector3 (T X, T Y, T Z)
| Construct the vector from its coordinates. More...
template<typename U >
| Vector3 (const Vector3< U > &vector)
| Construct the vector from another type of vector. More...

## Public Attributes
T | x
| X coordinate of the vector. More...
T | y
| Y coordinate of the vector. More...
T | z
| Z coordinate of the vector. More...

## Related Functions
(Note that these are not member functions.)
template<typename T >
Vector3< T > | operator- (const Vector3< T > &left)
| Overload of unary operator -. More...
template<typename T >
Vector3< T > & | operator+= (Vector3< T > &left, const Vector3< T > &right)
| Overload of binary operator +=. More...
template<typename T >
Vector3< T > & | operator-= (Vector3< T > &left, const Vector3< T > &right)
| Overload of binary operator -=. More...
template<typename T >
Vector3< T > | operator+ (const Vector3< T > &left, const Vector3< T > &right)
| Overload of binary operator +. More...
template<typename T >
Vector3< T > | operator- (const Vector3< T > &left, const Vector3< T > &right)
| Overload of binary operator -. More...
template<typename T >
Vector3< T > | operator* (const Vector3< T > &left, T right)
| Overload of binary operator *. More...
template<typename T >
Vector3< T > | operator* (T left, const Vector3< T > &right)
| Overload of binary operator *. More...
template<typename T >
Vector3< T > & | operator*= (Vector3< T > &left, T right)
| Overload of binary operator *=. More...
template<typename T >
Vector3< T > | operator/ (const Vector3< T > &left, T right)
| Overload of binary operator /. More...
template<typename T >
Vector3< T > & | operator/= (Vector3< T > &left, T right)
| Overload of binary operator /=. More...
template<typename T >
bool | operator== (const Vector3< T > &left, const Vector3< T > &right)
| Overload of binary operator ==. More...
template<typename T >
bool | operator!= (const Vector3< T > &left, const Vector3< T > &right)
| Overload of binary operator !=. More...

## Detailed Description

### template<typename T>
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.

You generally don't have to care about the templated form (sf::Vector3<T>), the most common specializations have special typedefs:

- sf::Vector3<float> is sf::Vector3f
- sf::Vector3<int> is sf::Vector3i

The sf::Vector3 class has a small and simple interface, its x and y members can be accessed directly (there are no accessors like setX(), getX()) and it contains no mathematical function like dot product, cross product, length, etc.

Usage example:

sf::Vector3f v1(16.5f, 24.f, -8.2f);
v1.x = 18.2f;
float y = v1.y;
float z = v1.z;
sf::Vector3f v2 = v1 * 5.f;
sf::Vector3f v3;
v3 = v1 + v2;
bool different = (v2 != v3);

Note: for 2-dimensional vectors, see sf::Vector2.

Definition at line 37 of file Vector3.hpp.

## Constructor & Destructor Documentation

## ◆ Vector3() [1/3]

template<typename T>

sf::Vector3< T >::Vector3 | ( |  | ) |

Default constructor.

Creates a Vector3(0, 0, 0).

## ◆ Vector3() [2/3]

template<typename T>

sf::Vector3< T >::Vector3 | ( | T | X,
|  | T | Y,
|  | T | Z
| ) |  |

Construct the vector from its coordinates.

Parameters

  X | X coordinate
  Y | Y coordinate
  Z | Z coordinate

## ◆ Vector3() [3/3]

template<typename T>
template<typename U >

sf::Vector3< T >::Vector3 | ( | const Vector3< U > & | vector | ) |
| explicit

Construct the vector from another type of vector.

This constructor doesn't replace the copy constructor, it's called only when U != T. A call to this constructor will fail to compile if U is not convertible to T.

Parameters

  vector | Vector to convert

## Friends And Related Function Documentation

## ◆ operator!=()

template<typename T >

bool operator!= | ( | const Vector3< T > & | left,
|  | const Vector3< T > & | right
| ) |  |
| related

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]

template<typename T >

Vector3< T > operator* | ( | const Vector3< T > & | left,
|  | T | right
| ) |  |
| related

Overload of binary operator *.

Parameters

  left | Left operand (a vector)
  right | Right operand (a scalar value)

Returns
  Memberwise multiplication by right

## ◆ operator*() [2/2]

template<typename T >

Vector3< T > operator* | ( | T | left,
|  | const Vector3< T > & | right
| ) |  |
| related

Overload of binary operator *.

Parameters

  left | Left operand (a scalar value)
  right | Right operand (a vector)

Returns
  Memberwise multiplication by left

## ◆ operator*=()

template<typename T >

Vector3< T > & operator*= | ( | Vector3< T > & | left,
|  | T | right
| ) |  |
| related

Overload of binary operator *=.

This operator performs a memberwise 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+()

template<typename T >

Vector3< T > operator+ | ( | const Vector3< T > & | left,
|  | const Vector3< T > & | right
| ) |  |
| related

Overload of binary operator +.

Parameters

  left | Left operand (a vector)
  right | Right operand (a vector)

Returns
  Memberwise addition of both vectors

## ◆ operator+=()

template<typename T >

Vector3< T > & operator+= | ( | Vector3< T > & | left,
|  | const Vector3< T > & | right
| ) |  |
| related

Overload of binary operator +=.

This operator performs a memberwise 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]

template<typename T >

Vector3< T > operator- | ( | const Vector3< T > & | left | ) |
| related

Overload of unary operator -.

Parameters

  left | Vector to negate

Returns
  Memberwise opposite of the vector

## ◆ operator-() [2/2]

template<typename T >

Vector3< T > operator- | ( | const Vector3< T > & | left,
|  | const Vector3< T > & | right
| ) |  |
| related

Overload of binary operator -.

Parameters

  left | Left operand (a vector)
  right | Right operand (a vector)

Returns
  Memberwise subtraction of both vectors

## ◆ operator-=()

template<typename T >

Vector3< T > & operator-= | ( | Vector3< T > & | left,
|  | const Vector3< T > & | right
| ) |  |
| related

Overload of binary operator -=.

This operator performs a memberwise 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/()

template<typename T >

Vector3< T > operator/ | ( | const Vector3< T > & | left,
|  | T | right
| ) |  |
| related

Overload of binary operator /.

Parameters

  left | Left operand (a vector)
  right | Right operand (a scalar value)

Returns
  Memberwise division by right

## ◆ operator/=()

template<typename T >

Vector3< T > & operator/= | ( | Vector3< T > & | left,
|  | T | right
| ) |  |
| related

Overload of binary operator /=.

This operator performs a memberwise 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==()

template<typename T >

bool operator== | ( | const Vector3< T > & | left,
|  | const Vector3< T > & | right
| ) |  |
| related

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

template<typename T>

T sf::Vector3< T >::x

X coordinate of the vector.

Definition at line 76 of file Vector3.hpp.

## ◆ y

template<typename T>

T sf::Vector3< T >::y

Y coordinate of the vector.

Definition at line 77 of file Vector3.hpp.

## ◆ z

template<typename T>

T sf::Vector3< T >::z

Z coordinate of the vector.

Definition at line 78 of file Vector3.hpp.

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

- Vector3.hpp