KS.Reactor.ksQuaternion Struct Reference

ksQuaternion struct. More...

Public Member Functions

 ksQuaternion (float x, float y, float z, float w)
 Constructor. More...
 
void Normalize ()
 Normalizes this quaternion. More...
 
ksQuaternion Inverse ()
 Inversed quaternion. More...
 
void Invert ()
 Inverts this quaternion. More...
 
ksVector3 ToEuler ()
 Euler angle representation of this quaternion in degrees. More...
 
ksVector3 ToEulerRadians ()
 Euler angle representation of this quaternion in radians. More...
 
void ToAxisAngle (out ksVector3 axis, out float angle)
 Converts the quaternion to axis-angle representation. More...
 
void ToAxisAngleRadians (out ksVector3 axis, out float angle)
 Converts the quaternion to axis-angle representation. More...
 
ksVector3 ToAngularDisplacement ()
 angular displacement representation of this quaternion in degrees. More...
 
ksVector3 ToAngularDisplacementRadians ()
 Angular displacement representation of this quaternion in radians. More...
 
override string ToString ()
 Gets the string representation of the vector. More...
 
string ToString (string format)
 Returns a string respresentation of the quaternion. More...
 
string ToString (IFormatProvider provider)
 Returns a string respresentation of the quaternion. More...
 
override bool Equals (object obj)
 Checks if this quaternion is equal to an object. More...
 
bool Equals (ksQuaternion other)
 Checks if this quaternion is equal to another. More...
 
override int GetHashCode ()
 Gets the hash code for this quaternion. More...
 

Static Public Member Functions

static implicit operator float[] (ksQuaternion value)
 Implicit conversion from ksQuaternion to float[4]. More...
 
static implicit operator ksQuaternion (float[] value)
 Implicit conversion from float[] to ksQuaternion. More...
 
static ksQuaternion FromEuler (ksVector3 euler)
 Constructs a ksQuaternion from euler angles. More...
 
static ksQuaternion FromEulerRadians (ksVector3 euler)
 Constructs a ksQuaternion from euler angles. More...
 
static ksQuaternion FromAxisAngle (ksVector3 axis, float angle)
 Constructs a ksQuaternion from an axis-angle. More...
 
static ksQuaternion FromAxisAngleRadians (ksVector3 axis, float angle)
 Constructs a ksQuaternion from an axis-angle. More...
 
static ksQuaternion FromAngularDisplacement (ksVector3 angularDisplacement)
 Constructs a ksQuaternion from angular displacement. More...
 
static ksQuaternion FromAngularDisplacementRadians (ksVector3 angularDisplacement)
 Constructs a ksQuaternion from angular displacement. More...
 
static ksQuaternion FromDirection (ksVector3 forward)
 Constructs a ksQuaternion from a forward direction, with ksVector3.Up as the up direction. More...
 
static ksQuaternion FromDirection (ksVector3 forward, ksVector3 up)
 Constructs a ksQuaternion from forward and up directions. More...
 
static ksQuaternion FromVectorDelta (ksVector3 startDirection, ksVector3 endDirection)
 Constructs a ksQuaternion that rotates one vector to another. More...
 
static ksQuaternion RotateByEuler (ksQuaternion quaternion, ksVector3 euler)
 Rotates a quaternion by euler angles. More...
 
static ksQuaternion RotateByEulerRadians (ksQuaternion quaternion, ksVector3 euler)
 Rotates a quaternion by euler angles. More...
 
static float DeltaDegrees (ksQuaternion a, ksQuaternion b)
 Returns the angle in degrees between two quaternions. More...
 
static float DeltaRadians (ksQuaternion a, ksQuaternion b)
 Returns the angle in radians between two quaternions. More...
 
static float Dot (ksQuaternion a, ksQuaternion b)
 Computes the dot product of two quaternions. More...
 
static ksQuaternion Lerp (ksQuaternion from, ksQuaternion to, float t)
 Interpolates linearly between two quaternions. More...
 
static ksQuaternion Slerp (ksQuaternion from, ksQuaternion to, float t)
 Spherically interpolates between two quaternions. More...
 
static ksQuaternion RotateTowards (ksQuaternion start, ksQuaternion target, float deltaAngle)
 Rotates a quaternion towards another. More...
 
static ksQuaternion RotateTowardsRadians (ksQuaternion start, ksQuaternion target, float deltaAngle)
 Rotates a quaternion towards another. More...
 
static ksVector3 AngularDisplacement (ksQuaternion start, ksQuaternion end)
 Returns the angular displacement between two quaternions. More...
 
