All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
kzc_quaternion.h File Reference

Quaternion operations. More...

Classes

struct  KzcQuaternion
 Structure of quaternion. More...
 

Functions

KANZI_API void kzcQuaternionSetIdentity (KzcQuaternion *quaternion)
 Sets identity quaternion. More...
 
KANZI_API void kzcQuaternionInitializeFromVector (const KzcVector3 *axis, kzFloat angleInRadians, KzcQuaternion *out_quaternion)
 Creates quaternion from vector and and angle. More...
 
KANZI_API void kzcQuaternionInitializeFromMatrix4x4 (const KzcMatrix4x4 *matrix, KzcQuaternion *out_quaternion)
 Creates quaternion from matrix. More...
 
KANZI_API void kzcQuaternionConvertToMatrix4x4 (const KzcQuaternion *quaternion, KzcMatrix4x4 *out_matrix)
 Converts quaternion from 4x4 matrix. More...
 
KANZI_API void kzcQuaternionMultiply (const KzcQuaternion *quaternion1, const KzcQuaternion *quaternion2, KzcQuaternion *out_quaternion)
 Multiplies 2 quaternions, resulting rotation. More...
 
KANZI_API void kzcQuaternionMultiplyVector3 (const KzcQuaternion *quaternion, const KzcVector3 *vector3, KzcVector3 *out_vector3)
 Multiplies quaternion with vector, i.e. More...
 
KANZI_API void kzcQuaternionNormalize (KzcQuaternion *quaternion)
 Normalizes a quaternion. More...
 
KANZI_API void kzcQuaternionInverse (KzcQuaternion *quaternion)
 Inverses a quaternion. More...
 
KANZI_API void kzcQuaternionSlerp (const KzcQuaternion *quaternion1, const KzcQuaternion *quaternion2, kzFloat t, KzcQuaternion *out_quaternion)
 Spherical interpolation between two quaternions. More...
 
KANZI_API void kzcQuaternionSlerpLongerPath (const KzcQuaternion *quaternion1, const KzcQuaternion *quaternion2, kzFloat t, KzcQuaternion *out_quaternion)
 Spherical interpolation between two quaternions. More...
 

Detailed Description

Quaternion operations.

Copyright 2008-2020 by Rightware. All rights reserved.

Function Documentation

KANZI_API void kzcQuaternionSetIdentity ( KzcQuaternion quaternion)

Sets identity quaternion.

KANZI_API void kzcQuaternionInitializeFromVector ( const KzcVector3 axis,
kzFloat  angleInRadians,
KzcQuaternion out_quaternion 
)

Creates quaternion from vector and and angle.

KANZI_API void kzcQuaternionInitializeFromMatrix4x4 ( const KzcMatrix4x4 matrix,
KzcQuaternion out_quaternion 
)

Creates quaternion from matrix.

KANZI_API void kzcQuaternionConvertToMatrix4x4 ( const KzcQuaternion quaternion,
KzcMatrix4x4 out_matrix 
)

Converts quaternion from 4x4 matrix.

KANZI_API void kzcQuaternionMultiply ( const KzcQuaternion quaternion1,
const KzcQuaternion quaternion2,
KzcQuaternion out_quaternion 
)

Multiplies 2 quaternions, resulting rotation.

KANZI_API void kzcQuaternionMultiplyVector3 ( const KzcQuaternion quaternion,
const KzcVector3 vector3,
KzcVector3 out_vector3 
)

Multiplies quaternion with vector, i.e.

applies rotation to vector.

KANZI_API void kzcQuaternionNormalize ( KzcQuaternion quaternion)

Normalizes a quaternion.

KANZI_API void kzcQuaternionInverse ( KzcQuaternion quaternion)

Inverses a quaternion.

KANZI_API void kzcQuaternionSlerp ( const KzcQuaternion quaternion1,
const KzcQuaternion quaternion2,
kzFloat  t,
KzcQuaternion out_quaternion 
)

Spherical interpolation between two quaternions.

t is the interpolation parameter from range [0, 1].

KANZI_API void kzcQuaternionSlerpLongerPath ( const KzcQuaternion quaternion1,
const KzcQuaternion quaternion2,
kzFloat  t,
KzcQuaternion out_quaternion 
)

Spherical interpolation between two quaternions.

Goes through the longer path (more than 180 degree turn). t is the interpolation parameter from range [0, 1].