> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md).

# Struct ksQuaternion

Namespace: [KS.Reactor](/reactor/api-reference/ks.reactor.md)\
Assembly: KSCommon.dll

ksQuaternion struct.

```csharp
public struct ksQuaternion
```

#### Inherited Members

[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Constructors

### ksQuaternion(float, float, float, float) <a href="#ks_reactor_ksquaternion__ctor_system_single_system_single_system_single_system_single" id="ks_reactor_ksquaternion__ctor_system_single_system_single_system_single_system_single"></a>

Constructor.

```csharp
public ksQuaternion(float x, float y, float z, float w)
```

#### Parameters

`x` [float](https://learn.microsoft.com/dotnet/api/system.single)

X value.

`y` [float](https://learn.microsoft.com/dotnet/api/system.single)

Y value.

`z` [float](https://learn.microsoft.com/dotnet/api/system.single)

Z value.

`w` [float](https://learn.microsoft.com/dotnet/api/system.single)

W value.

## Properties

### Identity <a href="#ks_reactor_ksquaternion_identity" id="ks_reactor_ksquaternion_identity"></a>

```csharp
public static ksQuaternion Identity { get; }
```

#### Property Value

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### IsValid <a href="#ks_reactor_ksquaternion_isvalid" id="ks_reactor_ksquaternion_isvalid"></a>

Checks if the quaternion is valid (the components are normalized).

```csharp
public bool IsValid { get; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### W <a href="#ks_reactor_ksquaternion_w" id="ks_reactor_ksquaternion_w"></a>

W value of this quaternion.

```csharp
public float W { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### X <a href="#ks_reactor_ksquaternion_x" id="ks_reactor_ksquaternion_x"></a>

X value of this quaternion.

```csharp
public float X { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### Y <a href="#ks_reactor_ksquaternion_y" id="ks_reactor_ksquaternion_y"></a>

Y value of this quaternion.

```csharp
public float Y { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### Z <a href="#ks_reactor_ksquaternion_z" id="ks_reactor_ksquaternion_z"></a>

Z value of this quaternion.

```csharp
public float Z { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

### this\[int] <a href="#ks_reactor_ksquaternion_item_system_int32" id="ks_reactor_ksquaternion_item_system_int32"></a>

Indexer.

```csharp
public float this[int index] { get; set; }
```

#### Property Value

[float](https://learn.microsoft.com/dotnet/api/system.single)

## Methods

### AddAngularDisplacement(ksQuaternion, ksVector3) <a href="#ks_reactor_ksquaternion_addangulardisplacement_ks_reactor_ksquaternion_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_addangulardisplacement_ks_reactor_ksquaternion_ks_reactor_ksvector3"></a>

Rotates a quaternion using angular displacement.

```csharp
public static ksQuaternion AddAngularDisplacement(ksQuaternion quaternion, ksVector3 angularDisplacement)
```

#### Parameters

`quaternion` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to rotate.

`angularDisplacement` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Angular displacement in degrees.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### AddAngularDisplacementRadians(ksQuaternion, ksVector3) <a href="#ks_reactor_ksquaternion_addangulardisplacementradians_ks_reactor_ksquaternion_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_addangulardisplacementradians_ks_reactor_ksquaternion_ks_reactor_ksvector3"></a>

Rotates a quaternion using angular displacement.

```csharp
public static ksQuaternion AddAngularDisplacementRadians(ksQuaternion quaternion, ksVector3 angularDisplacement)
```

#### Parameters

`quaternion` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to rotate.

`angularDisplacement` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Angular displacement in radians.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### AngularDisplacement(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_angulardisplacement_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_angulardisplacement_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Returns the angular displacement between two quaternions.

```csharp
public static ksVector3 AngularDisplacement(ksQuaternion start, ksQuaternion end)
```

#### Parameters

`start` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`end` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Angular displacement between start and end in degrees.

### AngularDisplacementRadians(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_angulardisplacementradians_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_angulardisplacementradians_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Returns the angular displacement between two quaternions.

```csharp
public static ksVector3 AngularDisplacementRadians(ksQuaternion start, ksQuaternion end)
```

#### Parameters

`start` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`end` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Angular displacement between start and end in radians.

### DeltaDegrees(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_deltadegrees_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_deltadegrees_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Returns the angle in degrees between two quaternions.

```csharp
public static float DeltaDegrees(ksQuaternion a, ksQuaternion b)
```

#### Parameters

`a` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`b` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[float](https://learn.microsoft.com/dotnet/api/system.single)

Angle in degrees between a and b.

### DeltaRadians(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_deltaradians_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_deltaradians_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Returns the angle in radians between two quaternions.

```csharp
public static float DeltaRadians(ksQuaternion a, ksQuaternion b)
```

#### Parameters

`a` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`b` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[float](https://learn.microsoft.com/dotnet/api/system.single)

Angle in radians between a and b.

### Dot(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_dot_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_dot_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Computes the dot product of two quaternions.

```csharp
public static float Dot(ksQuaternion a, ksQuaternion b)
```

#### Parameters

`a` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`b` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[float](https://learn.microsoft.com/dotnet/api/system.single)

Dot product of a and b.

### Equals(object) <a href="#ks_reactor_ksquaternion_equals_system_object" id="ks_reactor_ksquaternion_equals_system_object"></a>

Checks if this quaternion is equal to an object.

```csharp
public override bool Equals(object obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)

Object to compare with this quaternion.

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

True if this quaternion is equal to the object.

### Equals(ksQuaternion) <a href="#ks_reactor_ksquaternion_equals_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_equals_ks_reactor_ksquaternion"></a>

Checks if this quaternion is equal to another.

```csharp
public bool Equals(ksQuaternion other)
```

#### Parameters

`other` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Other quaternion to compare with.

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

True if the quaternions are equal.

### FromAngularDisplacement(ksVector3) <a href="#ks_reactor_ksquaternion_fromangulardisplacement_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromangulardisplacement_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion from angular displacement.

```csharp
public static ksQuaternion FromAngularDisplacement(ksVector3 angularDisplacement)
```

#### Parameters

`angularDisplacement` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromAngularDisplacementRadians(ksVector3) <a href="#ks_reactor_ksquaternion_fromangulardisplacementradians_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromangulardisplacementradians_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion from angular displacement.

```csharp
public static ksQuaternion FromAngularDisplacementRadians(ksVector3 angularDisplacement)
```

#### Parameters

`angularDisplacement` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Angular displacement in radians.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromAxisAngle(ksVector3, float) <a href="#ks_reactor_ksquaternion_fromaxisangle_ks_reactor_ksvector3_system_single" id="ks_reactor_ksquaternion_fromaxisangle_ks_reactor_ksvector3_system_single"></a>

Constructs a ksQuaternion from an axis-angle.

```csharp
public static ksQuaternion FromAxisAngle(ksVector3 axis, float angle)
```

#### Parameters

`axis` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Axis of rotation.

`angle` [float](https://learn.microsoft.com/dotnet/api/system.single)

Angle of rotation in degrees.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromAxisAngleRadians(ksVector3, float) <a href="#ks_reactor_ksquaternion_fromaxisangleradians_ks_reactor_ksvector3_system_single" id="ks_reactor_ksquaternion_fromaxisangleradians_ks_reactor_ksvector3_system_single"></a>

Constructs a ksQuaternion from an axis-angle.

```csharp
public static ksQuaternion FromAxisAngleRadians(ksVector3 axis, float angle)
```

#### Parameters

`axis` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Axis of rotation.

`angle` [float](https://learn.microsoft.com/dotnet/api/system.single)

Angle of rotation in radians.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromDirection(ksVector3) <a href="#ks_reactor_ksquaternion_fromdirection_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromdirection_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion from a forward direction, with ksVector3.Up as the up direction.

```csharp
public static ksQuaternion FromDirection(ksVector3 forward)
```

#### Parameters

`forward` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Forward direction.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromDirection(ksVector3, ksVector3) <a href="#ks_reactor_ksquaternion_fromdirection_ks_reactor_ksvector3_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromdirection_ks_reactor_ksvector3_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion from forward and up directions.

```csharp
public static ksQuaternion FromDirection(ksVector3 forward, ksVector3 up)
```

#### Parameters

`forward` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Forward direction.

`up` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Up direction.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromEuler(ksVector3) <a href="#ks_reactor_ksquaternion_fromeuler_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromeuler_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion from euler angles.

```csharp
public static ksQuaternion FromEuler(ksVector3 euler)
```

#### Parameters

`euler` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Euler angles in degrees.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromEulerRadians(ksVector3) <a href="#ks_reactor_ksquaternion_fromeulerradians_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromeulerradians_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion from euler angles.

```csharp
public static ksQuaternion FromEulerRadians(ksVector3 euler)
```

#### Parameters

`euler` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Euler angles in radians.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### FromVectorDelta(ksVector3, ksVector3) <a href="#ks_reactor_ksquaternion_fromvectordelta_ks_reactor_ksvector3_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_fromvectordelta_ks_reactor_ksvector3_ks_reactor_ksvector3"></a>

Constructs a ksQuaternion that rotates one vector to another.

```csharp
public static ksQuaternion FromVectorDelta(ksVector3 startDirection, ksVector3 endDirection)
```

#### Parameters

`startDirection` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Start direction.

`endDirection` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

End direction.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### GetHashCode() <a href="#ks_reactor_ksquaternion_gethashcode" id="ks_reactor_ksquaternion_gethashcode"></a>

Gets the hash code for this quaternion.

```csharp
public override int GetHashCode()
```

#### Returns

[int](https://learn.microsoft.com/dotnet/api/system.int32)

### Inverse() <a href="#ks_reactor_ksquaternion_inverse" id="ks_reactor_ksquaternion_inverse"></a>

Inversed quaternion.

```csharp
public ksQuaternion Inverse()
```

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### Invert() <a href="#ks_reactor_ksquaternion_invert" id="ks_reactor_ksquaternion_invert"></a>

Inverts this quaternion.

```csharp
public void Invert()
```

### Lerp(ksQuaternion, ksQuaternion, float) <a href="#ks_reactor_ksquaternion_lerp_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system_single" id="ks_reactor_ksquaternion_lerp_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system_single"></a>

Interpolates linearly between two quaternions.

```csharp
public static ksQuaternion Lerp(ksQuaternion from, ksQuaternion to, float t)
```

#### Parameters

`from` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to interpolate from.

`to` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to interpolate to.

`t` [float](https://learn.microsoft.com/dotnet/api/system.single)

Value between 0 and 1 that determines the amount of interpolation.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Interpolated quaternion.

### Normalize() <a href="#ks_reactor_ksquaternion_normalize" id="ks_reactor_ksquaternion_normalize"></a>

Normalizes this quaternion.

```csharp
public void Normalize()
```

### RotateByEuler(ksQuaternion, ksVector3) <a href="#ks_reactor_ksquaternion_rotatebyeuler_ks_reactor_ksquaternion_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_rotatebyeuler_ks_reactor_ksquaternion_ks_reactor_ksvector3"></a>

Rotates a quaternion by euler angles.

```csharp
public static ksQuaternion RotateByEuler(ksQuaternion quaternion, ksVector3 euler)
```

#### Parameters

`quaternion` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to rotate.

`euler` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Euler angles in degrees to rotate by.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Rotated quaternion.

### RotateByEulerRadians(ksQuaternion, ksVector3) <a href="#ks_reactor_ksquaternion_rotatebyeulerradians_ks_reactor_ksquaternion_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_rotatebyeulerradians_ks_reactor_ksquaternion_ks_reactor_ksvector3"></a>

Rotates a quaternion by euler angles.

```csharp
public static ksQuaternion RotateByEulerRadians(ksQuaternion quaternion, ksVector3 euler)
```

#### Parameters

`quaternion` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to rotate.

`euler` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Euler angles in radians to rotate by.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Rotated quaternion.

### RotateTowards(ksQuaternion, ksQuaternion, float) <a href="#ks_reactor_ksquaternion_rotatetowards_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system_single" id="ks_reactor_ksquaternion_rotatetowards_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system_single"></a>

Rotates a quaternion towards another.

```csharp
public static ksQuaternion RotateTowards(ksQuaternion start, ksQuaternion target, float deltaAngle)
```

#### Parameters

`start` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Start rotation.

`target` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Target to rotate towards.

`deltaAngle` [float](https://learn.microsoft.com/dotnet/api/system.single)

Delta angle in degrees to rotate. It will not overshoot the target. Negative values will rotate away from the target.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### RotateTowardsRadians(ksQuaternion, ksQuaternion, float) <a href="#ks_reactor_ksquaternion_rotatetowardsradians_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system" id="ks_reactor_ksquaternion_rotatetowardsradians_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system"></a>

Rotates a quaternion towards another.

```csharp
public static ksQuaternion RotateTowardsRadians(ksQuaternion start, ksQuaternion target, float deltaAngle)
```

#### Parameters

`start` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Start rotation.

`target` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Target to rotate towards.

`deltaAngle` [float](https://learn.microsoft.com/dotnet/api/system.single)

Delta angle in radians to rotate. It will not overshoot the target. Negative values will rotate away from the target.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### Slerp(ksQuaternion, ksQuaternion, float) <a href="#ks_reactor_ksquaternion_slerp_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system_single" id="ks_reactor_ksquaternion_slerp_ks_reactor_ksquaternion_ks_reactor_ksquaternion_system_single"></a>

Spherically interpolates between two quaternions.

```csharp
public static ksQuaternion Slerp(ksQuaternion from, ksQuaternion to, float t)
```

#### Parameters

`from` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to interpolate from.

`to` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Quaternion to interpolate to.

`t` [float](https://learn.microsoft.com/dotnet/api/system.single)

Value between 0 and 1 that determines the amount of interpolation.

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Interpolated quaternion.

### ToAngularDisplacement() <a href="#ks_reactor_ksquaternion_toangulardisplacement" id="ks_reactor_ksquaternion_toangulardisplacement"></a>

angular displacement representation of this quaternion in degrees.

```csharp
public ksVector3 ToAngularDisplacement()
```

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

### ToAngularDisplacementRadians() <a href="#ks_reactor_ksquaternion_toangulardisplacementradians" id="ks_reactor_ksquaternion_toangulardisplacementradians"></a>

Angular displacement representation of this quaternion in radians.

```csharp
public ksVector3 ToAngularDisplacementRadians()
```

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

### ToAxisAngle(out ksVector3, out float) <a href="#ks_reactor_ksquaternion_toaxisangle_ks_reactor_ksvector3__system_single" id="ks_reactor_ksquaternion_toaxisangle_ks_reactor_ksvector3__system_single"></a>

Converts the quaternion to axis-angle representation.

```csharp
public void ToAxisAngle(out ksVector3 axis, out float angle)
```

#### Parameters

`axis` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Axis of rotation.

`angle` [float](https://learn.microsoft.com/dotnet/api/system.single)

Angle of rotation in degrees.

### ToAxisAngleRadians(out ksVector3, out float) <a href="#ks_reactor_ksquaternion_toaxisangleradians_ks_reactor_ksvector3__system_single" id="ks_reactor_ksquaternion_toaxisangleradians_ks_reactor_ksvector3__system_single"></a>

Converts the quaternion to axis-angle representation.

```csharp
public void ToAxisAngleRadians(out ksVector3 axis, out float angle)
```

#### Parameters

`axis` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Axis of rotation.

`angle` [float](https://learn.microsoft.com/dotnet/api/system.single)

Angle of rotation in radians.

### ToEuler() <a href="#ks_reactor_ksquaternion_toeuler" id="ks_reactor_ksquaternion_toeuler"></a>

Euler angle representation of this quaternion in degrees.

```csharp
public ksVector3 ToEuler()
```

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

### ToEulerRadians() <a href="#ks_reactor_ksquaternion_toeulerradians" id="ks_reactor_ksquaternion_toeulerradians"></a>

Euler angle representation of this quaternion in radians.

```csharp
public ksVector3 ToEulerRadians()
```

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

### ToString() <a href="#ks_reactor_ksquaternion_tostring" id="ks_reactor_ksquaternion_tostring"></a>

Gets the string representation of the vector.

```csharp
public override string ToString()
```

#### Returns

[string](https://learn.microsoft.com/dotnet/api/system.string)

### ToString(string) <a href="#ks_reactor_ksquaternion_tostring_system_string" id="ks_reactor_ksquaternion_tostring_system_string"></a>

Returns a string respresentation of the quaternion.

```csharp
public string ToString(string format)
```

#### Parameters

`format` [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Returns

[string](https://learn.microsoft.com/dotnet/api/system.string)

String representation of the quaternion.

### ToString(IFormatProvider) <a href="#ks_reactor_ksquaternion_tostring_system_iformatprovider" id="ks_reactor_ksquaternion_tostring_system_iformatprovider"></a>

Returns a string respresentation of the quaternion.

```csharp
public string ToString(IFormatProvider provider)
```

#### Parameters

`provider` [IFormatProvider](https://learn.microsoft.com/dotnet/api/system.iformatprovider)

#### Returns

[string](https://learn.microsoft.com/dotnet/api/system.string)

String representation of the quaternion.

## Operators

### operator ==(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_equality_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_equality_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Checks if two quaternions are equal.

```csharp
public static bool operator ==(ksQuaternion lhs, ksQuaternion rhs)
```

#### Parameters

`lhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

True if the quaternions are equal.

### operator ==(ksQuaternion, Quaternion) <a href="#ks_reactor_ksquaternion_op_equality_ks_reactor_ksquaternion_unityengine_quaternion" id="ks_reactor_ksquaternion_op_equality_ks_reactor_ksquaternion_unityengine_quaternion"></a>

Equality comparison with [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md) and Unity Quaternion.

```csharp
public static bool operator ==(ksQuaternion lhs, Quaternion rhs)
```

#### Parameters

`lhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` Quaternion

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

`lhs` == `rhs`

### operator ==(Quaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_equality_unityengine_quaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_equality_unityengine_quaternion_ks_reactor_ksquaternion"></a>

Equality comparison with Unity Quaternion and [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md).

```csharp
public static bool operator ==(Quaternion lhs, ksQuaternion rhs)
```

#### Parameters

`lhs` Quaternion

`rhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

`lhs` == `rhs`

### implicit operator float\[]\(ksQuaternion) <a href="#ks_reactor_ksquaternion_op_implicit_ks_reactor_ksquaternion__system_single" id="ks_reactor_ksquaternion_op_implicit_ks_reactor_ksquaternion__system_single"></a>

Implicit conversion from ksQuaternion to float\[4].

```csharp
public static implicit operator float[](ksQuaternion value)
```

#### Parameters

`value` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[float](https://learn.microsoft.com/dotnet/api/system.single)\[]

### implicit operator ksQuaternion(float\[]) <a href="#ks_reactor_ksquaternion_op_implicit_system_single____ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_implicit_system_single____ks_reactor_ksquaternion"></a>

Implicit conversion from float\[] to ksQuaternion.

```csharp
public static implicit operator ksQuaternion(float[] value)
```

#### Parameters

`value` [float](https://learn.microsoft.com/dotnet/api/system.single)\[]

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

### implicit operator Quaternion(ksQuaternion) <a href="#ks_reactor_ksquaternion_op_implicit_ks_reactor_ksquaternion__unityengine_quaternion" id="ks_reactor_ksquaternion_op_implicit_ks_reactor_ksquaternion__unityengine_quaternion"></a>

Implicit conversion from [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md) to Unity Quaternion.

```csharp
public static implicit operator Quaternion(ksQuaternion value)
```

#### Parameters

`value` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Reactor quaternion

#### Returns

Quaternion

Unity quaternion

### implicit operator ksQuaternion(Quaternion) <a href="#ks_reactor_ksquaternion_op_implicit_unityengine_quaternion__ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_implicit_unityengine_quaternion__ks_reactor_ksquaternion"></a>

Implicit conversion from Unity Quaternion to [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md).

```csharp
public static implicit operator ksQuaternion(Quaternion value)
```

#### Parameters

`value` Quaternion

Unity quaternion

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Reactor quaternion

### operator !=(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_inequality_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_inequality_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Checks if two quaternions are not equal.

```csharp
public static bool operator !=(ksQuaternion lhs, ksQuaternion rhs)
```

#### Parameters

`lhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

True if the quaternions are not equal.

### operator !=(ksQuaternion, Quaternion) <a href="#ks_reactor_ksquaternion_op_inequality_ks_reactor_ksquaternion_unityengine_quaternion" id="ks_reactor_ksquaternion_op_inequality_ks_reactor_ksquaternion_unityengine_quaternion"></a>

Inequality comparison with [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md) and Unity Quaternion.

```csharp
public static bool operator !=(ksQuaternion lhs, Quaternion rhs)
```

#### Parameters

`lhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` Quaternion

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

`lhs` != `rhs`

### operator !=(Quaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_inequality_unityengine_quaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_inequality_unityengine_quaternion_ks_reactor_ksquaternion"></a>

Inequality comparison with Unity Quaternion and [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md).

```csharp
public static bool operator !=(Quaternion lhs, ksQuaternion rhs)
```

#### Parameters

`lhs` Quaternion

`rhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

`lhs` != `rhs`

### operator \*(ksQuaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_multiply_ks_reactor_ksquaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_multiply_ks_reactor_ksquaternion_ks_reactor_ksquaternion"></a>

Quaternion multiplication.

```csharp
public static ksQuaternion operator *(ksQuaternion lhs, ksQuaternion rhs)
```

#### Parameters

`lhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Result.

### operator \*(ksQuaternion, ksVector3) <a href="#ks_reactor_ksquaternion_op_multiply_ks_reactor_ksquaternion_ks_reactor_ksvector3" id="ks_reactor_ksquaternion_op_multiply_ks_reactor_ksquaternion_ks_reactor_ksvector3"></a>

Rotates a vector by a quaternion.

```csharp
public static ksVector3 operator *(ksQuaternion rotation, ksVector3 point)
```

#### Parameters

`rotation` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Rotation to apply.

`point` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Point to rotate.

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Rotated point.

### operator \*(ksVector3, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_multiply_ks_reactor_ksvector3_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_multiply_ks_reactor_ksvector3_ks_reactor_ksquaternion"></a>

Rotates a vector by a quaternion.

```csharp
public static ksVector3 operator *(ksVector3 point, ksQuaternion rotation)
```

#### Parameters

`point` [ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Point to rotate.

`rotation` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Rotation to apply.

#### Returns

[ksVector3](/reactor/api-reference/ks.reactor/ks.reactor.ksvector3.md)

Rotated point.

### operator \*(ksQuaternion, Quaternion) <a href="#ks_reactor_ksquaternion_op_multiply_ks_reactor_ksquaternion_unityengine_quaternion" id="ks_reactor_ksquaternion_op_multiply_ks_reactor_ksquaternion_unityengine_quaternion"></a>

Quaternion multiplication with [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md) and Unity Quaternion.

```csharp
public static ksQuaternion operator *(ksQuaternion lhs, Quaternion rhs)
```

#### Parameters

`lhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` Quaternion

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

`rhs` rotated by `lhs`.

### operator \*(Quaternion, ksQuaternion) <a href="#ks_reactor_ksquaternion_op_multiply_unityengine_quaternion_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_multiply_unityengine_quaternion_ks_reactor_ksquaternion"></a>

Quaternion multiplication with Unity Quaternion and [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md).

```csharp
public static Quaternion operator *(Quaternion lhs, ksQuaternion rhs)
```

#### Parameters

`lhs` Quaternion

`rhs` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

Quaternion

`rhs` rotated by `lhs`.

### operator -(ksQuaternion) <a href="#ks_reactor_ksquaternion_op_unarynegation_ks_reactor_ksquaternion" id="ks_reactor_ksquaternion_op_unarynegation_ks_reactor_ksquaternion"></a>

Quaternion unary - operator.

```csharp
public static ksQuaternion operator -(ksQuaternion q)
```

#### Parameters

`q` [ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

#### Returns

[ksQuaternion](/reactor/api-reference/ks.reactor/ks.reactor.ksquaternion.md)

Result.