static ksVector3 AngularDisplacementRadians (ksQuaternion start, ksQuaternion end)
 Returns the angular displacement between two quaternions. More...
 
static ksQuaternion AddAngularDisplacement (ksQuaternion quaternion, ksVector3 angularDisplacement)
 Rotates a quaternion using angular displacement. More...
 
static ksQuaternion AddAngularDisplacementRadians (ksQuaternion quaternion, ksVector3 angularDisplacement)
 Rotates a quaternion using angular displacement. More...
 
static ksQuaternion operator- (ksQuaternion q)
 Quaternion unary - operator. More...
 
static ksQuaternion operator* (ksQuaternion lhs, ksQuaternion rhs)
 Quaternion multiplication. More...
 
static ksVector3 operator* (ksQuaternion rotation, ksVector3 point)
 Rotates a vector by a quaternion. More...
 
static ksVector3 operator* (ksVector3 point, ksQuaternion rotation)
 Rotates a vector by a quaternion. More...
 
static bool operator== (ksQuaternion lhs, ksQuaternion rhs)
 Checks if two quaternions are equal. More...
 
static bool operator!= (ksQuaternion lhs, ksQuaternion rhs)
 Checks if two quaternions are not equal. More...
 
static implicit operator Quaternion (ksQuaternion value)
 Implicit conversion from ksQuaternion to Unity Quaternion. More...
 
static implicit operator ksQuaternion (Quaternion value)
 Implicit conversion from Unity Quaternion to ksQuaternion. More...
 
static ksQuaternion operator* (ksQuaternion lhs, Quaternion rhs)
 Quaternion multiplication with ksQuaternion and Unity Quaternion. More...
 
static Quaternion operator* (Quaternion lhs, ksQuaternion rhs)
 Quaternion multiplication with Unity Quaternion and ksQuaternion. More...
 
static bool operator== (ksQuaternion lhs, Quaternion rhs)
 Equality comparison with ksQuaternion and Unity Quaternion. More...
 
static bool operator== (Quaternion lhs, ksQuaternion rhs)
 Equality comparison with Unity Quaternion and ksQuaternion. More...
 
static bool operator!= (ksQuaternion lhs, Quaternion rhs)
 Inequality comparison with ksQuaternion and Unity Quaternion. More...
 
static bool operator!= (Quaternion lhs, ksQuaternion rhs)
 Inequality comparison with Unity Quaternion and ksQuaternion. More...
 

Properties

static ksQuaternion Identity [get]
 
float X [get, set]
 X value of this quaternion. More...
 
float Y [get, set]
 Y value of this quaternion. More...
 
float Z [get, set]
 Z value of this quaternion. More...
 
float W [get, set]
 W value of this quaternion. More...
 
float this[int index] [get, set]
 Indexer. More...
 
bool IsValid [get]
 Checks if the quaternion is valid (the components are normalized). More...
 

Detailed Description

ksQuaternion struct.

Quaternion struct

Constructor & Destructor Documentation

◆ ksQuaternion()

KS.Reactor.ksQuaternion.ksQuaternion ( float  x,
float  y,
float  z,
float  w 
)

Constructor.

Parameters
xX value.
yY value.
zZ value.
wW value.

Member Function Documentation

◆ AddAngularDisplacement()

static ksQuaternion KS.Reactor.ksQuaternion.AddAngularDisplacement ( ksQuaternion  quaternion,
ksVector3  angularDisplacement 
)
static

Rotates a quaternion using angular displacement.

Parameters
quaternionQuaternion to rotate.
angularDisplacementAngular displacement in degrees.
Returns

◆ AddAngularDisplacementRadians()

static ksQuaternion KS.Reactor.ksQuaternion.AddAngularDisplacementRadians ( ksQuaternion  quaternion,
ksVector3  angularDisplacement 
)
static

Rotates a quaternion using angular displacement.

Parameters
quaternionQuaternion to rotate.
angularDisplacementAngular displacement in radians.
Returns

◆ AngularDisplacement()

static ksVector3 KS.Reactor.ksQuaternion.AngularDisplacement ( ksQuaternion  start,
ksQuaternion  end 
)
static

Returns the angular displacement between two quaternions.

Parameters
start
end
Returns
Angular displacement between start and end in degrees.

◆ AngularDisplacementRadians()

static ksVector3 KS.Reactor.ksQuaternion.AngularDisplacementRadians ( ksQuaternion  start,
ksQuaternion  end 
)
static

Returns the angular displacement between two quaternions.

