25 lines
772 B
C
25 lines
772 B
C
#include "ref.h"
|
|
|
|
void ref_quaternion_normalize_f32(const float32_t *pInputQuaternions,
|
|
float32_t *pNormalizedQuaternions,
|
|
uint32_t nbQuaternions)
|
|
{
|
|
float32_t temp;
|
|
|
|
for(uint32_t i=0; i < nbQuaternions; i++)
|
|
{
|
|
temp = SQ(pInputQuaternions[4 * i + 0]) +
|
|
SQ(pInputQuaternions[4 * i + 1]) +
|
|
SQ(pInputQuaternions[4 * i + 2]) +
|
|
SQ(pInputQuaternions[4 * i + 3]);
|
|
temp = sqrtf(temp);
|
|
|
|
pNormalizedQuaternions[4 * i + 0] = pInputQuaternions[4 * i + 0] / temp;
|
|
pNormalizedQuaternions[4 * i + 1] = pInputQuaternions[4 * i + 1] / temp;
|
|
pNormalizedQuaternions[4 * i + 2] = pInputQuaternions[4 * i + 2] / temp;
|
|
pNormalizedQuaternions[4 * i + 3] = pInputQuaternions[4 * i + 3] / temp;
|
|
}
|
|
}
|
|
|
|
|