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

# SbVec3f(3iv)

3D vector class

## NAME

SbVec3f — 3D vector class

## INHERITS FROM

SbVec3f

## SYNOPSIS

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

Methods from class SbVec3f:

	**SbVec3f()**\
 	**SbVec3f(const float v\[3\])**\
 	**SbVec3f(float x, float y, float z)**\
 	**SbVec3f(SbPlane &p0, SbPlane &p1, SbPlane &p2)**\
 **SbVec3f**	**cross(const SbVec3f &v) const**\
 **float**	**dot(const SbVec3f &v) const**\
 **SbBool**	**equals(const SbVec3f v, float tolerance) const**\
 **SbVec3f**	**getClosestAxis() const**\
 **const float \***	**getValue() const**\
 **void**	**getValue(float &x, float &y, float &z) const**\
 **float**	**length() const**\
 **void**	**negate()**\
 **float**	**normalize()**\
 **SbVec3f &**	**setValue(const float v\[3\])**\
 **SbVec3f &**	**setValue(float x, float y, float z)**\
 **SbVec3f &**	**setValue(const SbVec3f &barycentic, const SbVec3f &v0, const SbVec3f &v1, const SbVec3f &v2)**\
 **float &**	**operator \[\](int i)**\
 **const float &**	**operator \[\](int i)**\
 **SbVec3f &**	**operator \*=(float d)**\
 **SbVec3f &**	**operator /=(float d)**\
 **SbVec3f &**	**operator +=(const SbVec3f &u)**\
 **SbVec3f &**	**operator -=(const SbVec3f &u)**\
 **SbVec3f**	**operator -() const**\
 **SbVec3f**	**operator \*(const SbVec3f &v, float d)**\
 **SbVec3f**	**operator \*(float d, const SbVec3f &v)**\
 **SbVec3f**	**operator /(const SbVec3f &v, float d)**\
 **SbVec3f**	**operator +(const SbVec3f &v1, const SbVec3f &v2)**\
 **SbVec3f**	**operator -(const SbVec3f &v1, const SbVec3f &v2)**\
 **int**	**operator ==(const SbVec3f &v1, const SbVec3f &v2)**\
 **int**	**operator !=(const SbVec3f &v1, const SbVec3f &v2)**

## DESCRIPTION

**3D vector class used to store 3D vectors and points. This class is used throughout Inventor for arguments and return values.**

## METHODS

	**SbVec3f()**\
 Default constructor.

	**SbVec3f(const float v\[3\])**\
 	**SbVec3f(float x, float y, float z)**\
 Constructor given vector components.

	**SbVec3f(SbPlane &p0, SbPlane &p1, SbPlane &p2)**\
 Constructor given 3 planes.

**SbVec3f**	**cross(const SbVec3f &v) const**\
 Returns right-handed cross product of vector and another vector.

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

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

**SbVec3f**	**getClosestAxis() const**\
 Returns principal axis that is closest (based on maximum dot product) to this vector.

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

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

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

**float**	**normalize()**\
 Changes vector to be unit length, returning the length before normalization.

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

**SbVec3f &**	**setValue(const SbVec3f &barycentic, const SbVec3f &v0, const SbVec3f &v1, const SbVec3f &v2)**\
 Sets value of vector as the weighted average of 3 other vectors.

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

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

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

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

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

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

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

## SEE ALSO

**SbVec2f, SbVec4f, SbVec2s, SbRotation**