Parameters
start
end
Returns
Angular displacement between start and end in radians.

◆ DeltaDegrees()

static float KS.Reactor.ksQuaternion.DeltaDegrees ( ksQuaternion  a,
ksQuaternion  b 
)
static

Returns the angle in degrees between two quaternions.

Parameters
a
b
Returns
Angle in degrees between a and b.

◆ DeltaRadians()

static float KS.Reactor.ksQuaternion.DeltaRadians ( ksQuaternion  a,
ksQuaternion  b 
)
static

Returns the angle in radians between two quaternions.

Parameters
a
b
Returns
Angle in radians between a and b.

◆ Dot()

static float KS.Reactor.ksQuaternion.Dot ( ksQuaternion  a,
ksQuaternion  b 
)
static

Computes the dot product of two quaternions.

Parameters
a
b
Returns
Dot product of a and b.

◆ Equals() [1/2]

bool KS.Reactor.ksQuaternion.Equals ( ksQuaternion  other)

Checks if this quaternion is equal to another.

Parameters
otherOther quaternion to compare with.
Returns
True if the quaternions are equal.

◆ Equals() [2/2]

override bool KS.Reactor.ksQuaternion.Equals ( object  obj)

Checks if this quaternion is equal to an object.

Parameters
objObject to compare with this quaternion.
Returns
True if this quaternion is equal to the object.

◆ FromAngularDisplacement()

static ksQuaternion KS.Reactor.ksQuaternion.FromAngularDisplacement ( ksVector3  angularDisplacement)
static

Constructs a ksQuaternion from angular displacement.

Parameters
angularDisplacement
Returns

◆ FromAngularDisplacementRadians()

static ksQuaternion KS.Reactor.ksQuaternion.FromAngularDisplacementRadians ( ksVector3  angularDisplacement)
static

Constructs a ksQuaternion from angular displacement.

Parameters
angularDisplacementAngular displacement in radians.
Returns

◆ FromAxisAngle()

static ksQuaternion KS.Reactor.ksQuaternion.FromAxisAngle ( ksVector3  axis,
float  angle 
)
static

Constructs a ksQuaternion from an axis-angle.

Parameters
axisAxis of rotation.
angleAngle of rotation in degrees.
Returns

◆ FromAxisAngleRadians()

static ksQuaternion KS.Reactor.ksQuaternion.FromAxisAngleRadians ( ksVector3  axis,
float  angle 
)
static

Constructs a ksQuaternion from an axis-angle.

Parameters
axisAxis of rotation.
angleAngle of rotation in radians.
Returns

◆ FromDirection() [1/2]

static ksQuaternion KS.Reactor.ksQuaternion.FromDirection ( ksVector3  forward)
static

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

Parameters
forwardForward direction.
Returns

◆ FromDirection() [2/2]

static ksQuaternion KS.Reactor.ksQuaternion.FromDirection ( ksVector3  forward,
ksVector3  up 
)
static

Constructs a ksQuaternion from forward and up directions.

Parameters
forwardForward direction.
upUp direction.
Returns

◆ FromEuler()

static ksQuaternion KS.Reactor.ksQuaternion.FromEuler ( ksVector3  euler)
static

Constructs a ksQuaternion from euler angles.

Parameters
eulerEuler angles in degrees.
Returns

◆ FromEulerRadians()

static ksQuaternion KS.Reactor.ksQuaternion.FromEulerRadians ( ksVector3  euler)
static

Constructs a ksQuaternion from euler angles.

Parameters
eulerEuler angles in radians.
Returns

◆ FromVectorDelta()

static ksQuaternion KS.Reactor.ksQuaternion.FromVectorDelta ( ksVector3  startDirection,
ksVector3  endDirection 
)
static

Constructs a ksQuaternion that rotates one vector to another.

Parameters
startDirectionStart direction.
endDirectionEnd direction.
Returns

◆ GetHashCode()

override int KS.Reactor.ksQuaternion.GetHashCode ( )

Gets the hash code for this quaternion.

Returns

◆ Inverse()

ksQuaternion KS.Reactor.ksQuaternion.Inverse ( )

Inversed quaternion.

Returns

◆ Invert()

void KS.Reactor.ksQuaternion.Invert ( )

Inverts this quaternion.

◆ Lerp()

static ksQuaternion KS.Reactor.ksQuaternion.Lerp ( ksQuaternion  from,
ksQuaternion  to,
float  t 
)
static

Interpolates linearly between two quaternions.

