---
name: "SbVec4f"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SbVec4f/3iv"
---

# SbVec4f(3iv)

4D vector class

## NAME

SbVec4f — 4D vector class

## INHERITS FROM

SbVec4f

## SYNOPSIS

**#include \<Inventor/SbLinear.h\>**

Methods from class SbVec4f:

	**SbVec4f()**\
 	**SbVec4f(const float v\[4\])**\
 	**SbVec4f(float x, float y, float z, float w)**\
 **float**	**dot(const SbVec4f &v) const**\
 **SbBool**	**equals(const SbVec4f v, float tolerance) const**\
 **void**	**getReal(SbVec3f &v) const**\
 **const float \***	**getValue() const**\
 **void**	**getValue(float &x, float &y, float &z, float &w) const**\
 **float**	**length() const**\
 **void**	**negate()**\
 	**normalize()**\
 **SbVec4f &**	**setValue(const float v\[4\])**\
 **SbVec4f &**	**setValue(float x, float y, float z, float w)**\
 **float &**	**operator \[\](int i)**\
 **const float &**	**operator \[\](int i)**\
 **SbVec4f &**	**operator \*=(float d)**\
 **SbVec4f &**	**operator /=(float d)**\
 **SbVec4f &**	**operator +=(const SbVec4f &u)**\
 **SbVec4f &**	**operator -=(const SbVec4f &u)**\
 **SbVec4f**	**operator -() const**\
 **SbVec4f**	**operator \*(const SbVec4f &v, float d)**\
 **SbVec4f**	**operator \*(float d, const SbVec4f &v)**\
 **SbVec4f**	**operator /(const SbVec4f &v, float d)**\
 **SbVec4f**	**operator +(const SbVec4f &v1, const SbVec4f &v2)**\
 **SbVec4f**	**operator -(const SbVec4f &v1, const SbVec4f &v2)**\
 **int**	**operator ==(const SbVec4f &v1, const SbVec4f &v2)**\
 **int**	**operator !=(const SbVec4f &v1, const SbVec4f &v2)**

## DESCRIPTION

**4D vector class used to store homogeneous coordinates. This class is used in Inventor for arguments and return values.**

## METHODS

	**SbVec4f()**\
 Default constructor.

	**SbVec4f(const float v\[4\])**\
 	**SbVec4f(float x, float y, float z, float w)**\
 Constructor given vector components.

**float**	**dot(const SbVec4f &v) const**\
 Returns dot (inner) product of vector and another vector.

**SbBool**	**equals(const SbVec4f v, float tolerance) const**\
 Equality comparison within given tolerance — the square of the length of the maximum distance between the two vectors.

**void**	**getReal(SbVec3f &v) const**\
 Returns the real portion of the vector by dividing by the fourth value.

**const float \***	**getValue() const**\
 **void**	**getValue(float &x, float &y, float &z, float &w) const**\
 Returns vector components.

**float**	**length() const**\
 Returns geometric length of vector.

**void**	**negate()**\
 Negates each component of vector in place.

	**normalize()**\
 Changes vector to be unit length.

**SbVec4f &**	**setValue(const float v\[4\])**\
 **SbVec4f &**	**setValue(float x, float y, float z, float w)**\
 Sets the vector components.

**float &**	**operator \[\](int i)**\
 **const float &**	**operator \[\](int i)**\
 Accesses indexed component of vector.

**SbVec4f &**	**operator \*=(float d)**\
 **SbVec4f &**	**operator /=(float d)**\
 Component-wise scalar multiplication and division operators.

**SbVec4f &**	**operator +=(const SbVec4f &u)**\
 **SbVec4f &**	**operator -=(const SbVec4f &u)**\
 Component-wise vector addition and subtraction operators.

**SbVec4f**	**operator -() const**\
 Nondestructive unary negation — returns a new vector.

**SbVec4f**	**operator \*(const SbVec4f &v, float d)**\
 **SbVec4f**	**operator \*(float d, const SbVec4f &v)**\
 **SbVec4f**	**operator /(const SbVec4f &v, float d)**\
 Component-wise binary scalar multiplication and division operators.

**SbVec4f**	**operator +(const SbVec4f &v1, const SbVec4f &v2)**\
 **SbVec4f**	**operator -(const SbVec4f &v1, const SbVec4f &v2)**\
 Component-wise binary vector addition and subtraction operators.

**int**	**operator ==(const SbVec4f &v1, const SbVec4f &v2)**\
 **int**	**operator !=(const SbVec4f &v1, const SbVec4f &v2)**\
 Equality comparison operators.

## SEE ALSO

**SbVec2f, SbVec3f, SbVec2s, SbRotation**
