MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / writeQuat

Method writeQuat

Engine/source/core/stream/bitStream.cpp:519–544  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

517}
518
519void BitStream::writeQuat( const QuatF& quat, U32 bitCount )
520{
521 F32 quatVals[4] = { quat.x, quat.y, quat.z, quat.w };
522 bool flipQuat = (quatVals[0] < 0);
523 F32 maxVal = mFabs(quatVals[0]);
524 S32 idxMax = 0;
525
526 for (S32 i = 1; i < 4; ++i)
527 {
528 if (mFabs(quatVals[i]) > maxVal)
529 {
530 idxMax = i;
531 maxVal = mFabs(quatVals[i]);
532 flipQuat = (quatVals[i] < 0);
533 }
534 }
535 writeInt(idxMax, 2);
536
537 for (S32 i = 0; i < 4; ++i)
538 {
539 if (i == idxMax)
540 continue;
541 F32 curValue = (flipQuat ? -quatVals[i] : quatVals[i]) * (F32) M_SQRT2;
542 writeSignedFloat( curValue, bitCount );
543 }
544}
545
546void BitStream::readQuat( QuatF *outQuat, U32 bitCount )
547{

Callers 1

packUpdateMethod · 0.80

Calls 1

mFabsFunction · 0.85

Tested by

no test coverage detected