Parameters
fromQuaternion to interpolate from.
toQuaternion to interpolate to.
tValue between 0 and 1 that determines the amount of interpolation.
Returns
Interpolated quaternion.

◆ Normalize()

void KS.Reactor.ksQuaternion.Normalize ( )

Normalizes this quaternion.

◆ operator float[]()

static implicit KS.Reactor.ksQuaternion.operator float[] ( ksQuaternion  value)
static

Implicit conversion from ksQuaternion to float[4].

◆ operator ksQuaternion() [1/2]

static implicit KS.Reactor.ksQuaternion.operator ksQuaternion ( float[]  value)
static

Implicit conversion from float[] to ksQuaternion.

◆ operator ksQuaternion() [2/2]

static implicit KS.Reactor.ksQuaternion.operator ksQuaternion ( Quaternion  value)
static

Implicit conversion from Unity Quaternion to ksQuaternion.

Parameters
valueUnity quaternion
Returns
Reactor quaternion

◆ operator Quaternion()

static implicit KS.Reactor.ksQuaternion.operator Quaternion ( ksQuaternion  value)
static

Implicit conversion from ksQuaternion to Unity Quaternion.

Parameters
valueReactor quaternion
Returns
Unity quaternion

◆ operator!=() [1/3]

static bool KS.Reactor.ksQuaternion.operator!= ( ksQuaternion  lhs,
ksQuaternion  rhs 
)
static

Checks if two quaternions are not equal.

Parameters
lhs
rhs
Returns
True if the quaternions are not equal.

◆ operator!=() [2/3]

static bool KS.Reactor.ksQuaternion.operator!= ( ksQuaternion  lhs,
Quaternion  rhs 
)
static

Inequality comparison with ksQuaternion and Unity Quaternion.

Parameters
lhs
rhs
Returns
lhs != rhs

◆ operator!=() [3/3]

static bool KS.Reactor.ksQuaternion.operator!= ( Quaternion  lhs,
ksQuaternion  rhs 
)
static

Inequality comparison with Unity Quaternion and ksQuaternion.

Parameters
lhs
rhs
Returns
lhs != rhs

◆ operator*() [1/5]

static ksQuaternion KS.Reactor.ksQuaternion.operator* ( ksQuaternion  lhs,
ksQuaternion  rhs 
)
static

Quaternion multiplication.

Parameters
lhs
rhs
Returns
Result.

◆ operator*() [2/5]

static ksQuaternion KS.Reactor.ksQuaternion.operator* ( ksQuaternion  lhs,
Quaternion  rhs 
)
static

Quaternion multiplication with ksQuaternion and Unity Quaternion.

Parameters
lhs
rhs
Returns
rhs rotated by lhs .

◆ operator*() [3/5]

static ksVector3 KS.Reactor.ksQuaternion.operator* ( ksQuaternion  rotation,
ksVector3  point 
)
static

Rotates a vector by a quaternion.

Parameters
rotationRotation to apply.
pointPoint to rotate.
Returns
Rotated point.

◆ operator*() [4/5]

static ksVector3 KS.Reactor.ksQuaternion.operator* ( ksVector3  point,
ksQuaternion  rotation 
)
static

Rotates a vector by a quaternion.

Parameters
pointPoint to rotate.
rotationRotation to apply.
Returns
Rotated point.

◆ operator*() [5/5]

static Quaternion KS.Reactor.ksQuaternion.operator* ( Quaternion  lhs,
ksQuaternion  rhs 
)
static

Quaternion multiplication with Unity Quaternion and ksQuaternion.

Parameters
lhs
rhs
Returns
rhs rotated by lhs .

◆ operator-()

static ksQuaternion KS.Reactor.ksQuaternion.operator- ( ksQuaternion  q)
static

Quaternion unary - operator.

Parameters
q
Returns
Result.

◆ operator==() [1/3]

static bool KS.Reactor.ksQuaternion.operator== ( ksQuaternion  lhs,
ksQuaternion  rhs 
)
static

Checks if two quaternions are equal.

Parameters
lhs
rhs
Returns
True if the quaternions are equal.

◆ operator==() [2/3]

static bool KS.Reactor.ksQuaternion.operator== ( ksQuaternion  lhs,
Quaternion  rhs 
)
static

Equality comparison with ksQuaternion and Unity Quaternion.

Parameters
lhs
rhs
Returns
lhs == rhs

◆ operator==() [3/3]

static bool KS.Reactor.ksQuaternion.operator== ( Quaternion  lhs,
ksQuaternion  rhs 
)
static

