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

# SoSFRotation(3iv)

field containing a rotation

## NAME

SoSFRotation — field containing a rotation

## INHERITS FROM

SoField \> SoSField \> SoSFRotation

## SYNOPSIS

**#include \<Inventor/fields/SoSFRotation.h\>**

Methods from class SoSFRotation:

**void**	**getValue(const SbVec3f &axis, float &angle) const**\
 **void**	**setValue(float q0, float q1, float q2, float q3)**\
 	**setValue(float q\[4\])**\
 **void**	**setValue(const SbVec3f &axis, float angle)**\
 **static SoType**	**getClassTypeId()**\
 **virtual void**	**getTypeId() const**\
 **const SbRotation &**	**getValue() const**\
 **const SbRotation &**	**operator =(const SbRotation & newValue)**\
 **void**	**setValue(const SbRotation & newValue)**\
 **int**	**operator ==(const SoSFRotation &f) const**\
 **int**	**operator !=(const SoSFRotation &f) const**

Methods from class SoField:

**void**	**setIgnored(SbBool ignore)**\
 **SbBool**	**isIgnored() const**\
 **SbBool**	**isDefault() const**\
 **virtual SbBool**	**isOfType(SoType type) const**\
 **SbBool**	**set(const char \*valueString)**\
 **void**	**get(SbString &valueString)**\
 **void**	**touch()**\
 **SbBool**	**connectFrom(SoField \*fromField)**\
 **SbBool**	**connectFrom(SoEngineOutput \*fromEngine)**\
 **void**	**disconnect()**\
 **SbBool**	**isConnected() const**\
 **SbBool**	**isConnectedFromField() const**\
 **SbBool**	**getConnectedField(SoField \*&writingField) const**\
 **SbBool**	**isConnectedFromEngine() const**\
 **SbBool**	**getConnectedEngine(SoEngineOutput \*&engineOutput) const**\
 **void**	**enableConnection(SbBool flag)**\
 **SbBool**	**isConnectionEnabled() const**\
 **int**	**getForwardConnections(SoFieldList &list) const**\
 **SoFieldContainer \***	**getContainer() const**

## DESCRIPTION

**A field containing a single SbRotation** (an arbitrary rotation).

**SoSFRotations** are written to file as four floating point values separated by whitespace. The 4 values represent an axis of rotation followed by the amount of right-handed rotation about that axis, in radians. For example, a 180 degree rotation about the Y axis is:

```
0 1 0  3.14159265
```

## METHODS

**void**	**getValue(const SbVec3f &axis, float &angle) const**\
 Gets the value of the field as an axis/angle.

**void**	**setValue(float q0, float q1, float q2, float q3)**\
 	**setValue(float q\[4\])**\
 Set the field to the given quaternion.

**void**	**setValue(const SbVec3f &axis, float angle)**\
 Set the field to the rotation given by axis/angle.

**static SoType**	**getClassTypeId()**\
 **virtual void**	**getTypeId() const**\
 Returns the type for this class or a particular object of this class.

**const SbRotation &**	**getValue() const**\
 Returns this field's value.

**const SbRotation &**	**operator =(const SbRotation & newValue)**\
 **void**	**setValue(const SbRotation & newValue)**\
 Sets this field to **newValue**.

**int**	**operator ==(const SoSFRotation &f) const**\
 **int**	**operator !=(const SoSFRotation &f) const**\
 Returns TRUE if **f** is of the same type and has the same value as this field.

## SEE ALSO

**SbRotation, SoField, SoSField, SoMFRotation**