Equality comparison with Unity Quaternion and ksQuaternion.

Parameters
lhs
rhs
Returns
lhs == rhs

◆ RotateByEuler()

static ksQuaternion KS.Reactor.ksQuaternion.RotateByEuler ( ksQuaternion  quaternion,
ksVector3  euler 
)
static

Rotates a quaternion by euler angles.

Parameters
quaternionQuaternion to rotate.
eulerEuler angles in degrees to rotate by.
Returns
Rotated quaternion.

◆ RotateByEulerRadians()

static ksQuaternion KS.Reactor.ksQuaternion.RotateByEulerRadians ( ksQuaternion  quaternion,
ksVector3  euler 
)
static

Rotates a quaternion by euler angles.

Parameters
quaternionQuaternion to rotate.
eulerEuler angles in radians to rotate by.
Returns
Rotated quaternion.

◆ RotateTowards()

static ksQuaternion KS.Reactor.ksQuaternion.RotateTowards ( ksQuaternion  start,
ksQuaternion  target,
float  deltaAngle 
)
static

Rotates a quaternion towards another.

Parameters
startStart rotation.
targetTarget to rotate towards.
deltaAngleDelta angle in degrees to rotate. It will not overshoot the target. Negative values will rotate away from the target.
Returns

◆ RotateTowardsRadians()

static ksQuaternion KS.Reactor.ksQuaternion.RotateTowardsRadians ( ksQuaternion  start,
ksQuaternion  target,
float  deltaAngle 
)
static

Rotates a quaternion towards another.

Parameters
startStart rotation.
targetTarget to rotate towards.
deltaAngleDelta angle in radians to rotate. It will not overshoot the target. Negative values will rotate away from the target.
Returns

◆ Slerp()

static ksQuaternion KS.Reactor.ksQuaternion.Slerp ( ksQuaternion  from,
ksQuaternion  to,
float  t 
)
static

Spherically interpolates between two quaternions.

Parameters
fromQuaternion to interpolate from.
toQuaternion to interpolate to.
tValue between 0 and 1 that determines the amount of interpolation.
Returns
Interpolated quaternion.

◆ ToAngularDisplacement()

ksVector3 KS.Reactor.ksQuaternion.ToAngularDisplacement ( )

angular displacement representation of this quaternion in degrees.

Returns

◆ ToAngularDisplacementRadians()

ksVector3 KS.Reactor.ksQuaternion.ToAngularDisplacementRadians ( )

Angular displacement representation of this quaternion in radians.

Returns

◆ ToAxisAngle()

void KS.Reactor.ksQuaternion.ToAxisAngle ( out ksVector3  axis,
out float  angle 
)

Converts the quaternion to axis-angle representation.

Parameters
axisAxis of rotation.
angleAngle of rotation in degrees.

◆ ToAxisAngleRadians()

void KS.Reactor.ksQuaternion.ToAxisAngleRadians ( out ksVector3  axis,
out float  angle 
)

Converts the quaternion to axis-angle representation.

Parameters
axisAxis of rotation.
angleAngle of rotation in radians.

◆ ToEuler()

ksVector3 KS.Reactor.ksQuaternion.ToEuler ( )

Euler angle representation of this quaternion in degrees.

Returns

◆ ToEulerRadians()

ksVector3 KS.Reactor.ksQuaternion.ToEulerRadians ( )

Euler angle representation of this quaternion in radians.

Returns

◆ ToString() [1/3]

override string KS.Reactor.ksQuaternion.ToString ( )

Gets the string representation of the vector.

Returns

◆ ToString() [2/3]

string KS.Reactor.ksQuaternion.ToString ( IFormatProvider  provider)

Returns a string respresentation of the quaternion.

Parameters
provider
Returns
String representation of the quaternion.

◆ ToString() [3/3]

string KS.Reactor.ksQuaternion.ToString ( string  format)

Returns a string respresentation of the quaternion.

Parameters
format
Returns
String representation of the quaternion.

Property Documentation

◆ IsValid

bool KS.Reactor.ksQuaternion.IsValid
get

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

◆ this[int index]

float KS.Reactor.ksQuaternion.this[int index]
getset

Indexer.

◆ W

float KS.Reactor.ksQuaternion.W
getset

W value of this quaternion.

◆ X

float KS.Reactor.ksQuaternion.X
getset

X value of this quaternion.

◆ Y

float KS.Reactor.ksQuaternion.Y
getset

Y value of this quaternion.

◆ Z

float KS.Reactor.ksQuaternion.Z
getset

Z value of this quaternion.